Skip to content

Commit

Permalink
feat(core): implement @cascade directive
Browse files Browse the repository at this point in the history
fixes #7
  • Loading branch information
binier committed Jul 17, 2020
1 parent 3ed025c commit 9d8e71e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
1 change: 1 addition & 0 deletions packages/core/src/directive/directive-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { DirectiveArgs, Directive } from './directive';

export interface DirectiveBuilderArgs {
filter: LogicalOperatorBuilder | OperatorBuilder;
cascade: undefined;
}

export class DirectiveBuilder<T extends keyof DirectiveBuilderArgs = any> {
Expand Down
3 changes: 3 additions & 0 deletions packages/core/src/directive/directive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Param } from '../param';

export interface DirectiveArgs {
filter: LogicalOperator | Operator;
cascade: undefined;
}

export class Directive<T extends keyof DirectiveArgs = any> {
Expand All @@ -16,6 +17,8 @@ export class Directive<T extends keyof DirectiveArgs = any> {
}

params(): Param[] {
if (!this.hasArgs()) return [];

return Array.isArray(this.args)
? this.args.reduce((r, x) => [...r, ...x.params()], [])
: this.args.params();
Expand Down
8 changes: 7 additions & 1 deletion packages/core/src/edge/edge-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,11 @@ export class EdgeBuilder {
return this;
}

cascade() {
this.directives.cascade = new DirectiveBuilder('cascade', undefined);
return this;
}

keyToField(key: string) {
if (['id', 'uid'].includes(key))
return 'uid';
Expand Down Expand Up @@ -153,7 +158,8 @@ export class EdgeBuilder {
edges,
directives: Object.entries(this.directives)
.reduce((r, [k, v]) => {
r[k] = v.build(op => this.buildOp(op, pNameGen))
r[k] = v.build(op =>
!op ? op : this.buildOp(op, pNameGen));
return r;
}, {}),
type: this.type,
Expand Down

0 comments on commit 9d8e71e

Please sign in to comment.