From 9ee80b41c880573c027c2f6ce71111e4a2649edf Mon Sep 17 00:00:00 2001 From: Akash Kava <39438041+ackava@users.noreply.github.com> Date: Tue, 11 Jul 2023 11:28:49 +0530 Subject: [PATCH] Added narrowing --- src/model/events/EntityEvents.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/model/events/EntityEvents.ts b/src/model/events/EntityEvents.ts index 14d91fd..f167c81 100644 --- a/src/model/events/EntityEvents.ts +++ b/src/model/events/EntityEvents.ts @@ -8,13 +8,13 @@ import ChangeEntry from "../changes/ChangeEntry.js"; const done = Promise.resolve() as Promise; -export class ForeignKeyFilter { +export class ForeignKeyFilter { public type: EntityType; public name: string; public fkName: string; - private events: EntityEvents; + private events: EntityEvents; private context: EntityContext; constructor(p: Partial & { context: EntityContext, events: EntityEvents }) { @@ -22,17 +22,21 @@ export class ForeignKeyFilter { return p as any as ForeignKeyFilter; } - public is(fx: (x: T) => TR): boolean { + public is(fx: (x: T) => TR): this is ForeignKeyFilter & boolean { const name = NameParser.parseMember(fx); return name === this.fkName || name === this.name; } - public read() { + public read(): IEntityQuery { const read = this.context.query(this.type.typeClass); return this.events.filter(read); } - public modify() { + public unfiltered(): IEntityQuery { + return this.context.query(this.type.typeClass); + } + + public modify(): IEntityQuery { const read = this.context.query(this.type.typeClass); return this.events.modify(read); }