diff --git a/src/core/Component.ts b/src/core/Component.ts index e75618e..d9b3412 100644 --- a/src/core/Component.ts +++ b/src/core/Component.ts @@ -138,7 +138,7 @@ export const set = (component: T, data: any): { componen }) /** - * Recursvely inherits components from one entity to another. + * Recursively inherits components from one entity to another. * @param {World} world - The world object. * @param {number} baseEid - The ID of the entity inheriting components. * @param {number} inheritedEid - The ID of the entity being inherited from. diff --git a/src/core/Relation.ts b/src/core/Relation.ts index fa10040..ab01c26 100644 --- a/src/core/Relation.ts +++ b/src/core/Relation.ts @@ -59,7 +59,10 @@ type RelationData = { * @param {RelationTarget} target - The target of the relation. * @returns {T} The relation component. */ -export type Relation = (target: RelationTarget) => T +export interface Relation { + (target: RelationTarget):T + [$relationData]: RelationData +} /** * Creates a base relation. @@ -100,7 +103,7 @@ const createBaseRelation = (): Relation => { * @returns {function(Relation): Relation} A function that modifies the relation. */ export const withStore = (createStore: (eid: EntityId) => T) => (relation: Relation): Relation => { - const ctx = relation[$relationData] as RelationData + const ctx = relation[$relationData] ctx.initStore = createStore return relation } @@ -112,7 +115,7 @@ export const withStore = (createStore: (eid: EntityId) => T) => (relation: Re * @returns {Relation} The modified relation. */ export const makeExclusive = (relation: Relation): Relation => { - const ctx = relation[$relationData] as RelationData + const ctx = relation[$relationData] ctx.exclusiveRelation = true return relation } @@ -124,7 +127,7 @@ export const makeExclusive = (relation: Relation): Relation => { * @returns {Relation} The modified relation. */ export const withAutoRemoveSubject = (relation: Relation): Relation => { - const ctx = relation[$relationData] as RelationData + const ctx = relation[$relationData] ctx.autoRemoveSubject = true return relation } @@ -136,7 +139,7 @@ export const withAutoRemoveSubject = (relation: Relation): Relation => * @returns {function(Relation): Relation} A function that modifies the relation. */ export const withOnTargetRemoved = (onRemove: OnTargetRemovedCallback) => (relation: Relation): Relation => { - const ctx = relation[$relationData] as RelationData + const ctx = relation[$relationData] ctx.onTargetRemoved = onRemove return relation }