typia 5.5.0 → 5.5.1-dev.20240307
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/programmers/functional/FunctionalAssertFunctionProgrammer.js +1 -3
- package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +2 -6
- package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +1 -1
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +7 -28
- package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +2 -6
- package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +2 -23
- package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +2 -6
- package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
- package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +2 -24
- package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
- package/lib/programmers/functional/internal/FunctionalProgrammer.d.ts +9 -0
- package/lib/programmers/functional/internal/FunctionalProgrammer.js +26 -0
- package/lib/programmers/functional/internal/FunctionalProgrammer.js.map +1 -0
- package/package.json +1 -1
- package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +1 -8
- package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +4 -7
- package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +9 -21
- package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +4 -7
- package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +4 -8
- package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +4 -7
- package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +4 -9
- package/src/programmers/functional/internal/FunctionalProgrammer.ts +35 -0
|
@@ -43,9 +43,7 @@ var FunctionalAssertFunctionProgrammer;
|
|
|
43
43
|
return function (equals) {
|
|
44
44
|
return function (expression, declaration, init) {
|
|
45
45
|
var wrapper = FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
46
|
-
var _a = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.
|
|
47
|
-
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
48
|
-
}), wrapper.name), async = _a.async, returns = _a.returns;
|
|
46
|
+
var _a = FunctionalAssertReturnProgrammer_1.FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration, wrapper.name), async = _a.async, returns = _a.returns;
|
|
49
47
|
return typescript_1.default.factory.createArrowFunction(async
|
|
50
48
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
51
49
|
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,2DAA0D;AAI1D,qDAAoD;AAEpD,wDAAuD;AACvD,+FAA8F;AAC9F,uFAAoF;AAEpF,IAAiB,kCAAkC,
|
|
1
|
+
{"version":3,"file":"FunctionalAssertFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertFunctionProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,2DAA0D;AAI1D,qDAAoD;AAEpD,wDAAuD;AACvD,+FAA8F;AAC9F,uFAAoF;AAEpF,IAAiB,kCAAkC,CAoHlD;AApHD,WAAiB,kCAAkC;IACpC,wCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,IAAoB;oBAEpB,IAAM,OAAO,GAAG,mCAAA,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpE,IAAA,KAAqB,iEAA8B,CAAC,eAAe,CACvE,OAAO,CACR,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,EAFhD,KAAK,WAAA,EAAE,OAAO,aAEkC,CAAC;oBACzD,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;wBACpB,OAAO,CAAC,QAAQ;8BACb,2EAAoC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAClE,MAAM,CACP,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CACjD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CACrC;wBACD,OAAO;8BACP,CACH,CAAC;gBACJ,CAAC;YA3BD,CA2BC;QA5BD,CA4BC;IA7BD,CA6BC,CAAC;IAES,sDAAmB,GAC9B,UAAC,MAAiC;QAClC,OAAA,UAAC,SAA6C;YAC9C,OAAA,UACE,IAA+B;gBAK/B,IAAM,IAAI,GAAW,uBAAU,CAAC,eAAe,CAC7C,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAhB,CAAgB,CAAC,CACvC,CAAC,qBAAqB,CAAC,CAAC;gBACzB,IAAM,QAAQ,GAAyB,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CACvE,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;oBACE,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,IAAI,EACJ,SAAS,EACT,mCAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAChC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GACF,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,MAAM,EACN,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAC3B,EACD,cAAc,CACf,CACJ;iBACF,EACD,oBAAE,CAAC,SAAS,CAAC,KAAK,CACnB,CACF,CAAC;gBACF,OAAO,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;YAC5B,CAAC;QA/BD,CA+BC;IAhCD,CAgCC,CAAC;IAES,2CAAQ,GAAG,UAAC,KAGxB;QACC,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT,CAAC,qCAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAClC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,EAC1C,SAAS,EACT;YACE,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBACvC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACnE,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,MAAM,EACN,oBAAE,CAAC,OAAO,CAAC,2BAA2B,CACpC,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,MAAM,CACP,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,MAAM,CACP,EACD,SAAS,CACV,EACD,SAAS,EACT;oBACE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC;oBACxC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAC/C,CACF,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACzC,CACF;aACF,CAAC;SACH,CACF,CACF;IAzCD,CAyCC,CAAC;AACN,CAAC,EApHgB,kCAAkC,kDAAlC,kCAAkC,QAoHlD"}
|
|
@@ -33,6 +33,7 @@ var typescript_1 = __importDefault(require("typescript"));
|
|
|
33
33
|
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
34
34
|
var AssertProgrammer_1 = require("../AssertProgrammer");
|
|
35
35
|
var FunctionalAssertFunctionProgrammer_1 = require("./FunctionalAssertFunctionProgrammer");
|
|
36
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
36
37
|
var FunctionalAssertParametersProgrammer;
|
|
37
38
|
(function (FunctionalAssertParametersProgrammer) {
|
|
38
39
|
FunctionalAssertParametersProgrammer.write = function (project) {
|
|
@@ -40,12 +41,7 @@ var FunctionalAssertParametersProgrammer;
|
|
|
40
41
|
return function (equals) {
|
|
41
42
|
return function (expression, declaration, init) {
|
|
42
43
|
var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
43
|
-
var async = (
|
|
44
|
-
if (declaration.type === undefined)
|
|
45
|
-
return false;
|
|
46
|
-
var type = project.checker.getTypeFromTypeNode(declaration.type);
|
|
47
|
-
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
48
|
-
})();
|
|
44
|
+
var async = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration).async;
|
|
49
45
|
return typescript_1.default.factory.createArrowFunction(async
|
|
50
46
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
51
47
|
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"FunctionalAssertParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,wDAAuD;AACvD,2FAA0F;AAC1F,wEAAuE;AAEvE,IAAiB,oCAAoC,CAsEpD;AAtED,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;oBACxB,IAAA,KAAK,GAAK,2CAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CACnE,WAAW,CACZ,MAFY,CAEX;oBACF,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;YAvCD,CAuCC;QAxCD,CAwCC;IAzCD,CAyCC,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,EAtEgB,oCAAoC,oDAApC,oCAAoC,QAsEpD"}
|
|
@@ -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,
|
|
6
|
+
const returnStatement: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (equals: boolean) => (expression: ts.Expression, declaration: ts.FunctionDeclaration, wrapper: string) => {
|
|
7
7
|
async: boolean;
|
|
8
8
|
returns: ts.ReturnStatement;
|
|
9
9
|
};
|
|
@@ -1,29 +1,13 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
21
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
6
|
exports.FunctionAssertReturnProgrammer = void 0;
|
|
23
7
|
var typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
25
8
|
var AssertProgrammer_1 = require("../AssertProgrammer");
|
|
26
9
|
var FunctionalAssertFunctionProgrammer_1 = require("./FunctionalAssertFunctionProgrammer");
|
|
10
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
27
11
|
var FunctionAssertReturnProgrammer;
|
|
28
12
|
(function (FunctionAssertReturnProgrammer) {
|
|
29
13
|
FunctionAssertReturnProgrammer.write = function (project) {
|
|
@@ -31,9 +15,7 @@ var FunctionAssertReturnProgrammer;
|
|
|
31
15
|
return function (equals) {
|
|
32
16
|
return function (expression, declaration, init) {
|
|
33
17
|
var wrapper = FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
34
|
-
var _a = FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration.
|
|
35
|
-
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
36
|
-
}), wrapper.name), async = _a.async, statement = _a.returns;
|
|
18
|
+
var _a = FunctionAssertReturnProgrammer.returnStatement(project)(modulo)(equals)(expression, declaration, wrapper.name), async = _a.async, statement = _a.returns;
|
|
37
19
|
return typescript_1.default.factory.createArrowFunction(async
|
|
38
20
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
39
21
|
: undefined, undefined, declaration.parameters, declaration.type, undefined, typescript_1.default.factory.createBlock([wrapper.variable, statement], true));
|
|
@@ -44,14 +26,11 @@ var FunctionAssertReturnProgrammer;
|
|
|
44
26
|
FunctionAssertReturnProgrammer.returnStatement = function (project) {
|
|
45
27
|
return function (modulo) {
|
|
46
28
|
return function (equals) {
|
|
47
|
-
return function (expression,
|
|
48
|
-
var _a =
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
|
|
52
|
-
: [type, false];
|
|
53
|
-
})(), 2), type = _a[0], async = _a[1];
|
|
54
|
-
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, argumentExpressions);
|
|
29
|
+
return function (expression, declaration, wrapper) {
|
|
30
|
+
var _a = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration), type = _a.type, async = _a.async;
|
|
31
|
+
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
32
|
+
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
33
|
+
}));
|
|
55
34
|
return {
|
|
56
35
|
async: async,
|
|
57
36
|
returns: typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(AssertProgrammer_1.AssertProgrammer.write(project)(modulo)(equals)(type, undefined, FunctionalAssertFunctionProgrammer_1.FunctionalAssertFunctionProgrammer.hookPath({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FunctionalAssertReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalAssertReturnProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAI5B,wDAAuD;AACvD,2FAA0F;AAC1F,wEAAuE;AAEvE,IAAiB,8BAA8B,CAoE9C;AApED,WAAiB,8BAA8B;IAChC,oCAAK,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;oBAC1B,IAAA,KAAgC,+BAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CACpE,MAAM,CACP,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,EAFhC,KAAK,WAAA,EAAW,SAAS,aAEO,CAAC;oBACzC,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,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAC5D,CAAC;gBACJ,CAAC;YArBD,CAqBC;QAtBD,CAsBC;IAvBD,CAuBC,CAAC;IAES,8CAAe,GAC1B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC,EACnC,OAAe;oBAKT,IAAA,KAAkB,2CAAoB,CAAC,aAAa,CACxD,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,EAFN,IAAI,UAAA,EAAE,KAAK,WAEL,CAAC;oBACf,IAAM,MAAM,GAAsB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC/D,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;wBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAA7C,CAA6C,CAC9C,CACF,CAAC;oBACF,OAAO;wBACL,KAAK,OAAA;wBACL,OAAO,EAAE,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CACvC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,mCAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7C,IAAI,EACJ,SAAS,EACT,uEAAkC,CAAC,QAAQ,CAAC;4BAC1C,OAAO,SAAA;4BACP,QAAQ,EAAE,eAAe;yBAC1B,CAAC,CACH,EACD,SAAS,EACT,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5D,CACF;qBACF,CAAC;gBACJ,CAAC;YAnCD,CAmCC;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACN,CAAC,EApEgB,8BAA8B,8CAA9B,8BAA8B,QAoE9C"}
|
|
@@ -32,6 +32,7 @@ exports.FunctionalIsParametersProgrammer = void 0;
|
|
|
32
32
|
var typescript_1 = __importDefault(require("typescript"));
|
|
33
33
|
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
34
34
|
var IsProgrammer_1 = require("../IsProgrammer");
|
|
35
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
35
36
|
var FunctionalIsParametersProgrammer;
|
|
36
37
|
(function (FunctionalIsParametersProgrammer) {
|
|
37
38
|
FunctionalIsParametersProgrammer.write = function (project) {
|
|
@@ -39,12 +40,7 @@ var FunctionalIsParametersProgrammer;
|
|
|
39
40
|
return function (equals) {
|
|
40
41
|
return function (expression, declaration) {
|
|
41
42
|
var _a;
|
|
42
|
-
var async = (
|
|
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
|
-
})();
|
|
43
|
+
var async = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration).async;
|
|
48
44
|
return typescript_1.default.factory.createArrowFunction(async
|
|
49
45
|
? [typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.AsyncKeyword)]
|
|
50
46
|
: undefined, undefined, declaration.parameters, typescript_1.default.factory.createUnionTypeNode([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,gDAA+C;
|
|
1
|
+
{"version":3,"file":"FunctionalIsParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2DAA0D;AAI1D,gDAA+C;AAC/C,wEAAuE;AAEvE,IAAiB,gCAAgC,CAiEhD;AAjED,WAAiB,gCAAgC;IAClC,sCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;;oBAE3B,IAAA,KAAK,GAAK,2CAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CACnE,WAAW,CACZ,MAFY,CAEX;oBACF,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,mCAAI,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC;wBAC9C,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC;qBAC3C,CAAC,EACF,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,wCAEf,iCAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;wBACxD,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;YAlCD,CAkCC;QAnCD,CAmCC;IApCD,CAoCC,CAAC;IAES,gDAAe,GAC1B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UAAC,WAAmC;oBAClC,OAAA,WAAW,CAAC,UAAU;yBACnB,GAAG,CAAC,UAAC,CAAC;;wBAAK,OAAA;4BACV,oBAAE,CAAC,OAAO,CAAC,iBAAiB,CAC1B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EACxB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,2BAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACzC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACjC,MAAA,CAAC,CAAC,IAAI,mCAAI,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CACrC,CACF,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD,CACF,EACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAC1D;yBACF,CAAA;qBAAA,CAAC;yBACD,IAAI,EAAE;gBAlBT,CAkBS;YAnBX,CAmBW;QApBX,CAoBW;IArBX,CAqBW,CAAC;AAChB,CAAC,EAjEgB,gCAAgC,gDAAhC,gCAAgC,QAiEhD"}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
@@ -25,6 +9,7 @@ var StatementFactory_1 = require("../../factories/StatementFactory");
|
|
|
25
9
|
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
26
10
|
var StringUtil_1 = require("../../utils/StringUtil");
|
|
27
11
|
var IsProgrammer_1 = require("../IsProgrammer");
|
|
12
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
28
13
|
var FunctionalIsReturnProgrammer;
|
|
29
14
|
(function (FunctionalIsReturnProgrammer) {
|
|
30
15
|
FunctionalIsReturnProgrammer.write = function (project) {
|
|
@@ -47,13 +32,7 @@ var FunctionalIsReturnProgrammer;
|
|
|
47
32
|
return function (modulo) {
|
|
48
33
|
return function (equals) {
|
|
49
34
|
return function (expression, declaration) {
|
|
50
|
-
var _a =
|
|
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];
|
|
35
|
+
var _a = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration), type = _a.type, async = _a.async;
|
|
57
36
|
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
58
37
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
59
38
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FunctionalIsReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalIsReturnProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,18 +36,14 @@ var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
|
36
36
|
var StringUtil_1 = require("../../utils/StringUtil");
|
|
37
37
|
var ValidateProgrammer_1 = require("../ValidateProgrammer");
|
|
38
38
|
var FunctionalValidateFunctionProgrammer_1 = require("./FunctionalValidateFunctionProgrammer");
|
|
39
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
39
40
|
var FunctionalValidateParametersProgrammer;
|
|
40
41
|
(function (FunctionalValidateParametersProgrammer) {
|
|
41
42
|
FunctionalValidateParametersProgrammer.write = function (project) {
|
|
42
43
|
return function (modulo) {
|
|
43
44
|
return function (equals) {
|
|
44
45
|
return function (expression, declaration) {
|
|
45
|
-
var async = (
|
|
46
|
-
if (declaration.type === undefined)
|
|
47
|
-
return false;
|
|
48
|
-
var type = project.checker.getTypeFromTypeNode(declaration.type);
|
|
49
|
-
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
50
|
-
})();
|
|
46
|
+
var async = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration).async;
|
|
51
47
|
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
52
48
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
53
49
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalValidateParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateParametersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AACpE,2DAA0D;AAI1D,qDAAoD;AAEpD,4DAA2D;AAC3D,+FAA8F;
|
|
1
|
+
{"version":3,"file":"FunctionalValidateParametersProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateParametersProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
@@ -22,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
6
|
exports.FunctionalValidateReturnProgrammer = void 0;
|
|
23
7
|
var typescript_1 = __importDefault(require("typescript"));
|
|
24
8
|
var StatementFactory_1 = require("../../factories/StatementFactory");
|
|
25
|
-
var TypeFactory_1 = require("../../factories/TypeFactory");
|
|
26
9
|
var StringUtil_1 = require("../../utils/StringUtil");
|
|
27
10
|
var ValidateProgrammer_1 = require("../ValidateProgrammer");
|
|
28
11
|
var FunctionalValidateFunctionProgrammer_1 = require("./FunctionalValidateFunctionProgrammer");
|
|
12
|
+
var FunctionalProgrammer_1 = require("./internal/FunctionalProgrammer");
|
|
29
13
|
var FunctionalValidateReturnProgrammer;
|
|
30
14
|
(function (FunctionalValidateReturnProgrammer) {
|
|
31
15
|
FunctionalValidateReturnProgrammer.write = function (project) {
|
|
@@ -46,13 +30,7 @@ var FunctionalValidateReturnProgrammer;
|
|
|
46
30
|
return function (modulo) {
|
|
47
31
|
return function (equals) {
|
|
48
32
|
return function (expression, declaration) {
|
|
49
|
-
var _a =
|
|
50
|
-
var _a;
|
|
51
|
-
var type = project.checker.getTypeFromTypeNode((_a = declaration.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"));
|
|
52
|
-
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
53
|
-
? [type.aliasTypeArguments[0], true]
|
|
54
|
-
: [type, false];
|
|
55
|
-
})(), 2), type = _a[0], async = _a[1];
|
|
33
|
+
var _a = FunctionalProgrammer_1.FunctionalProgrammer.getReturnType(project.checker)(declaration), type = _a.type, async = _a.async;
|
|
56
34
|
var caller = typescript_1.default.factory.createCallExpression(expression, undefined, declaration.parameters.map(function (p) {
|
|
57
35
|
return typescript_1.default.factory.createIdentifier(p.name.getText());
|
|
58
36
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalValidateReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateReturnProgrammer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FunctionalValidateReturnProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/functional/FunctionalValidateReturnProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,qEAAoE;AAIpE,qDAAoD;AAEpD,4DAA2D;AAC3D,+FAA8F;AAC9F,wEAAuE;AAEvE,IAAiB,kCAAkC,CAiGlD;AAjGD,WAAiB,kCAAkC;IACpC,wCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAE7B,IAAA,KAAwB,mCAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACpE,UAAU,EACV,WAAW,CACZ,EAHO,KAAK,WAAA,EAAE,UAAU,gBAGxB,CAAC;oBACF,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,CAAC,UAAU,EAAE,IAAI,CAAC,CACzC,CAAC;gBACJ,CAAC;YA3BD,CA2BC;QA5BD,CA4BC;IA7BD,CA6BC,CAAC;IAES,kDAAe,GAC1B,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,MAAe;gBAChB,OAAA,UACE,UAAyB,EACzB,WAAmC;oBAK7B,IAAA,KAAkB,2CAAoB,CAAC,aAAa,CACxD,OAAO,CAAC,OAAO,CAChB,CAAC,WAAW,CAAC,EAFN,IAAI,UAAA,EAAE,KAAK,WAEL,CAAC;oBACf,IAAM,MAAM,GAAsB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC/D,UAAU,EACV,SAAS,EACT,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC;wBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAA7C,CAA6C,CAC9C,CACF,CAAC;oBAEF,IAAM,IAAI,GAAW,uBAAU,CAAC,eAAe,CAC7C,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAhB,CAAgB,CAAC,CACpD,CAAC,QAAQ,CAAC,CAAC;oBACZ,IAAM,UAAU,GAAmB;wBACjC,mCAAgB,CAAC,QAAQ,CACvB,IAAI,EACJ,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,uCAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EACvD,SAAS,EACT,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5D,CACF;wBACD,oBAAE,CAAC,OAAO,CAAC,iBAAiB,CAC1B,oBAAE,CAAC,OAAO,CAAC,2BAA2B,CACpC,oBAAE,CAAC,UAAU,CAAC,gBAAgB,EAC9B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CACvC,CACF,EACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC/B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACtC,EACD,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EACjD,2EAAoC,CAAC,UAAU,CAAC;4BAC9C,UAAU,EAAE,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACnD,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACtC;4BACD,QAAQ,EAAE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC;yBAC1D,CAAC,CACH,CACF,CACF;wBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;qBACxE,CAAC;oBACF,OAAO,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC;gBAC/B,CAAC;YA1DD,CA0DC;QA3DD,CA2DC;IA5DD,CA4DC,CAAC;AACN,CAAC,EAjGgB,kCAAkC,kDAAlC,kCAAkC,QAiGlD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="ts-expose-internals/typescript" />
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
export declare namespace FunctionalProgrammer {
|
|
4
|
+
interface IOutput {
|
|
5
|
+
type: ts.Type;
|
|
6
|
+
async: boolean;
|
|
7
|
+
}
|
|
8
|
+
const getReturnType: (checker: ts.TypeChecker) => (declaration: ts.FunctionDeclaration) => IOutput;
|
|
9
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FunctionalProgrammer = void 0;
|
|
4
|
+
var TypeFactory_1 = require("../../../factories/TypeFactory");
|
|
5
|
+
var FunctionalProgrammer;
|
|
6
|
+
(function (FunctionalProgrammer) {
|
|
7
|
+
FunctionalProgrammer.getReturnType = function (checker) {
|
|
8
|
+
return function (declaration) {
|
|
9
|
+
var _a;
|
|
10
|
+
var signature = checker.getSignatureFromDeclaration(declaration);
|
|
11
|
+
var type = (_a = signature === null || signature === void 0 ? void 0 : signature.getReturnType()) !== null && _a !== void 0 ? _a : checker.getTypeFromTypeNode(TypeFactory_1.TypeFactory.keyword("any"));
|
|
12
|
+
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
13
|
+
? { type: escape_promise(checker)(type), async: true }
|
|
14
|
+
: { type: type, async: false };
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
})(FunctionalProgrammer || (exports.FunctionalProgrammer = FunctionalProgrammer = {}));
|
|
18
|
+
var escape_promise = function (checker) {
|
|
19
|
+
return function (type) {
|
|
20
|
+
var generic = checker.getTypeArguments(type);
|
|
21
|
+
if (generic.length !== 1)
|
|
22
|
+
throw new Error("Error on ImportAnalyzer.analyze(): invalid promise type.");
|
|
23
|
+
return generic[0];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=FunctionalProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionalProgrammer.js","sourceRoot":"","sources":["../../../../src/programmers/functional/internal/FunctionalProgrammer.ts"],"names":[],"mappings":";;;AAEA,8DAA6D;AAE7D,IAAiB,oBAAoB,CAiBpC;AAjBD,WAAiB,oBAAoB;IAKtB,kCAAa,GACxB,UAAC,OAAuB;QACxB,OAAA,UAAC,WAAmC;;YAClC,IAAM,SAAS,GACb,OAAO,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;YACnD,IAAM,IAAI,GACR,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,EAAE,mCAC1B,OAAO,CAAC,mBAAmB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;gBAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;gBACtD,CAAC,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;IATD,CASC,CAAC;AACN,CAAC,EAjBgB,oBAAoB,oCAApB,oBAAoB,QAiBpC;AAED,IAAM,cAAc,GAClB,UAAC,OAAuB;IACxB,OAAA,UAAC,IAAa;QACZ,IAAM,OAAO,GAAuB,OAAO,CAAC,gBAAgB,CAC1D,IAAwB,CACzB,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;IACrB,CAAC;AATD,CASC,CAAC"}
|
package/package.json
CHANGED
|
@@ -24,14 +24,7 @@ export namespace FunctionalAssertFunctionProgrammer {
|
|
|
24
24
|
const wrapper = errorFactoryWrapper(modulo)(declaration.parameters)(init);
|
|
25
25
|
const { async, returns } = FunctionAssertReturnProgrammer.returnStatement(
|
|
26
26
|
project,
|
|
27
|
-
)(modulo)(equals)(
|
|
28
|
-
expression,
|
|
29
|
-
declaration.type,
|
|
30
|
-
declaration.parameters.map((p) =>
|
|
31
|
-
ts.factory.createIdentifier(p.name.getText()),
|
|
32
|
-
),
|
|
33
|
-
wrapper.name,
|
|
34
|
-
);
|
|
27
|
+
)(modulo)(equals)(expression, declaration, wrapper.name);
|
|
35
28
|
return ts.factory.createArrowFunction(
|
|
36
29
|
async
|
|
37
30
|
? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)]
|
|
@@ -6,6 +6,7 @@ import { IProject } from "../../transformers/IProject";
|
|
|
6
6
|
|
|
7
7
|
import { AssertProgrammer } from "../AssertProgrammer";
|
|
8
8
|
import { FunctionalAssertFunctionProgrammer } from "./FunctionalAssertFunctionProgrammer";
|
|
9
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
9
10
|
|
|
10
11
|
export namespace FunctionalAssertParametersProgrammer {
|
|
11
12
|
export const write =
|
|
@@ -20,13 +21,9 @@ export namespace FunctionalAssertParametersProgrammer {
|
|
|
20
21
|
const wrapper = FunctionalAssertFunctionProgrammer.errorFactoryWrapper(
|
|
21
22
|
modulo,
|
|
22
23
|
)(declaration.parameters)(init);
|
|
23
|
-
const async
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
declaration.type,
|
|
27
|
-
);
|
|
28
|
-
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
29
|
-
})();
|
|
24
|
+
const { async } = FunctionalProgrammer.getReturnType(project.checker)(
|
|
25
|
+
declaration,
|
|
26
|
+
);
|
|
30
27
|
return ts.factory.createArrowFunction(
|
|
31
28
|
async
|
|
32
29
|
? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)]
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
|
-
import { TypeFactory } from "../../factories/TypeFactory";
|
|
4
|
-
|
|
5
3
|
import { IProject } from "../../transformers/IProject";
|
|
6
4
|
|
|
7
5
|
import { AssertProgrammer } from "../AssertProgrammer";
|
|
8
6
|
import { FunctionalAssertFunctionProgrammer } from "./FunctionalAssertFunctionProgrammer";
|
|
7
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
9
8
|
|
|
10
9
|
export namespace FunctionAssertReturnProgrammer {
|
|
11
10
|
export const write =
|
|
@@ -22,14 +21,7 @@ export namespace FunctionAssertReturnProgrammer {
|
|
|
22
21
|
)(declaration.parameters)(init);
|
|
23
22
|
const { async, returns: statement } = returnStatement(project)(modulo)(
|
|
24
23
|
equals,
|
|
25
|
-
)(
|
|
26
|
-
expression,
|
|
27
|
-
declaration.type,
|
|
28
|
-
declaration.parameters.map((p) =>
|
|
29
|
-
ts.factory.createIdentifier(p.name.getText()),
|
|
30
|
-
),
|
|
31
|
-
wrapper.name,
|
|
32
|
-
);
|
|
24
|
+
)(expression, declaration, wrapper.name);
|
|
33
25
|
return ts.factory.createArrowFunction(
|
|
34
26
|
async
|
|
35
27
|
? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)]
|
|
@@ -48,25 +40,21 @@ export namespace FunctionAssertReturnProgrammer {
|
|
|
48
40
|
(equals: boolean) =>
|
|
49
41
|
(
|
|
50
42
|
expression: ts.Expression,
|
|
51
|
-
|
|
52
|
-
argumentExpressions: ts.Expression[],
|
|
43
|
+
declaration: ts.FunctionDeclaration,
|
|
53
44
|
wrapper: string,
|
|
54
45
|
): {
|
|
55
46
|
async: boolean;
|
|
56
47
|
returns: ts.ReturnStatement;
|
|
57
48
|
} => {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
);
|
|
62
|
-
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
63
|
-
? [type.aliasTypeArguments![0]!, true]
|
|
64
|
-
: [type, false];
|
|
65
|
-
})();
|
|
49
|
+
const { type, async } = FunctionalProgrammer.getReturnType(
|
|
50
|
+
project.checker,
|
|
51
|
+
)(declaration);
|
|
66
52
|
const caller: ts.CallExpression = ts.factory.createCallExpression(
|
|
67
53
|
expression,
|
|
68
54
|
undefined,
|
|
69
|
-
|
|
55
|
+
declaration.parameters.map((p) =>
|
|
56
|
+
ts.factory.createIdentifier(p.name.getText()),
|
|
57
|
+
),
|
|
70
58
|
);
|
|
71
59
|
return {
|
|
72
60
|
async,
|
|
@@ -5,6 +5,7 @@ import { TypeFactory } from "../../factories/TypeFactory";
|
|
|
5
5
|
import { IProject } from "../../transformers/IProject";
|
|
6
6
|
|
|
7
7
|
import { IsProgrammer } from "../IsProgrammer";
|
|
8
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
8
9
|
|
|
9
10
|
export namespace FunctionalIsParametersProgrammer {
|
|
10
11
|
export const write =
|
|
@@ -15,13 +16,9 @@ export namespace FunctionalIsParametersProgrammer {
|
|
|
15
16
|
expression: ts.Expression,
|
|
16
17
|
declaration: ts.FunctionDeclaration,
|
|
17
18
|
): ts.ArrowFunction => {
|
|
18
|
-
const async
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
declaration.type,
|
|
22
|
-
);
|
|
23
|
-
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
24
|
-
})();
|
|
19
|
+
const { async } = FunctionalProgrammer.getReturnType(project.checker)(
|
|
20
|
+
declaration,
|
|
21
|
+
);
|
|
25
22
|
return ts.factory.createArrowFunction(
|
|
26
23
|
async
|
|
27
24
|
? [ts.factory.createModifier(ts.SyntaxKind.AsyncKeyword)]
|
|
@@ -8,6 +8,7 @@ import { IProject } from "../../transformers/IProject";
|
|
|
8
8
|
import { StringUtil } from "../../utils/StringUtil";
|
|
9
9
|
|
|
10
10
|
import { IsProgrammer } from "../IsProgrammer";
|
|
11
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
11
12
|
|
|
12
13
|
export namespace FunctionalIsReturnProgrammer {
|
|
13
14
|
export const write =
|
|
@@ -48,14 +49,9 @@ export namespace FunctionalIsReturnProgrammer {
|
|
|
48
49
|
async: boolean;
|
|
49
50
|
statements: ts.Statement[];
|
|
50
51
|
} => {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
);
|
|
55
|
-
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
56
|
-
? [type.aliasTypeArguments![0]!, true]
|
|
57
|
-
: [type, false];
|
|
58
|
-
})();
|
|
52
|
+
const { type, async } = FunctionalProgrammer.getReturnType(
|
|
53
|
+
project.checker,
|
|
54
|
+
)(declaration);
|
|
59
55
|
const caller: ts.CallExpression = ts.factory.createCallExpression(
|
|
60
56
|
expression,
|
|
61
57
|
undefined,
|
|
@@ -10,6 +10,7 @@ import { StringUtil } from "../../utils/StringUtil";
|
|
|
10
10
|
|
|
11
11
|
import { ValidateProgrammer } from "../ValidateProgrammer";
|
|
12
12
|
import { FunctionalValidateFunctionProgrammer } from "./FunctionalValidateFunctionProgrammer";
|
|
13
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
13
14
|
|
|
14
15
|
export namespace FunctionalValidateParametersProgrammer {
|
|
15
16
|
export const write =
|
|
@@ -20,13 +21,9 @@ export namespace FunctionalValidateParametersProgrammer {
|
|
|
20
21
|
expression: ts.Expression,
|
|
21
22
|
declaration: ts.FunctionDeclaration,
|
|
22
23
|
): ts.ArrowFunction => {
|
|
23
|
-
const async
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
declaration.type,
|
|
27
|
-
);
|
|
28
|
-
return type.isTypeParameter() && type.symbol.name === "Promise";
|
|
29
|
-
})();
|
|
24
|
+
const { async } = FunctionalProgrammer.getReturnType(project.checker)(
|
|
25
|
+
declaration,
|
|
26
|
+
);
|
|
30
27
|
const caller: ts.CallExpression = ts.factory.createCallExpression(
|
|
31
28
|
expression,
|
|
32
29
|
undefined,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
|
|
3
3
|
import { StatementFactory } from "../../factories/StatementFactory";
|
|
4
|
-
import { TypeFactory } from "../../factories/TypeFactory";
|
|
5
4
|
|
|
6
5
|
import { IProject } from "../../transformers/IProject";
|
|
7
6
|
|
|
@@ -9,6 +8,7 @@ import { StringUtil } from "../../utils/StringUtil";
|
|
|
9
8
|
|
|
10
9
|
import { ValidateProgrammer } from "../ValidateProgrammer";
|
|
11
10
|
import { FunctionalValidateFunctionProgrammer } from "./FunctionalValidateFunctionProgrammer";
|
|
11
|
+
import { FunctionalProgrammer } from "./internal/FunctionalProgrammer";
|
|
12
12
|
|
|
13
13
|
export namespace FunctionalValidateReturnProgrammer {
|
|
14
14
|
export const write =
|
|
@@ -55,14 +55,9 @@ export namespace FunctionalValidateReturnProgrammer {
|
|
|
55
55
|
async: boolean;
|
|
56
56
|
statements: ts.Statement[];
|
|
57
57
|
} => {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
);
|
|
62
|
-
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
63
|
-
? [type.aliasTypeArguments![0]!, true]
|
|
64
|
-
: [type, false];
|
|
65
|
-
})();
|
|
58
|
+
const { type, async } = FunctionalProgrammer.getReturnType(
|
|
59
|
+
project.checker,
|
|
60
|
+
)(declaration);
|
|
66
61
|
const caller: ts.CallExpression = ts.factory.createCallExpression(
|
|
67
62
|
expression,
|
|
68
63
|
undefined,
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
|
|
3
|
+
import { TypeFactory } from "../../../factories/TypeFactory";
|
|
4
|
+
|
|
5
|
+
export namespace FunctionalProgrammer {
|
|
6
|
+
export interface IOutput {
|
|
7
|
+
type: ts.Type;
|
|
8
|
+
async: boolean;
|
|
9
|
+
}
|
|
10
|
+
export const getReturnType =
|
|
11
|
+
(checker: ts.TypeChecker) =>
|
|
12
|
+
(declaration: ts.FunctionDeclaration): IOutput => {
|
|
13
|
+
const signature: ts.Signature | undefined =
|
|
14
|
+
checker.getSignatureFromDeclaration(declaration);
|
|
15
|
+
const type: ts.Type =
|
|
16
|
+
signature?.getReturnType() ??
|
|
17
|
+
checker.getTypeFromTypeNode(TypeFactory.keyword("any"));
|
|
18
|
+
return type.isTypeParameter() && type.symbol.name === "Promise"
|
|
19
|
+
? { type: escape_promise(checker)(type), async: true }
|
|
20
|
+
: { type, async: false };
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const escape_promise =
|
|
25
|
+
(checker: ts.TypeChecker) =>
|
|
26
|
+
(type: ts.Type): ts.Type => {
|
|
27
|
+
const generic: readonly ts.Type[] = checker.getTypeArguments(
|
|
28
|
+
type as ts.TypeReference,
|
|
29
|
+
);
|
|
30
|
+
if (generic.length !== 1)
|
|
31
|
+
throw new Error(
|
|
32
|
+
"Error on ImportAnalyzer.analyze(): invalid promise type.",
|
|
33
|
+
);
|
|
34
|
+
return generic[0]!;
|
|
35
|
+
};
|