typia 5.5.0-dev.20240304 → 5.5.0-dev.20240306
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/lib/functional.d.ts +329 -0
- package/lib/functional.js +99 -234
- package/lib/functional.js.map +1 -1
- package/lib/http.d.ts +15 -6
- package/lib/http.js.map +1 -1
- package/lib/json.d.ts +17 -8
- package/lib/json.js.map +1 -1
- package/lib/misc.d.ts +18 -8
- package/lib/misc.js.map +1 -1
- package/lib/module.d.ts +17 -0
- package/lib/module.js.map +1 -1
- package/lib/notations.d.ts +12 -0
- package/lib/notations.js.map +1 -1
- package/lib/programmers/AssertProgrammer.d.ts +1 -0
- package/lib/programmers/AssertProgrammer.js +5 -2
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/RandomProgrammer.js +3 -1
- package/lib/programmers/RandomProgrammer.js.map +1 -1
- package/lib/programmers/TypiaProgrammer.js +1 -8
- package/lib/programmers/TypiaProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +8 -2
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +22 -16
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +1 -1
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +8 -4
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +8 -7
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +6 -0
- package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +54 -0
- package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
- package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
- package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +79 -0
- package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
- package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
- package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +71 -0
- package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
- package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +10 -0
- package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +61 -0
- package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
- package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
- package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +104 -0
- package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
- package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
- package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +74 -0
- package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
- package/lib/programmers/http/HttpAssertFormDataProgrammer.js +3 -1
- package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpAssertHeadersProgrammer.js +3 -1
- package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpAssertQueryProgrammer.js +3 -1
- package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js +3 -1
- package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpHeadersProgrammer.js +3 -1
- package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsFormDataProgrammer.js +3 -1
- package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsHeadersProgrammer.js +3 -1
- package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpIsQueryProgrammer.js +3 -1
- package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
- package/lib/programmers/http/HttpQueryProgrammer.js +3 -1
- package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.js +3 -1
- package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
- package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js +3 -1
- package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +3 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
- package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +3 -1
- package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +3 -1
- package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
- package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
- package/lib/protobuf.d.ts +8 -0
- package/lib/protobuf.js.map +1 -1
- package/lib/transformers/CallExpressionTransformer.js +104 -12
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/utils/StringUtil/StringUtil.d.ts +1 -0
- package/lib/utils/StringUtil/StringUtil.js +7 -1
- package/lib/utils/StringUtil/StringUtil.js.map +1 -1
- package/package.json +2 -1
- package/src/functional.ts +542 -246
- package/src/http.ts +15 -6
- package/src/json.ts +17 -8
- package/src/misc.ts +18 -8
- package/src/module.ts +17 -0
- package/src/notations.ts +12 -0
- package/src/programmers/AssertProgrammer.ts +24 -22
- package/src/programmers/RandomProgrammer.ts +12 -4
- package/src/programmers/TypiaProgrammer.ts +1 -11
- package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +64 -55
- package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +13 -5
- package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +10 -8
- package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +45 -0
- package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +78 -0
- package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +91 -0
- package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +91 -0
- package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +212 -0
- package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +115 -0
- package/src/programmers/http/HttpAssertFormDataProgrammer.ts +12 -4
- package/src/programmers/http/HttpAssertHeadersProgrammer.ts +12 -4
- package/src/programmers/http/HttpAssertQueryProgrammer.ts +12 -4
- package/src/programmers/http/HttpFormDataProgrammer.ts +12 -4
- package/src/programmers/http/HttpHeadersProgrammer.ts +12 -4
- package/src/programmers/http/HttpIsFormDataProgrammer.ts +12 -4
- package/src/programmers/http/HttpIsHeadersProgrammer.ts +12 -4
- package/src/programmers/http/HttpIsQueryProgrammer.ts +12 -4
- package/src/programmers/http/HttpQueryProgrammer.ts +12 -4
- package/src/programmers/json/JsonAssertParseProgrammer.ts +12 -4
- package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
- package/src/programmers/misc/MiscAssertCloneProgrammer.ts +12 -4
- package/src/programmers/misc/MiscCloneProgrammer.ts +12 -4
- package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
- package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +12 -4
- package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +12 -4
- package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
- package/src/protobuf.ts +8 -0
- package/src/transformers/CallExpressionTransformer.ts +95 -12
- package/src/utils/StringUtil/StringUtil.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AACpB,8CAAwB;AACxB,0DAA4B;AAE5B,uEAAsE;AAEtE,2DAAqC;AAErC,IAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,12 @@ import ts from "typescript";
|
|
|
3
3
|
import { IProject } from "../../transformers/IProject";
|
|
4
4
|
export declare namespace FunctionalAssertFunctionProgrammer {
|
|
5
5
|
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
|
|
6
|
-
const
|
|
7
|
-
|
|
6
|
+
const errorFactoryWrapper: (modulo: ts.LeftHandSideExpression) => (paramters: readonly ts.ParameterDeclaration[]) => (init: ts.Expression | undefined) => {
|
|
7
|
+
name: string;
|
|
8
|
+
variable: ts.VariableStatement;
|
|
9
|
+
};
|
|
10
|
+
const hookPath: (props: {
|
|
11
|
+
wrapper: string;
|
|
12
|
+
replacer: string;
|
|
13
|
+
}) => ts.ArrowFunction;
|
|
8
14
|
}
|
|
@@ -31,8 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
exports.FunctionalAssertFunctionProgrammer = void 0;
|
|
32
32
|
var typescript_1 = __importDefault(require("typescript"));
|
|
33
33
|
var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
|
|
34
|
-
var StatementFactory_1 = require("../../factories/StatementFactory");
|
|
35
34
|
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
35
|
+
var StringUtil_1 = require("../../utils/StringUtil");
|
|
36
|
+
var AssertProgrammer_1 = require("../AssertProgrammer");
|
|
36
37
|
var FunctionalAssertParametersProgrammer_1 = require("./FunctionalAssertParametersProgrammer");
|
|
37
38
|
var FunctionalAssertReturnProgrammer_1 = require("./FunctionalAssertReturnProgrammer");
|
|
38
39
|
var FunctionalAssertFunctionProgrammer;
|
|
@@ -41,35 +42,40 @@ var FunctionalAssertFunctionProgrammer;
|
|
|
41
42
|
return function (modulo) {
|
|
42
43
|
return function (equals) {
|
|
43
44
|
return function (expression, declaration, init) {
|
|
45
|
+
var wrapper = FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
44
46
|
var _a = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.type, declaration.parameters.map(function (p) {
|
|
45
47
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
46
|
-
})), async = _a.async, returns = _a.returns;
|
|
48
|
+
}), wrapper.name), async = _a.async, returns = _a.returns;
|
|
47
49
|
return typescript_1.default.factory.createArrowFunction(async
|
|
48
50
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
49
51
|
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
|
|
50
|
-
|
|
51
|
-
], __read(FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters).map(typescript_1.default.factory.createExpressionStatement)), false), [
|
|
52
|
+
wrapper.variable
|
|
53
|
+
], __read(FunctionalAssertParametersProgrammer_1.FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
|
|
52
54
|
returns,
|
|
53
55
|
], false)));
|
|
54
56
|
};
|
|
55
57
|
};
|
|
56
58
|
};
|
|
57
59
|
};
|
|
58
|
-
FunctionalAssertFunctionProgrammer.
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
FunctionalAssertFunctionProgrammer.errorFactoryWrapper = function (modulo) {
|
|
61
|
+
return function (paramters) {
|
|
62
|
+
return function (init) {
|
|
63
|
+
var name = StringUtil_1.StringUtil.escapeDuplicate(paramters.map(function (p) { return p.name.getText(); }))("errorFactoryWrapper");
|
|
64
|
+
var variable = typescript_1.default.factory.createVariableStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([
|
|
65
|
+
typescript_1.default.factory.createVariableDeclaration(name, undefined, AssertProgrammer_1.AssertProgrammer.Guardian.type(), init !== null && init !== void 0 ? init : typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createAsExpression(modulo, TypeFactory_1.TypeFactory.keyword("any")), "errorFactory")),
|
|
66
|
+
], typescript_1.default.NodeFlags.Const));
|
|
67
|
+
return { name: name, variable: variable };
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
FunctionalAssertFunctionProgrammer.hookPath = function (props) {
|
|
72
|
+
return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("p")], undefined, undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(props.wrapper), undefined, [
|
|
67
73
|
typescript_1.default.factory.createObjectLiteralExpression([
|
|
68
74
|
typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("p")),
|
|
69
|
-
typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), "replace"), undefined, [
|
|
75
|
+
typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), undefined, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("p"), "path"), "replace"), undefined, [
|
|
70
76
|
typescript_1.default.factory.createStringLiteral("$input"),
|
|
71
|
-
typescript_1.default.factory.createStringLiteral(replacer),
|
|
72
|
-
])),
|
|
77
|
+
typescript_1.default.factory.createStringLiteral(props.replacer),
|
|
78
|
+
]), undefined, typescript_1.default.factory.createIdentifier("undefined"))),
|
|
73
79
|
]),
|
|
74
80
|
]));
|
|
75
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import ts from "typescript";
|
|
|
3
3
|
import { IProject } from "../../transformers/IProject";
|
|
4
4
|
export declare namespace FunctionalAssertParametersProgrammer {
|
|
5
5
|
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
|
|
6
|
-
const argumentExpressions: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[]) => ts.CallExpression[];
|
|
6
|
+
const argumentExpressions: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (parameters: readonly ts.ParameterDeclaration[], wrapper: string) => ts.CallExpression[];
|
|
7
7
|
}
|
|
@@ -39,6 +39,7 @@ var FunctionalAssertParametersProgrammer;
|
|
|
39
39
|
return function (modulo) {
|
|
40
40
|
return function (equals) {
|
|
41
41
|
return function (expression, declaration, init) {
|
|
42
|
+
var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
42
43
|
var async = (function () {
|
|
43
44
|
if (declaration.type === undefined)
|
|
44
45
|
return false;
|
|
@@ -48,8 +49,8 @@ var FunctionalAssertParametersProgrammer;
|
|
|
48
49
|
return typescript_1.default.factory.createArrowFunction(async
|
|
49
50
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
50
51
|
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
|
|
51
|
-
|
|
52
|
-
], __read(FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters).map(typescript_1.default.factory.createExpressionStatement)), false), [
|
|
52
|
+
wrapper.variable
|
|
53
|
+
], __read(FunctionalAssertParametersProgrammer.argumentExpressions(project)(modulo)(equals)(declaration.parameters, wrapper.name).map(typescript_1.default.factory.createExpressionStatement)), false), [
|
|
53
54
|
typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
54
55
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
55
56
|
}))),
|
|
@@ -61,11 +62,14 @@ var FunctionalAssertParametersProgrammer;
|
|
|
61
62
|
FunctionalAssertParametersProgrammer.argumentExpressions = function (project) {
|
|
62
63
|
return function (modulo) {
|
|
63
64
|
return function (equals) {
|
|
64
|
-
return function (parameters) {
|
|
65
|
+
return function (parameters, wrapper) {
|
|
65
66
|
return parameters.map(function (p, i) {
|
|
66
67
|
return typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(p.type
|
|
67
68
|
? project.checker.getTypeFromTypeNode(p.type)
|
|
68
|
-
: project.checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any")), undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath(
|
|
69
|
+
: project.checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any")), undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
|
|
70
|
+
wrapper: wrapper,
|
|
71
|
+
replacer: "$input.parameters[".concat(i, "]"),
|
|
72
|
+
})), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())]);
|
|
69
73
|
});
|
|
70
74
|
};
|
|
71
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAE1F,IAAiB,oCAAoC,
|
|
1
|
+
{"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAE1F,IAAiB,oCAAoC,CA0EpD;AA1ED,WAAiB,oCAAoC;IACtC,0CAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,IAAoB;oBAEpB,IAAM,OAAO,GAAG,uEAAkC,CAAC,mBAAmB,CACpE,MAAM,CACP,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAM,KAAK,GAAY,CAAC;wBACtB,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,KAAK,CAAC;wBACjD,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACvD,WAAW,CAAC,IAAI,CACjB,CAAC;wBACF,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;oBAClE,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW;wBAElB,OAAO,CAAC,QAAQ;8BACb,qCAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,WAAW,CAAC,UAAU,EACtB,OAAO,CAAC,IAAI,CACb,CAAC,GAAG,CAAC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;wBAC3C,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;4BAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAA7C,CAA6C,CAC9C,CACF,CACF;+BAEH,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YA3CD,CA2CC;QA5CD,CA4CC;IA7CD,CA6CC,CAAC;IAES,wDAAmB,GAC9B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAA8C,EAC9C,OAAe;oBAEf,OAAA,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC;wBAClB,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,CAAC,CAAC,IAAI;4BACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC7C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACnE,SAAS,EACT,uEAAkC,CAAC,QAAQ,CAAC;4BAC1C,OAAO,SAAA;4BACP,QAAQ,EAAE,4BAAqB,CAAC,MAAG;yBACpC,CAAC,CACH,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD;oBAbD,CAaC,CACF;gBAfD,CAeC;YAnBH,CAmBG;QApBH,CAoBG;IArBH,CAqBG,CAAC;AACR,CAAC,EA1EgB,oCAAoC,oDAApC,oCAAoC,QA0EpD"}
|
|
@@ -3,7 +3,7 @@ import ts from "typescript";
|
|
|
3
3
|
import { IProject } from "../../transformers/IProject";
|
|
4
4
|
export declare namespace FunctionAssertReturnProgrammer {
|
|
5
5
|
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, init?: ts.Expression) => ts.ArrowFunction;
|
|
6
|
-
const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, typeNode: ts.TypeNode | undefined, argumentExpressions: ts.Expression[]) => {
|
|
6
|
+
const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, typeNode: ts.TypeNode | undefined, argumentExpressions: ts.Expression[], wrapper: string) => {
|
|
7
7
|
async: boolean;
|
|
8
8
|
returns: ts.ReturnStatement;
|
|
9
9
|
};
|
|
@@ -30,15 +30,13 @@ var FunctionAssertReturnProgrammer;
|
|
|
30
30
|
return function (modulo) {
|
|
31
31
|
return function (equals) {
|
|
32
32
|
return function (expression, declaration, init) {
|
|
33
|
+
var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
33
34
|
var _a = FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.type, declaration.parameters.map(function (p) {
|
|
34
35
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
35
|
-
})), async = _a.async, statement = _a.returns;
|
|
36
|
+
}), wrapper.name), async = _a.async, statement = _a.returns;
|
|
36
37
|
return typescript_1.default.factory.createArrowFunction(async
|
|
37
38
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
38
|
-
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([
|
|
39
|
-
FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactory(modulo)(init),
|
|
40
|
-
statement,
|
|
41
|
-
], true));
|
|
39
|
+
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([wrapper.variable, statement], true));
|
|
42
40
|
};
|
|
43
41
|
};
|
|
44
42
|
};
|
|
@@ -46,7 +44,7 @@ var FunctionAssertReturnProgrammer;
|
|
|
46
44
|
FunctionAssertReturnProgrammer.returnStatement = function (project) {
|
|
47
45
|
return function (modulo) {
|
|
48
46
|
return function (equals) {
|
|
49
|
-
return function (expression, typeNode, argumentExpressions) {
|
|
47
|
+
return function (expression, typeNode, argumentExpressions, wrapper) {
|
|
50
48
|
var _a = __read((function () {
|
|
51
49
|
var type = project.checker.getTypeFromTypeNode(typeNode !== null && typeNode !== void 0 ? typeNode : TypeFactory_1.TypeFactory.keyword("any"));
|
|
52
50
|
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
@@ -56,7 +54,10 @@ var FunctionAssertReturnProgrammer;
|
|
|
56
54
|
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, argumentExpressions);
|
|
57
55
|
return {
|
|
58
56
|
async: async,
|
|
59
|
-
returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath(
|
|
57
|
+
returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
|
|
58
|
+
wrapper: wrapper,
|
|
59
|
+
replacer: "$input.return",
|
|
60
|
+
})), undefined, [async ? typescript_1.default.factory.createAwaitExpression(caller) : caller])),
|
|
60
61
|
};
|
|
61
62
|
};
|
|
62
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAE1F,IAAiB,8BAA8B,
|
|
1
|
+
{"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="ts-expose-internals/typescript" />
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { IProject } from "../../transformers/IProject";
|
|
4
|
+
export declare namespace FunctionalIsFunctionProgrammer {
|
|
5
|
+
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
|
|
6
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.FunctionalIsFunctionProgrammer = void 0;
|
|
32
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
33
|
+
var FunctionalIsParametersProgrammer_1 = require("./FunctionalIsParametersProgrammer");
|
|
34
|
+
var FunctionalIsReturnProgrammer_1 = require("./FunctionalIsReturnProgrammer");
|
|
35
|
+
var FunctionalIsFunctionProgrammer;
|
|
36
|
+
(function (FunctionalIsFunctionProgrammer) {
|
|
37
|
+
FunctionalIsFunctionProgrammer.write = function (project) {
|
|
38
|
+
return function (modulo) {
|
|
39
|
+
return function (equals) {
|
|
40
|
+
return function (expression, declaration) {
|
|
41
|
+
var _a;
|
|
42
|
+
var _b = FunctionalIsReturnProgrammer_1.FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _b.async, statements = _b.statements;
|
|
43
|
+
return typescript_1.default.factory.createArrowFunction(async
|
|
44
|
+
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
45
|
+
: undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
|
|
46
|
+
(_a = declaration.type) !== null && _a !== void 0 ? _a : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.AnyKeyword),
|
|
47
|
+
typescript_1.default.factory.createTypeReferenceNode("null"),
|
|
48
|
+
]), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer_1.FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
})(FunctionalIsFunctionProgrammer || (exports.FunctionalIsFunctionProgrammer = FunctionalIsFunctionProgrammer = {}));
|
|
54
|
+
//# sourceMappingURL=FunctionalIsFunctionProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionalIsFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAI5B,uFAAsF;AACtF,+EAA8E;AAE9E,IAAiB,8BAA8B,CAqC9C;AArCD,WAAiB,8BAA8B;IAChC,oCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;;oBAE7B,IAAA,KACJ,2DAA4B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACnE,UAAU,EACV,WAAW,CACZ,EAJK,KAAK,WAAA,EAAE,UAAU,gBAItB,CAAC;oBACJ,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBAC7B,MAAA,WAAW,CAAC,IAAI,mCACd,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAC5D,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;qBAC3C,CAAC,EACF,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,mEAAgC,CAAC,eAAe,CAAC,OAAO,CAAC,CAC1D,MAAM,CACP,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,kBACnB,UAAU,WAEf,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YA/BD,CA+BC;QAhCD,CAgCC;IAjCD,CAiCC,CAAC;AACN,CAAC,EArCgB,8BAA8B,8CAA9B,8BAA8B,QAqC9C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="ts-expose-internals/typescript" />
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { IProject } from "../../transformers/IProject";
|
|
4
|
+
export declare namespace FunctionalIsParametersProgrammer {
|
|
5
|
+
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
|
|
6
|
+
const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (declaration: ts.FunctionDeclaration) => ts.Statement[];
|
|
7
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.FunctionalIsParametersProgrammer = void 0;
|
|
32
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
33
|
+
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
34
|
+
var IsProgrammer_1 = require("../IsProgrammer");
|
|
35
|
+
var FunctionalIsParametersProgrammer;
|
|
36
|
+
(function (FunctionalIsParametersProgrammer) {
|
|
37
|
+
FunctionalIsParametersProgrammer.write = function (project) {
|
|
38
|
+
return function (modulo) {
|
|
39
|
+
return function (equals) {
|
|
40
|
+
return function (expression, declaration) {
|
|
41
|
+
var _a;
|
|
42
|
+
var async = (function () {
|
|
43
|
+
if (declaration.type === undefined)
|
|
44
|
+
return false;
|
|
45
|
+
var type = project.checker.getTypeFromTypeNode(declaration.type);
|
|
46
|
+
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
47
|
+
})();
|
|
48
|
+
return typescript_1.default.factory.createArrowFunction(async
|
|
49
|
+
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
50
|
+
: undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
|
|
51
|
+
(_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"),
|
|
52
|
+
typescript_1.default.factory.createTypeReferenceNode("null"),
|
|
53
|
+
]), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalIsParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), [
|
|
54
|
+
typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
55
|
+
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
56
|
+
}))),
|
|
57
|
+
], false), true));
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
FunctionalIsParametersProgrammer.writeStatements = function (project) {
|
|
63
|
+
return function (modulo) {
|
|
64
|
+
return function (equals) {
|
|
65
|
+
return function (declaration) {
|
|
66
|
+
return declaration.parameters
|
|
67
|
+
.map(function (p) {
|
|
68
|
+
var _a;
|
|
69
|
+
return [
|
|
70
|
+
typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createFalse(), typescript_1.default.factory.createCallExpression(IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(project.checker.getTypeFromTypeNode((_a = p.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"))), undefined, [typescript_1.default.factory.createIdentifier(p.name.getText())])), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createNull())),
|
|
71
|
+
];
|
|
72
|
+
})
|
|
73
|
+
.flat();
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
})(FunctionalIsParametersProgrammer || (exports.FunctionalIsParametersProgrammer = FunctionalIsParametersProgrammer = {}));
|
|
79
|
+
//# sourceMappingURL=FunctionalIsParametersProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="ts-expose-internals/typescript" />
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { IProject } from "../../transformers/IProject";
|
|
4
|
+
export declare namespace FunctionalIsReturnProgrammer {
|
|
5
|
+
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
|
|
6
|
+
const writeStatements: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => {
|
|
7
|
+
async: boolean;
|
|
8
|
+
statements: ts.Statement[];
|
|
9
|
+
};
|
|
10
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.FunctionalIsReturnProgrammer = void 0;
|
|
23
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
24
|
+
var StatementFactory_1 = require("../../factories/StatementFactory");
|
|
25
|
+
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
26
|
+
var StringUtil_1 = require("../../utils/StringUtil");
|
|
27
|
+
var IsProgrammer_1 = require("../IsProgrammer");
|
|
28
|
+
var FunctionalIsReturnProgrammer;
|
|
29
|
+
(function (FunctionalIsReturnProgrammer) {
|
|
30
|
+
FunctionalIsReturnProgrammer.write = function (project) {
|
|
31
|
+
return function (modulo) {
|
|
32
|
+
return function (equals) {
|
|
33
|
+
return function (expression, declaration) {
|
|
34
|
+
var _a;
|
|
35
|
+
var _b = FunctionalIsReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _b.async, statements = _b.statements;
|
|
36
|
+
return typescript_1.default.factory.createArrowFunction(async
|
|
37
|
+
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
38
|
+
: undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
|
|
39
|
+
(_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"),
|
|
40
|
+
typescript_1.default.factory.createTypeReferenceNode("null"),
|
|
41
|
+
]), undefined, typescript_1.default.factory.createBlock(statements, true));
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
FunctionalIsReturnProgrammer.writeStatements = function (project) {
|
|
47
|
+
return function (modulo) {
|
|
48
|
+
return function (equals) {
|
|
49
|
+
return function (expression, declaration) {
|
|
50
|
+
var _a = __read((function () {
|
|
51
|
+
var _a;
|
|
52
|
+
var type = project.checker.getTypeFromTypeNode((_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"));
|
|
53
|
+
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
54
|
+
? [type.aliasTypeArguments[0], true]
|
|
55
|
+
: [type, false];
|
|
56
|
+
})(), 2), type = _a[0], async = _a[1];
|
|
57
|
+
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
58
|
+
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
59
|
+
}));
|
|
60
|
+
var name = StringUtil_1.StringUtil.escapeDuplicate(declaration.parameters.map(function (p) { return p.name.getText(); }))("result");
|
|
61
|
+
var statements = [
|
|
62
|
+
StatementFactory_1.StatementFactory.constant(name, async ? typescript_1.default.factory.createAwaitExpression(caller) : caller),
|
|
63
|
+
typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createConditionalExpression(typescript_1.default.factory.createCallExpression(IsProgrammer_1.IsProgrammer.write(project)(modulo)(equals)(type), undefined, [typescript_1.default.factory.createIdentifier(name)]), undefined, typescript_1.default.factory.createIdentifier(name), undefined, typescript_1.default.factory.createNull())),
|
|
64
|
+
];
|
|
65
|
+
return { async: async, statements: statements };
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
})(FunctionalIsReturnProgrammer || (exports.FunctionalIsReturnProgrammer = FunctionalIsReturnProgrammer = {}));
|
|
71
|
+
//# sourceMappingURL=FunctionalIsReturnProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="ts-expose-internals/typescript" />
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { IProject } from "../../transformers/IProject";
|
|
4
|
+
export declare namespace FunctionalValidateFunctionProgrammer {
|
|
5
|
+
const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration) => ts.ArrowFunction;
|
|
6
|
+
const hookErrors: (props: {
|
|
7
|
+
expression: ts.Expression;
|
|
8
|
+
replacer: ts.Expression;
|
|
9
|
+
}) => ts.CallExpression;
|
|
10
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.FunctionalValidateFunctionProgrammer = void 0;
|
|
32
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
33
|
+
var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
|
|
34
|
+
var FunctionalValidateParametersProgrammer_1 = require("./FunctionalValidateParametersProgrammer");
|
|
35
|
+
var FunctionalValidateReturnProgrammer_1 = require("./FunctionalValidateReturnProgrammer");
|
|
36
|
+
var FunctionalValidateFunctionProgrammer;
|
|
37
|
+
(function (FunctionalValidateFunctionProgrammer) {
|
|
38
|
+
FunctionalValidateFunctionProgrammer.write = function (project) {
|
|
39
|
+
return function (modulo) {
|
|
40
|
+
return function (equals) {
|
|
41
|
+
return function (expression, declaration) {
|
|
42
|
+
var _a = FunctionalValidateReturnProgrammer_1.FunctionalValidateReturnProgrammer.writeStatements(project)(modulo)(equals)(expression, declaration), async = _a.async, statements = _a.statements;
|
|
43
|
+
return typescript_1.default.factory.createArrowFunction(async
|
|
44
|
+
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
45
|
+
: undefined, undefined, declaration.parameters, declaration.type
|
|
46
|
+
? typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createIdentifier("IValidation"), [declaration.type])
|
|
47
|
+
: undefined, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(FunctionalValidateParametersProgrammer_1.FunctionalValidateParametersProgrammer.writeStatements(project)(modulo)(equals)(declaration)), false), __read(statements), false), true));
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
FunctionalValidateFunctionProgrammer.hookErrors = function (props) {
|
|
53
|
+
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(props.expression, "map"), undefined, [
|
|
54
|
+
typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("error")], undefined, undefined, typescript_1.default.factory.createObjectLiteralExpression([
|
|
55
|
+
typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createIdentifier("error")),
|
|
56
|
+
typescript_1.default.factory.createPropertyAssignment("path", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("error"), "path"), "replace"), undefined, [typescript_1.default.factory.createStringLiteral("$input"), props.replacer])),
|
|
57
|
+
], true)),
|
|
58
|
+
]);
|
|
59
|
+
};
|
|
60
|
+
})(FunctionalValidateFunctionProgrammer || (exports.FunctionalValidateFunctionProgrammer = FunctionalValidateFunctionProgrammer = {}));
|
|
61
|
+
//# sourceMappingURL=FunctionalValidateFunctionProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionalValidateFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,mGAAkG;AAClG,2FAA0F;AAE1F,IAAiB,oCAAoC,CAiFpD;AAjFD,WAAiB,oCAAoC;IACtC,0CAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAE7B,IAAA,KACJ,uEAAkC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CACjE,MAAM,CACP,CAAC,UAAU,EAAE,WAAW,CAAC,EAHpB,KAAK,WAAA,EAAE,UAAU,gBAGG,CAAC;oBAC7B,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,KAAK;wBACH,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACzD,CAAC,CAAC,SAAS,EACb,SAAS,EACT,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,IAAI;wBACd,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACxC,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC1C,CAAC,WAAW,CAAC,IAAI,CAAC,CACnB;wBACH,CAAC,CAAC,SAAS,EACb,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,+EAAsC,CAAC,eAAe,CAAC,OAAO,CAAC,CAChE,MAAM,CACP,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,kBACnB,UAAU,WAEf,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;YAnCD,CAmCC;QApCD,CAoCC;IArCD,CAqCC,CAAC;IAES,+CAAU,GAAG,UAAC,KAG1B;QACC,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAClE,SAAS,EACT;YACE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT,CAAC,qCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACtC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;gBACE,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACrC;gBACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,MAAM,EACN,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,MAAM,CACP,EACD,SAAS,CACV,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAC3D,CACF;aACF,EACD,IAAI,CACL,CACF;SACF,CACF;IAlCD,CAkCC,CAAC;AACN,CAAC,EAjFgB,oCAAoC,oDAApC,oCAAoC,QAiFpD"}
|