refactor: Bundle.normalize
This commit is contained in:
parent
ee566e7c70
commit
12f17641e9
|
@ -30,6 +30,11 @@ export default class Bundle {
|
|||
}
|
||||
|
||||
static maybeNormalize(BundleLike) {
|
||||
const normalized = this.normalize(BundleLike);
|
||||
return normalized.prototype instanceof Bundle ? normalized : undefined;
|
||||
}
|
||||
|
||||
static normalize(BundleLike) {
|
||||
if (Array.isArray(BundleLike)) {
|
||||
return class AdhocBundle extends Bundle {
|
||||
|
||||
|
@ -37,10 +42,7 @@ export default class Bundle {
|
|||
|
||||
};
|
||||
}
|
||||
if (BundleLike.prototype instanceof Bundle) {
|
||||
return BundleLike;
|
||||
}
|
||||
return undefined;
|
||||
return BundleLike;
|
||||
}
|
||||
|
||||
static select(entity, Components) {
|
||||
|
|
|
@ -7,7 +7,7 @@ import Query from '../src/query';
|
|||
const A = Component.normalize({a: {type: 'int32', defaultValue: 420}});
|
||||
const B = Component.normalize({b: {type: 'int32', defaultValue: 69}});
|
||||
const C = Component.normalize({c: 'int32'});
|
||||
const D = Bundle.maybeNormalize(['B', 'C']);
|
||||
const D = Bundle.normalize(['B', 'C']);
|
||||
class E extends Bundle {
|
||||
|
||||
static Components = ['A', 'B'];
|
||||
|
@ -24,9 +24,9 @@ const ComponentsAndOrBundles = {
|
|||
B: new B(),
|
||||
C: new C(),
|
||||
};
|
||||
ComponentsAndOrBundles.A.createMany([2n, 3n]);
|
||||
ComponentsAndOrBundles.B.createMany([1n, 2n]);
|
||||
ComponentsAndOrBundles.C.createMany([2n, 4n]);
|
||||
ComponentsAndOrBundles.A.createMany([[2n], [3n]]);
|
||||
ComponentsAndOrBundles.B.createMany([[1n], [2n]]);
|
||||
ComponentsAndOrBundles.C.createMany([[2n], [4n]]);
|
||||
ComponentsAndOrBundles.D = new D([ComponentsAndOrBundles.B, ComponentsAndOrBundles.C]);
|
||||
ComponentsAndOrBundles.E = new E([ComponentsAndOrBundles.A, ComponentsAndOrBundles.B]);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user