@data7expressions/3xpr 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +78 -0
- package/LICENSE +201 -0
- package/README.md +144 -0
- package/expression/application/expressions.d.ts +69 -0
- package/expression/application/expressions.d.ts.map +1 -0
- package/expression/application/expressions.js +157 -0
- package/expression/application/expressions.js.map +1 -0
- package/expression/application/index.d.ts +4 -0
- package/expression/application/index.d.ts.map +1 -0
- package/expression/application/index.js +20 -0
- package/expression/application/index.js.map +1 -0
- package/expression/application/useCases/convert.d.ts +8 -0
- package/expression/application/useCases/convert.d.ts.map +1 -0
- package/expression/application/useCases/convert.js +25 -0
- package/expression/application/useCases/convert.js.map +1 -0
- package/expression/application/useCases/executor.d.ts +11 -0
- package/expression/application/useCases/executor.d.ts.map +1 -0
- package/expression/application/useCases/executor.js +23 -0
- package/expression/application/useCases/executor.js.map +1 -0
- package/expression/application/useCases/executorObserveDecorator.d.ts +16 -0
- package/expression/application/useCases/executorObserveDecorator.d.ts.map +1 -0
- package/expression/application/useCases/executorObserveDecorator.js +98 -0
- package/expression/application/useCases/executorObserveDecorator.js.map +1 -0
- package/expression/domain/expressions.d.ts +29 -0
- package/expression/domain/expressions.d.ts.map +1 -0
- package/expression/domain/expressions.js +3 -0
- package/expression/domain/expressions.js.map +1 -0
- package/expression/domain/index.d.ts +2 -0
- package/expression/domain/index.d.ts.map +1 -0
- package/expression/domain/index.js +18 -0
- package/expression/domain/index.js.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.d.ts +15 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.d.ts.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.js +45 -0
- package/expression/infrastructure/convertFrom/convertFromFunction.js.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts +5 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.d.ts.map +1 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.js +96 -0
- package/expression/infrastructure/convertFrom/convertFromGraphql.js.map +1 -0
- package/expression/infrastructure/expressionsBuilder.d.ts +8 -0
- package/expression/infrastructure/expressionsBuilder.d.ts.map +1 -0
- package/expression/infrastructure/expressionsBuilder.js +28 -0
- package/expression/infrastructure/expressionsBuilder.js.map +1 -0
- package/expression/infrastructure/helper.d.ts +7 -0
- package/expression/infrastructure/helper.d.ts.map +1 -0
- package/expression/infrastructure/helper.js +34 -0
- package/expression/infrastructure/helper.js.map +1 -0
- package/expression/infrastructure/index.d.ts +2 -0
- package/expression/infrastructure/index.d.ts.map +1 -0
- package/expression/infrastructure/index.js +18 -0
- package/expression/infrastructure/index.js.map +1 -0
- package/expression/infrastructure/library.d.ts +30 -0
- package/expression/infrastructure/library.d.ts.map +1 -0
- package/expression/infrastructure/library.js +1813 -0
- package/expression/infrastructure/library.js.map +1 -0
- package/index.d.ts +31 -0
- package/index.d.ts.map +1 -0
- package/index.js +64 -0
- package/index.js.map +1 -0
- package/jest-unit-config.json +15 -0
- package/model/application/index.d.ts +2 -0
- package/model/application/index.d.ts.map +1 -0
- package/model/application/index.js +18 -0
- package/model/application/index.js.map +1 -0
- package/model/application/modelService.d.ts +42 -0
- package/model/application/modelService.d.ts.map +1 -0
- package/model/application/modelService.js +329 -0
- package/model/application/modelService.js.map +1 -0
- package/model/domain/index.d.ts +3 -0
- package/model/domain/index.d.ts.map +1 -0
- package/model/domain/index.js +19 -0
- package/model/domain/index.js.map +1 -0
- package/model/domain/library.d.ts +5 -0
- package/model/domain/library.d.ts.map +1 -0
- package/model/domain/library.js +3 -0
- package/model/domain/library.js.map +1 -0
- package/model/domain/services.d.ts +32 -0
- package/model/domain/services.d.ts.map +1 -0
- package/model/domain/services.js +3 -0
- package/model/domain/services.js.map +1 -0
- package/operand/application/facade.d.ts +27 -0
- package/operand/application/facade.d.ts.map +1 -0
- package/operand/application/facade.js +42 -0
- package/operand/application/facade.js.map +1 -0
- package/operand/application/index.d.ts +15 -0
- package/operand/application/index.d.ts.map +1 -0
- package/operand/application/index.js +31 -0
- package/operand/application/index.js.map +1 -0
- package/operand/application/services/builder.d.ts +17 -0
- package/operand/application/services/builder.d.ts.map +1 -0
- package/operand/application/services/builder.js +30 -0
- package/operand/application/services/builder.js.map +1 -0
- package/operand/application/services/builderCacheDecorator.d.ts +14 -0
- package/operand/application/services/builderCacheDecorator.d.ts.map +1 -0
- package/operand/application/services/builderCacheDecorator.js +29 -0
- package/operand/application/services/builderCacheDecorator.js.map +1 -0
- package/operand/application/services/factory.d.ts +10 -0
- package/operand/application/services/factory.d.ts.map +1 -0
- package/operand/application/services/factory.js +24 -0
- package/operand/application/services/factory.js.map +1 -0
- package/operand/application/services/normalizer.d.ts +4 -0
- package/operand/application/services/normalizer.d.ts.map +1 -0
- package/operand/application/services/normalizer.js +51 -0
- package/operand/application/services/normalizer.js.map +1 -0
- package/operand/application/services/parameterService.d.ts +6 -0
- package/operand/application/services/parameterService.d.ts.map +1 -0
- package/operand/application/services/parameterService.js +23 -0
- package/operand/application/services/parameterService.js.map +1 -0
- package/operand/application/services/parser.d.ts +49 -0
- package/operand/application/services/parser.d.ts.map +1 -0
- package/operand/application/services/parser.js +751 -0
- package/operand/application/services/parser.js.map +1 -0
- package/operand/application/services/serializer.d.ts +10 -0
- package/operand/application/services/serializer.d.ts.map +1 -0
- package/operand/application/services/serializer.js +40 -0
- package/operand/application/services/serializer.js.map +1 -0
- package/operand/application/services/typeService.d.ts +37 -0
- package/operand/application/services/typeService.d.ts.map +1 -0
- package/operand/application/services/typeService.js +392 -0
- package/operand/application/services/typeService.js.map +1 -0
- package/operand/application/useCases/build.d.ts +10 -0
- package/operand/application/useCases/build.d.ts.map +1 -0
- package/operand/application/useCases/build.js +25 -0
- package/operand/application/useCases/build.js.map +1 -0
- package/operand/application/useCases/clone.d.ts +10 -0
- package/operand/application/useCases/clone.d.ts.map +1 -0
- package/operand/application/useCases/clone.js +34 -0
- package/operand/application/useCases/clone.js.map +1 -0
- package/operand/application/useCases/complete.d.ts +9 -0
- package/operand/application/useCases/complete.d.ts.map +1 -0
- package/operand/application/useCases/complete.js +26 -0
- package/operand/application/useCases/complete.js.map +1 -0
- package/operand/application/useCases/normalize.d.ts +9 -0
- package/operand/application/useCases/normalize.d.ts.map +1 -0
- package/operand/application/useCases/normalize.js +43 -0
- package/operand/application/useCases/normalize.js.map +1 -0
- package/operand/application/useCases/reduce.d.ts +11 -0
- package/operand/application/useCases/reduce.d.ts.map +1 -0
- package/operand/application/useCases/reduce.js +57 -0
- package/operand/application/useCases/reduce.js.map +1 -0
- package/operand/domain/constBuilder.d.ts +5 -0
- package/operand/domain/constBuilder.d.ts.map +1 -0
- package/operand/domain/constBuilder.js +3 -0
- package/operand/domain/constBuilder.js.map +1 -0
- package/operand/domain/entities.d.ts +60 -0
- package/operand/domain/entities.d.ts.map +1 -0
- package/operand/domain/entities.js +38 -0
- package/operand/domain/entities.js.map +1 -0
- package/operand/domain/index.d.ts +4 -0
- package/operand/domain/index.d.ts.map +1 -0
- package/operand/domain/index.js +20 -0
- package/operand/domain/index.js.map +1 -0
- package/operand/domain/services.d.ts +39 -0
- package/operand/domain/services.d.ts.map +1 -0
- package/operand/domain/services.js +3 -0
- package/operand/domain/services.js.map +1 -0
- package/operand/infrastructure/constBuilder.d.ts +6 -0
- package/operand/infrastructure/constBuilder.d.ts.map +1 -0
- package/operand/infrastructure/constBuilder.js +15 -0
- package/operand/infrastructure/constBuilder.js.map +1 -0
- package/operand/infrastructure/executors/expression.d.ts +34 -0
- package/operand/infrastructure/executors/expression.d.ts.map +1 -0
- package/operand/infrastructure/executors/expression.js +534 -0
- package/operand/infrastructure/executors/expression.js.map +1 -0
- package/operand/infrastructure/executors/task.d.ts +8 -0
- package/operand/infrastructure/executors/task.d.ts.map +1 -0
- package/operand/infrastructure/executors/task.js +492 -0
- package/operand/infrastructure/executors/task.js.map +1 -0
- package/operand/infrastructure/facadeBuilder.d.ts +10 -0
- package/operand/infrastructure/facadeBuilder.d.ts.map +1 -0
- package/operand/infrastructure/facadeBuilder.js +35 -0
- package/operand/infrastructure/facadeBuilder.js.map +1 -0
- package/operand/infrastructure/helper.d.ts +20 -0
- package/operand/infrastructure/helper.d.ts.map +1 -0
- package/operand/infrastructure/helper.js +272 -0
- package/operand/infrastructure/helper.js.map +1 -0
- package/operand/infrastructure/index.d.ts +4 -0
- package/operand/infrastructure/index.d.ts.map +1 -0
- package/operand/infrastructure/index.js +20 -0
- package/operand/infrastructure/index.js.map +1 -0
- package/package.json +39 -0
- package/shared/domain/base.d.ts +32 -0
- package/shared/domain/base.d.ts.map +1 -0
- package/shared/domain/base.js +12 -0
- package/shared/domain/base.js.map +1 -0
- package/shared/domain/context.d.ts +37 -0
- package/shared/domain/context.d.ts.map +1 -0
- package/shared/domain/context.js +93 -0
- package/shared/domain/context.js.map +1 -0
- package/shared/domain/index.d.ts +6 -0
- package/shared/domain/index.d.ts.map +1 -0
- package/shared/domain/index.js +22 -0
- package/shared/domain/index.js.map +1 -0
- package/shared/domain/observer.d.ts +15 -0
- package/shared/domain/observer.d.ts.map +1 -0
- package/shared/domain/observer.js +11 -0
- package/shared/domain/observer.js.map +1 -0
- package/shared/domain/operand.d.ts +55 -0
- package/shared/domain/operand.d.ts.map +1 -0
- package/shared/domain/operand.js +69 -0
- package/shared/domain/operand.js.map +1 -0
- package/shared/domain/signals.d.ts +8 -0
- package/shared/domain/signals.d.ts.map +1 -0
- package/shared/domain/signals.js +3 -0
- package/shared/domain/signals.js.map +1 -0
- package/shared/infrastructure/helper.d.ts +9 -0
- package/shared/infrastructure/helper.d.ts.map +1 -0
- package/shared/infrastructure/helper.js +16 -0
- package/shared/infrastructure/helper.js.map +1 -0
- package/shared/infrastructure/index.d.ts +2 -0
- package/shared/infrastructure/index.d.ts.map +1 -0
- package/shared/infrastructure/index.js +18 -0
- package/shared/infrastructure/index.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Operand } from '../../../shared/domain';
|
|
2
|
+
import { OperandSerializer } from '../../domain';
|
|
3
|
+
export declare class OperandSerializerImpl implements OperandSerializer {
|
|
4
|
+
clone(sentence: Operand): Operand;
|
|
5
|
+
serialize(sentence: Operand): string;
|
|
6
|
+
deserialize(value: string): Operand;
|
|
7
|
+
private _serialize;
|
|
8
|
+
private _deserialize;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAmB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGjE,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,KAAK,CAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAMlC,SAAS,CAAE,QAAQ,EAAE,OAAO,GAAG,MAAM;IAIrC,WAAW,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3C,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;CAapB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OperandSerializerImpl = void 0;
|
|
4
|
+
const domain_1 = require("../../../shared/domain");
|
|
5
|
+
const typ3s_1 = require("@data7expressions/typ3s");
|
|
6
|
+
class OperandSerializerImpl {
|
|
7
|
+
clone(sentence) {
|
|
8
|
+
const serialized = this.serialize(sentence);
|
|
9
|
+
const deserialized = this.deserialize(serialized);
|
|
10
|
+
return deserialized;
|
|
11
|
+
}
|
|
12
|
+
serialize(sentence) {
|
|
13
|
+
return JSON.stringify(this._serialize(sentence));
|
|
14
|
+
}
|
|
15
|
+
deserialize(value) {
|
|
16
|
+
return (this._deserialize(JSON.parse(value)));
|
|
17
|
+
}
|
|
18
|
+
_serialize(operand) {
|
|
19
|
+
const children = [];
|
|
20
|
+
for (const child of operand.children) {
|
|
21
|
+
children.push(this._serialize(child));
|
|
22
|
+
}
|
|
23
|
+
return { pos: operand.pos, name: operand.name, children, number: operand.number, type: operand.type, returnType: operand.returnType !== undefined ? typ3s_1.Type.stringify(operand.returnType) : undefined };
|
|
24
|
+
}
|
|
25
|
+
_deserialize(metadata) {
|
|
26
|
+
const children = [];
|
|
27
|
+
if (metadata.children) {
|
|
28
|
+
for (const child of metadata.children) {
|
|
29
|
+
const deserialized = this._deserialize(child);
|
|
30
|
+
children.push(deserialized);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// eslint-disable-next-line no-case-declarations
|
|
34
|
+
const operand = new domain_1.Operand(metadata.pos, metadata.name, domain_1.OperandType[metadata.type], children, metadata.returnType !== undefined ? typ3s_1.Type.to(metadata.returnType) : undefined);
|
|
35
|
+
operand.number = metadata.number;
|
|
36
|
+
return operand;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.OperandSerializerImpl = OperandSerializerImpl;
|
|
40
|
+
//# sourceMappingURL=serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/serializer.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAE7D,mDAA8C;AAE9C,MAAa,qBAAqB;IAC1B,KAAK,CAAE,QAAiB;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,YAAY,CAAA;IACpB,CAAC;IAEM,SAAS,CAAE,QAAiB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,CAAC;IAEM,WAAW,CAAE,KAAa;QAChC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAEO,UAAU,CAAE,OAAgB;QACnC,MAAM,QAAQ,GAAqB,EAAE,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACrM,CAAC;IAEO,YAAY,CAAE,QAAyB;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBAC7C,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC5B,CAAC;QACF,CAAC;QACD,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACtL,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAChC,OAAO,OAAO,CAAA;IACf,CAAC;CACD;AApCD,sDAoCC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { TypeService, OperatorMetadata } from '../../domain';
|
|
2
|
+
import { Operand } from '../../../shared/domain';
|
|
3
|
+
import { ModelService } from '../../../model/domain';
|
|
4
|
+
import { Type } from '@data7expressions/typ3s';
|
|
5
|
+
export declare class TypeServiceImpl implements TypeService {
|
|
6
|
+
private readonly model;
|
|
7
|
+
constructor(model: ModelService);
|
|
8
|
+
getType(operand: Operand): Type;
|
|
9
|
+
solve(operand: Operand): void;
|
|
10
|
+
protected solveType(operand: Operand): void;
|
|
11
|
+
protected solveTemplate(operand: Operand): void;
|
|
12
|
+
protected setUndefinedAsAny(operand: Operand): void;
|
|
13
|
+
protected solveObject(obj: Operand): void;
|
|
14
|
+
protected solveProperty(property: Operand): void;
|
|
15
|
+
protected solveArray(array: Operand): void;
|
|
16
|
+
protected solveBlock(block: Operand): void;
|
|
17
|
+
protected solveAny(_for: Operand): void;
|
|
18
|
+
protected solveArrow(arrow: Operand): void;
|
|
19
|
+
protected solveOperator(operator: Operand): void;
|
|
20
|
+
protected trySolveFromMetadata(type?: string): Type | undefined;
|
|
21
|
+
protected solveTemplateArray(array: Operand): void;
|
|
22
|
+
protected solveTemplateProperty(property: Operand): void;
|
|
23
|
+
protected solveTemplateObject(obj: Operand): void;
|
|
24
|
+
protected solveTemplateOperator(operator: Operand, metadata: OperatorMetadata): void;
|
|
25
|
+
protected getElementType(array: Operand): Type | undefined;
|
|
26
|
+
protected setVariableType(name: string, type: Type, operand: Operand): void;
|
|
27
|
+
protected isIndeterminateType(type?: string): boolean;
|
|
28
|
+
protected hadTemplate(metadata: OperatorMetadata): boolean;
|
|
29
|
+
protected undefinedTypes(operator: Operand): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* get metadata of operand
|
|
32
|
+
* @param operator
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
protected metadata(operator: Operand): OperatorMetadata;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=typeService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeService.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/typeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAmC,MAAM,yBAAyB,CAAA;AAE/E,qBAAa,eAAgB,YAAW,WAAW;IAErC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAc1C,OAAO,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhC,KAAK,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMrC,SAAS,CAAC,SAAS,CAAE,OAAO,EAAE,OAAO,GAAE,IAAI;IAoC3C,SAAS,CAAC,aAAa,CAAE,OAAO,EAAE,OAAO,GAAE,IAAI;IAmC/C,SAAS,CAAC,iBAAiB,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IASpD,SAAS,CAAC,WAAW,CAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAU1C,SAAS,CAAC,aAAa,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgBjD,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAW3C,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAS3C,SAAS,CAAC,QAAQ,CAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IASxC,SAAS,CAAC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAiC3C,SAAS,CAAC,aAAa,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAiCjD,SAAS,CAAC,oBAAoB,CAAE,IAAI,CAAC,EAAC,MAAM,GAAI,IAAI,GAAG,SAAS;IAkBhE,SAAS,CAAC,kBAAkB,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAQnD,SAAS,CAAC,qBAAqB,CAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAezD,SAAS,CAAC,mBAAmB,CAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAmBlD,SAAS,CAAC,qBAAqB,CAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAC,gBAAgB,GAAG,IAAI;IA6DpF,SAAS,CAAC,cAAc,CAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IAI3D,SAAS,CAAC,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAYrE,SAAS,CAAC,mBAAmB,CAAE,IAAI,CAAC,EAAC,MAAM,GAAG,OAAO;IAOrD,SAAS,CAAC,WAAW,CAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO;IAI3D,SAAS,CAAC,cAAc,CAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;IAIrD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB;CAKxD"}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeServiceImpl = void 0;
|
|
4
|
+
const domain_1 = require("../../../shared/domain");
|
|
5
|
+
const typ3s_1 = require("@data7expressions/typ3s");
|
|
6
|
+
class TypeServiceImpl {
|
|
7
|
+
// eslint-disable-next-line no-useless-constructor
|
|
8
|
+
constructor(model) {
|
|
9
|
+
this.model = model;
|
|
10
|
+
}
|
|
11
|
+
// Example
|
|
12
|
+
// {
|
|
13
|
+
// users:[{name:string,age:integer}],
|
|
14
|
+
// tuple: [integer,string]
|
|
15
|
+
// entries:[string,any]
|
|
16
|
+
// }
|
|
17
|
+
// Primitives: integer, decimal, string, boolean, dateTime, date, time
|
|
18
|
+
// array: [<<type>>]
|
|
19
|
+
// object {key:<<type>>}
|
|
20
|
+
// predicate: c + b < a
|
|
21
|
+
// indeterminate: any
|
|
22
|
+
getType(operand) {
|
|
23
|
+
this.solve(operand);
|
|
24
|
+
return operand.returnType || typ3s_1.Type.any;
|
|
25
|
+
}
|
|
26
|
+
solve(operand) {
|
|
27
|
+
this.solveType(operand);
|
|
28
|
+
this.solveTemplate(operand);
|
|
29
|
+
this.setUndefinedAsAny(operand);
|
|
30
|
+
}
|
|
31
|
+
solveType(operand) {
|
|
32
|
+
if (operand.type === domain_1.OperandType.Const ||
|
|
33
|
+
operand.type === domain_1.OperandType.Var ||
|
|
34
|
+
operand.type === domain_1.OperandType.Template ||
|
|
35
|
+
operand.type === domain_1.OperandType.Env ||
|
|
36
|
+
operand.type === domain_1.OperandType.Default ||
|
|
37
|
+
operand.type === domain_1.OperandType.Return ||
|
|
38
|
+
operand.type === domain_1.OperandType.Break) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (operand.type === domain_1.OperandType.List) {
|
|
42
|
+
this.solveArray(operand);
|
|
43
|
+
}
|
|
44
|
+
else if (operand.type === domain_1.OperandType.Obj) {
|
|
45
|
+
this.solveObject(operand);
|
|
46
|
+
}
|
|
47
|
+
else if (operand.type === domain_1.OperandType.Arrow) {
|
|
48
|
+
this.solveArrow(operand);
|
|
49
|
+
}
|
|
50
|
+
else if (operand.type === domain_1.OperandType.Operator || operand.type === domain_1.OperandType.ChildFunc || operand.type === domain_1.OperandType.CallFunc) {
|
|
51
|
+
this.solveOperator(operand);
|
|
52
|
+
}
|
|
53
|
+
else if (operand.type === domain_1.OperandType.Property) {
|
|
54
|
+
this.solveProperty(operand);
|
|
55
|
+
}
|
|
56
|
+
else if (operand.type === domain_1.OperandType.Block) {
|
|
57
|
+
this.solveBlock(operand);
|
|
58
|
+
}
|
|
59
|
+
else if (operand.type === domain_1.OperandType.If ||
|
|
60
|
+
operand.type === domain_1.OperandType.ElseIf ||
|
|
61
|
+
operand.type === domain_1.OperandType.Else ||
|
|
62
|
+
operand.type === domain_1.OperandType.For ||
|
|
63
|
+
operand.type === domain_1.OperandType.ForIn ||
|
|
64
|
+
operand.type === domain_1.OperandType.While ||
|
|
65
|
+
operand.type === domain_1.OperandType.Switch ||
|
|
66
|
+
operand.type === domain_1.OperandType.Case) {
|
|
67
|
+
this.solveAny(operand);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new Error(`Type: ${operand.type} name: ${operand.name} not supported`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
solveTemplate(operand) {
|
|
74
|
+
if (operand.type === domain_1.OperandType.Const ||
|
|
75
|
+
operand.type === domain_1.OperandType.Var ||
|
|
76
|
+
operand.type === domain_1.OperandType.Template ||
|
|
77
|
+
operand.type === domain_1.OperandType.Env ||
|
|
78
|
+
operand.type === domain_1.OperandType.Block ||
|
|
79
|
+
operand.type === domain_1.OperandType.If ||
|
|
80
|
+
operand.type === domain_1.OperandType.ElseIf ||
|
|
81
|
+
operand.type === domain_1.OperandType.Else ||
|
|
82
|
+
operand.type === domain_1.OperandType.For ||
|
|
83
|
+
operand.type === domain_1.OperandType.ForIn ||
|
|
84
|
+
operand.type === domain_1.OperandType.While ||
|
|
85
|
+
operand.type === domain_1.OperandType.Switch ||
|
|
86
|
+
operand.type === domain_1.OperandType.Case) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (operand.type === domain_1.OperandType.List) {
|
|
90
|
+
this.solveTemplateArray(operand);
|
|
91
|
+
}
|
|
92
|
+
else if (operand.type === domain_1.OperandType.Obj) {
|
|
93
|
+
this.solveTemplateObject(operand);
|
|
94
|
+
}
|
|
95
|
+
else if (operand.type === domain_1.OperandType.Operator || operand.type === domain_1.OperandType.Arrow || operand.type === domain_1.OperandType.ChildFunc || operand.type === domain_1.OperandType.CallFunc) {
|
|
96
|
+
const metadata = this.metadata(operand);
|
|
97
|
+
if (this.hadTemplate(metadata) && this.undefinedTypes(operand)) {
|
|
98
|
+
this.solveTemplateOperator(operand, metadata);
|
|
99
|
+
}
|
|
100
|
+
for (const child of operand.children) {
|
|
101
|
+
this.solveTemplate(child);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else if (operand.type === domain_1.OperandType.Property) {
|
|
105
|
+
this.solveTemplateProperty(operand);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
throw new Error(`Type: ${operand.type} name: ${operand.name} on template not supported`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
setUndefinedAsAny(operand) {
|
|
112
|
+
if (operand.returnType === undefined) {
|
|
113
|
+
operand.returnType = typ3s_1.Type.any;
|
|
114
|
+
}
|
|
115
|
+
for (const child of operand.children) {
|
|
116
|
+
this.setUndefinedAsAny(child);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
solveObject(obj) {
|
|
120
|
+
const properties = [];
|
|
121
|
+
for (const keyVal of obj.children) {
|
|
122
|
+
this.solveType(keyVal.children[0]);
|
|
123
|
+
keyVal.returnType = keyVal.children[0].returnType;
|
|
124
|
+
properties.push({ name: keyVal.name, type: keyVal.children[0].returnType });
|
|
125
|
+
}
|
|
126
|
+
obj.returnType = typ3s_1.Type.Obj(properties);
|
|
127
|
+
}
|
|
128
|
+
solveProperty(property) {
|
|
129
|
+
this.solveType(property.children[0]);
|
|
130
|
+
if (property.children[0].returnType === undefined) {
|
|
131
|
+
property.children[0].returnType = typ3s_1.Type.List(typ3s_1.Type.Obj([{ name: property.name }]));
|
|
132
|
+
}
|
|
133
|
+
else if (typ3s_1.Type.isList(property.children[0].returnType)) {
|
|
134
|
+
const listType = property.children[0].returnType.list;
|
|
135
|
+
if (listType.items && typ3s_1.Type.isObj(listType.items)) {
|
|
136
|
+
const objectType = listType.items.obj;
|
|
137
|
+
const propertyType = objectType.properties.find(p => p.name === property.name);
|
|
138
|
+
if (propertyType && propertyType.type) {
|
|
139
|
+
property.returnType = propertyType.type;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
solveArray(array) {
|
|
145
|
+
if (array.children === undefined || array.children.length === 0) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
this.solveType(array.children[0]);
|
|
149
|
+
// si se resolvió el tipo del elemento, el tipo del array sera [<<TYPE>>]
|
|
150
|
+
if (array.children[0].returnType !== undefined) {
|
|
151
|
+
array.returnType = typ3s_1.Type.List(array.children[0].returnType);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
solveBlock(block) {
|
|
155
|
+
if (block.children === undefined || block.children.length === 0) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
for (const line of block.children) {
|
|
159
|
+
this.solveType(line);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
solveAny(_for) {
|
|
163
|
+
if (_for.children === undefined || _for.children.length === 0) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
for (const part of _for.children) {
|
|
167
|
+
this.solveType(part);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
solveArrow(arrow) {
|
|
171
|
+
const metadata = this.model.getFunction(arrow.name);
|
|
172
|
+
const array = arrow.children[0];
|
|
173
|
+
const variable = arrow.children.length > 1 ? arrow.children[1] : undefined;
|
|
174
|
+
const predicate = arrow.children.length > 2 ? arrow.children[2] : undefined;
|
|
175
|
+
this.solveArray(array);
|
|
176
|
+
const elementType = this.getElementType(array);
|
|
177
|
+
if (elementType && array.returnType && variable) {
|
|
178
|
+
variable.returnType = elementType;
|
|
179
|
+
if (predicate) {
|
|
180
|
+
this.setVariableType(variable.name, elementType, predicate);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!this.isIndeterminateType(metadata.returnType)) {
|
|
184
|
+
// TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
|
|
185
|
+
arrow.returnType = typ3s_1.Type.to(metadata.returnType);
|
|
186
|
+
}
|
|
187
|
+
if (array.returnType === undefined && metadata.params[0].type && !this.isIndeterminateType(metadata.params[0].type)) {
|
|
188
|
+
// TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
|
|
189
|
+
array.returnType = typ3s_1.Type.to(metadata.params[0].type);
|
|
190
|
+
}
|
|
191
|
+
if (predicate && metadata.params[1].type && !this.isIndeterminateType(metadata.params[1].type)) {
|
|
192
|
+
// TODO: hay que hacer que se pueda convertir de metadata type a Type y viceversa
|
|
193
|
+
predicate.returnType = typ3s_1.Type.to(metadata.params[1].type);
|
|
194
|
+
}
|
|
195
|
+
if (predicate) {
|
|
196
|
+
this.solveType(predicate);
|
|
197
|
+
}
|
|
198
|
+
if (this.hadTemplate(metadata)) {
|
|
199
|
+
this.solveTemplateOperator(arrow, metadata);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
solveOperator(operator) {
|
|
203
|
+
const metadata = this.metadata(operator);
|
|
204
|
+
// intenta resolver el return type por metadata
|
|
205
|
+
if (!this.isIndeterminateType(metadata.returnType)) {
|
|
206
|
+
const returnType = this.trySolveFromMetadata(metadata.returnType);
|
|
207
|
+
if (returnType) {
|
|
208
|
+
operator.returnType = returnType;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// tries to resolve the types of the operands
|
|
212
|
+
for (let i = 0; i < metadata.params.length; i++) {
|
|
213
|
+
const paramInfo = metadata.params[i];
|
|
214
|
+
const operand = operator.children[i];
|
|
215
|
+
if (operand === undefined) {
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
if (this.isIndeterminateType(paramInfo.type)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
// intenta resolver el tipo del operand por metadata
|
|
222
|
+
const paramType = this.trySolveFromMetadata(paramInfo.type);
|
|
223
|
+
if (paramType) {
|
|
224
|
+
operand.returnType = paramType;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
for (const child of operator.children) {
|
|
228
|
+
this.solveType(child);
|
|
229
|
+
}
|
|
230
|
+
if (this.hadTemplate(metadata)) {
|
|
231
|
+
this.solveTemplateOperator(operator, metadata);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
trySolveFromMetadata(type) {
|
|
235
|
+
// si de acuerdo a la metadata el tipo es primitivo, asigna el tipo
|
|
236
|
+
if (type === undefined) {
|
|
237
|
+
return undefined;
|
|
238
|
+
}
|
|
239
|
+
if (typ3s_1.Type.isPrimitive(type)) {
|
|
240
|
+
return typ3s_1.Type.to(type);
|
|
241
|
+
}
|
|
242
|
+
// si de acuerdo a la metadata el tipo es un array de primitivo, asigna el tipo, example: string[]
|
|
243
|
+
if (type.endsWith('[]')) {
|
|
244
|
+
const elementType = type.substring(0, type.length - 2);
|
|
245
|
+
if (typ3s_1.Type.isPrimitive(elementType)) {
|
|
246
|
+
return typ3s_1.Type.List(typ3s_1.Type.get(elementType));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return undefined;
|
|
250
|
+
}
|
|
251
|
+
solveTemplateArray(array) {
|
|
252
|
+
const beforeType = array.children[0].returnType;
|
|
253
|
+
this.solveTemplate(array.children[0]);
|
|
254
|
+
if (array.children[0].returnType && array.children[0].returnType !== beforeType) {
|
|
255
|
+
array.returnType = typ3s_1.Type.List(array.children[0].returnType);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
solveTemplateProperty(property) {
|
|
259
|
+
const beforeType = property.children[0].returnType;
|
|
260
|
+
this.solveTemplate(property.children[0]);
|
|
261
|
+
if (property.children[0].returnType !== undefined && property.children[0].returnType !== beforeType && typ3s_1.Type.isList(property.children[0].returnType)) {
|
|
262
|
+
const arrayType = property.children[0].returnType.list;
|
|
263
|
+
if (typ3s_1.Type.isObj(arrayType.items)) {
|
|
264
|
+
const objectType = arrayType.items.obj;
|
|
265
|
+
const propertyType = objectType.properties.find(p => p.name === property.name);
|
|
266
|
+
if (propertyType && propertyType.type) {
|
|
267
|
+
property.returnType = propertyType.type;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
solveTemplateObject(obj) {
|
|
273
|
+
let changed = false;
|
|
274
|
+
for (const child of obj.children) {
|
|
275
|
+
const value = child.children[0];
|
|
276
|
+
const beforeType = value.returnType;
|
|
277
|
+
this.solveTemplate(value);
|
|
278
|
+
if (value.returnType !== beforeType) {
|
|
279
|
+
changed = true;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (changed) {
|
|
283
|
+
const properties = [];
|
|
284
|
+
for (const child of obj.children) {
|
|
285
|
+
properties.push({ name: child.name, type: child.children[0].returnType });
|
|
286
|
+
}
|
|
287
|
+
obj.returnType = typ3s_1.Type.Obj(properties);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
solveTemplateOperator(operator, metadata) {
|
|
291
|
+
let templateType;
|
|
292
|
+
// intenta resolver T por return
|
|
293
|
+
if (operator.returnType) {
|
|
294
|
+
if (metadata.returnType === 'T') {
|
|
295
|
+
templateType = operator.returnType;
|
|
296
|
+
}
|
|
297
|
+
else if (metadata.returnType === 'T[]' && typ3s_1.Type.isList(operator.returnType)) {
|
|
298
|
+
templateType = operator.returnType.list.items;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// intenta resolver T por alguno de los parámetros
|
|
302
|
+
if (templateType === undefined) {
|
|
303
|
+
for (let i = 0; i < metadata.params.length; i++) {
|
|
304
|
+
const paramMetadata = metadata.params[i];
|
|
305
|
+
if (paramMetadata.type !== 'T' && paramMetadata.type !== 'T[]') {
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
const child = operator.children[i];
|
|
309
|
+
if (child === undefined) {
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
if (child.returnType) {
|
|
313
|
+
if (paramMetadata.type === 'T') {
|
|
314
|
+
templateType = child.returnType;
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
else if (paramMetadata.type === 'T[]' && typ3s_1.Type.isList(child.returnType)) {
|
|
318
|
+
templateType = child.returnType.list.items;
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// si pudo resolver el T, resuelve donde se utiliza
|
|
325
|
+
if (templateType !== undefined) {
|
|
326
|
+
if (operator.returnType === undefined) {
|
|
327
|
+
if (metadata.returnType === 'T') {
|
|
328
|
+
operator.returnType = templateType;
|
|
329
|
+
}
|
|
330
|
+
else if (metadata.returnType === 'T[]') {
|
|
331
|
+
operator.returnType = typ3s_1.Type.List(templateType);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
for (let i = 0; i < metadata.params.length; i++) {
|
|
335
|
+
const paramMetadata = metadata.params[i];
|
|
336
|
+
if (paramMetadata.type !== 'T' && paramMetadata.type !== 'T[]') {
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
const child = operator.children[i];
|
|
340
|
+
if (child === undefined) {
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
if (child.returnType === undefined) {
|
|
344
|
+
if (paramMetadata.type === 'T') {
|
|
345
|
+
child.returnType = templateType;
|
|
346
|
+
}
|
|
347
|
+
else if (paramMetadata.type === 'T[]') {
|
|
348
|
+
child.returnType = typ3s_1.Type.List(templateType);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
getElementType(array) {
|
|
355
|
+
return array.returnType ? array.returnType.list.items : undefined;
|
|
356
|
+
}
|
|
357
|
+
setVariableType(name, type, operand) {
|
|
358
|
+
if (operand.type === domain_1.OperandType.Var && operand.name === name) {
|
|
359
|
+
operand.returnType = type;
|
|
360
|
+
}
|
|
361
|
+
for (const child of operand.children) {
|
|
362
|
+
// es por si se da el caso xxx.filter( p=> p.filter( p => p + 1 ) )
|
|
363
|
+
if (!(child.type === domain_1.OperandType.Arrow && child.children[1].name === name)) {
|
|
364
|
+
this.setVariableType(name, type, child);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
isIndeterminateType(type) {
|
|
369
|
+
if (type === undefined) {
|
|
370
|
+
return true;
|
|
371
|
+
}
|
|
372
|
+
return ['T', 'T[]', 'any', 'any[]'].includes(type);
|
|
373
|
+
}
|
|
374
|
+
hadTemplate(metadata) {
|
|
375
|
+
return metadata.returnType === 'T' || metadata.returnType === 'T[]' || metadata.params.find(p => p.type === 'T' || p.type === 'T[]') !== undefined;
|
|
376
|
+
}
|
|
377
|
+
undefinedTypes(operator) {
|
|
378
|
+
return operator.returnType === undefined || operator.children.find(p => p.returnType === undefined) !== undefined;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* get metadata of operand
|
|
382
|
+
* @param operator
|
|
383
|
+
* @returns
|
|
384
|
+
*/
|
|
385
|
+
metadata(operator) {
|
|
386
|
+
return operator.type === domain_1.OperandType.Operator
|
|
387
|
+
? this.model.getOperator(operator.name, operator.children.length)
|
|
388
|
+
: this.model.getFunction(operator.name);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
exports.TypeServiceImpl = TypeServiceImpl;
|
|
392
|
+
//# sourceMappingURL=typeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeService.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/services/typeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Operand } from '../../../shared/domain';
|
|
2
|
+
import { OperandBuilder } from '../../domain';
|
|
3
|
+
export declare class OperandBuild {
|
|
4
|
+
private builders;
|
|
5
|
+
constructor();
|
|
6
|
+
add(key: string, builder: OperandBuilder): OperandBuild;
|
|
7
|
+
get(key: string): OperandBuilder;
|
|
8
|
+
build(expression: string, key?: string): Operand;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAI;;IAKb,GAAG,CAAE,GAAG,EAAC,MAAM,EAAE,OAAO,EAAC,cAAc,GAAG,YAAY;IAKtD,GAAG,CAAE,GAAG,EAAC,MAAM,GAAE,cAAc;IAI/B,KAAK,CAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAe,GAAG,OAAO;CAO9D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OperandBuild = void 0;
|
|
4
|
+
class OperandBuild {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.builders = {};
|
|
7
|
+
}
|
|
8
|
+
add(key, builder) {
|
|
9
|
+
this.builders[key] = builder;
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
return this.builders[key];
|
|
14
|
+
}
|
|
15
|
+
build(expression, key = 'expression') {
|
|
16
|
+
try {
|
|
17
|
+
return this.get(key).build(expression);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
throw new Error(`${key} ${expression} expression error: ${error}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.OperandBuild = OperandBuild;
|
|
25
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../src/lib/operand/application/useCases/build.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IAExB;QACC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACnB,CAAC;IAEM,GAAG,CAAE,GAAU,EAAE,OAAsB;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QAC5B,OAAO,IAAI,CAAA;IACZ,CAAC;IAEM,GAAG,CAAE,GAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAmB,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAE,UAAkB,EAAE,GAAG,GAAG,YAAY;QACnD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,UAAU,uBAAuB,KAAK,EAAE,CAAC,CAAA;QACpE,CAAC;IACF,CAAC;CACD;AAtBD,oCAsBC"}
|