typia 3.4.17 → 3.4.19

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.
Files changed (39) hide show
  1. package/lib/executable/internal/TypiaSetupWizard.js +5 -5
  2. package/lib/executable/internal/TypiaSetupWizard.js.map +1 -1
  3. package/lib/metadata/Metadata.js +32 -29
  4. package/lib/metadata/Metadata.js.map +1 -1
  5. package/lib/programmers/AssertProgrammer.js +1 -1
  6. package/lib/programmers/AssertProgrammer.js.map +1 -1
  7. package/lib/programmers/CheckerProgrammer.d.ts +1 -0
  8. package/lib/programmers/CheckerProgrammer.js +147 -138
  9. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  10. package/lib/programmers/ValidateProgrammer.js +1 -1
  11. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  12. package/lib/programmers/helpers/UnionExplorer.d.ts +23 -29
  13. package/lib/programmers/helpers/UnionExplorer.js +29 -41
  14. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  15. package/lib/programmers/internal/check_array.js +4 -32
  16. package/lib/programmers/internal/check_array.js.map +1 -1
  17. package/lib/programmers/internal/check_array_length.d.ts +1 -0
  18. package/lib/programmers/internal/check_array_length.js +47 -0
  19. package/lib/programmers/internal/check_array_length.js.map +1 -0
  20. package/lib/programmers/internal/check_union_array_like.d.ts +21 -0
  21. package/lib/programmers/internal/check_union_array_like.js +83 -0
  22. package/lib/programmers/internal/check_union_array_like.js.map +1 -0
  23. package/lib/programmers/internal/check_union_tuple.d.ts +1 -0
  24. package/lib/programmers/internal/check_union_tuple.js +11 -0
  25. package/lib/programmers/internal/check_union_tuple.js.map +1 -0
  26. package/package.json +1 -1
  27. package/src/executable/internal/TypiaSetupWizard.ts +5 -5
  28. package/src/executable/typia.ts +48 -48
  29. package/src/functional/$guard.ts +35 -35
  30. package/src/metadata/Metadata.ts +10 -7
  31. package/src/programmers/AssertProgrammer.ts +1 -1
  32. package/src/programmers/CheckerProgrammer.ts +252 -200
  33. package/src/programmers/FeatureProgrammer.ts +327 -327
  34. package/src/programmers/ValidateProgrammer.ts +1 -1
  35. package/src/programmers/helpers/UnionExplorer.ts +75 -238
  36. package/src/programmers/internal/check_array.ts +3 -25
  37. package/src/programmers/internal/check_array_length.ts +45 -0
  38. package/src/programmers/internal/check_union_array_like.ts +242 -0
  39. package/src/programmers/internal/check_union_tuple.ts +33 -0
@@ -43,11 +43,11 @@ exports.UnionExplorer = void 0;
43
43
  var typescript_1 = __importDefault(require("typescript"));
44
44
  var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
45
45
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
46
- var StatementFactory_1 = require("../../factories/StatementFactory");
46
+ var check_union_array_like_1 = require("../internal/check_union_array_like");
47
47
  var UnionPredicator_1 = require("./UnionPredicator");
48
48
  var UnionExplorer;
49
49
  (function (UnionExplorer) {
50
- function object(config, level) {
50
+ UnionExplorer.object = function (config, level) {
51
51
  if (level === void 0) { level = 0; }
52
52
  return function (input, targets, explore, tags) {
53
53
  if (targets.length === 1)
@@ -75,14 +75,21 @@ var UnionExplorer;
75
75
  });
76
76
  return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(conditions), false), [
77
77
  remained.length
78
- ? typescript_1.default.factory.createReturnStatement(object(config, level + 1)(input, remained, explore, tags))
78
+ ? typescript_1.default.factory.createReturnStatement(UnionExplorer.object(config, level + 1)(input, remained, explore, tags))
79
79
  : config.objector.failure(input, expected, explore),
80
80
  ], false), true)), undefined, undefined);
81
81
  };
82
- }
83
- UnionExplorer.object = object;
82
+ };
83
+ UnionExplorer.tuple = function (props) {
84
+ return (0, check_union_array_like_1.check_union_array_like)({
85
+ size: null,
86
+ front: function (input) { return input; },
87
+ array: function (input) { return input; },
88
+ name: function (elems) { return "[".concat(elems.map(function (e) { return e.getName(); }).join(", "), "]"); },
89
+ })(props);
90
+ };
84
91
  UnionExplorer.array = function (props) {
85
- return iterate({
92
+ return (0, check_union_array_like_1.check_union_array_like)({
86
93
  size: function (input) { return IdentifierFactory_1.IdentifierFactory.join(input, "length"); },
87
94
  front: function (input) {
88
95
  return typescript_1.default.factory.createElementAccessExpression(input, 0);
@@ -91,8 +98,22 @@ var UnionExplorer;
91
98
  name: function (t) { return "Array<".concat(t.getName(), ">"); },
92
99
  })(props);
93
100
  };
101
+ UnionExplorer.array_or_tuple = function (props) {
102
+ return (0, check_union_array_like_1.check_union_array_like)({
103
+ size: function (input) { return IdentifierFactory_1.IdentifierFactory.join(input, "length"); },
104
+ front: function (input) {
105
+ return typescript_1.default.factory.createElementAccessExpression(input, 0);
106
+ },
107
+ array: function (input) { return input; },
108
+ name: function (t) {
109
+ return Array.isArray(t)
110
+ ? "[".concat(t.map(function (e) { return e.getName(); }).join(", "), "]")
111
+ : "Array<".concat(t.getName(), ">");
112
+ },
113
+ })(props);
114
+ };
94
115
  UnionExplorer.set = function (props) {
95
- return iterate({
116
+ return (0, check_union_array_like_1.check_union_array_like)({
96
117
  size: function (input) { return IdentifierFactory_1.IdentifierFactory.join(input, "size"); },
97
118
  front: function (input) {
98
119
  return IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(input, "values"), undefined, undefined), "next"), undefined, undefined), "value");
@@ -104,7 +125,7 @@ var UnionExplorer;
104
125
  })(props);
105
126
  };
106
127
  UnionExplorer.map = function (props) {
107
- return iterate({
128
+ return (0, check_union_array_like_1.check_union_array_like)({
108
129
  size: function (input) { return IdentifierFactory_1.IdentifierFactory.join(input, "size"); },
109
130
  front: function (input) {
110
131
  return IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(input, "entries"), undefined, undefined), "next"), undefined, undefined), "value");
@@ -118,38 +139,5 @@ var UnionExplorer;
118
139
  },
119
140
  })(props);
120
141
  };
121
- var iterate = function (accessor) {
122
- return function (props) {
123
- return function (input, targets, explore, tags) {
124
- if (targets.length === 1)
125
- return props.decoder(accessor.array(input), targets[0], explore, tags);
126
- var tupleListVariable = StatementFactory_1.StatementFactory.constant("tupleList", typescript_1.default.factory.createArrayLiteralExpression(targets.map(function (meta) {
127
- return typescript_1.default.factory.createArrayLiteralExpression([
128
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("branch")], undefined, undefined, props.checker(typescript_1.default.factory.createIdentifier("branch"), meta, __assign(__assign({}, explore), { tracable: false, postfix: "\"[0]\"" }), tags)),
129
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("branch")], undefined, undefined, props.decoder(typescript_1.default.factory.createIdentifier("branch"), meta, __assign(__assign({}, explore), { tracable: true }), tags)),
130
- ]);
131
- })));
132
- var filteredVariable = StatementFactory_1.StatementFactory.constant("filtered", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tupleList.filter"), undefined, [
133
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("tuple")], undefined, undefined, typescript_1.default.factory.createStrictEquality(props.success, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[0]"), undefined, [typescript_1.default.factory.createIdentifier("front")]))),
134
- ]));
135
- var uniqueStatement = typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("filtered.length")), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("filtered[0][1]"), undefined, [accessor.array(input)])));
136
- var forOfStatement = typescript_1.default.factory.createForOfStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([typescript_1.default.factory.createVariableDeclaration("tuple")], typescript_1.default.NodeFlags.Const), typescript_1.default.factory.createIdentifier("filtered"), typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createIdentifier("array"), "every"), undefined, [
137
- typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("value")], undefined, undefined, typescript_1.default.factory.createStrictEquality(props.success, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[0]"), undefined, [typescript_1.default.factory.createIdentifier("value")]))),
138
- ]), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[1]"), undefined, [typescript_1.default.factory.createIdentifier("array")]))));
139
- var unionStatement = typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createLessThan(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("filtered.length")), forOfStatement);
140
- var block = [
141
- typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createNumericLiteral(0), accessor.size(input)), typescript_1.default.factory.createReturnStatement(props.empty)),
142
- tupleListVariable,
143
- StatementFactory_1.StatementFactory.constant("front", accessor.front(input)),
144
- filteredVariable,
145
- uniqueStatement,
146
- StatementFactory_1.StatementFactory.constant("array", accessor.array(input)),
147
- unionStatement,
148
- props.failure(input, "(".concat(targets.map(function (t) { return accessor.name(t); }).join(" | "), ")"), explore),
149
- ];
150
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, typescript_1.default.factory.createBlock(block, true)), undefined, undefined);
151
- };
152
- };
153
- };
154
142
  })(UnionExplorer = exports.UnionExplorer || (exports.UnionExplorer = {}));
155
143
  //# sourceMappingURL=UnionExplorer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnionExplorer.js","sourceRoot":"","sources":["../../../src/programmers/helpers/UnionExplorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UnionExplorer.js","sourceRoot":"","sources":["../../../src/programmers/helpers/UnionExplorer.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
@@ -17,29 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
6
  exports.check_array = void 0;
18
7
  var typescript_1 = __importDefault(require("typescript"));
19
8
  var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
20
- var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
21
- var check_length_1 = require("./check_length");
9
+ var check_array_length_1 = require("./check_array_length");
22
10
  function check_array(input, tagList) {
23
- var e_1, _a;
24
11
  var conditions = [ExpressionFactory_1.ExpressionFactory.isArray(input)];
25
- try {
26
- for (var tagList_1 = __values(tagList), tagList_1_1 = tagList_1.next(); !tagList_1_1.done; tagList_1_1 = tagList_1.next()) {
27
- var tag = tagList_1_1.value;
28
- if (tag.kind === "minItems")
29
- conditions.push(typescript_1.default.factory.createLessThanEquals(typescript_1.default.factory.createNumericLiteral(tag.value), IdentifierFactory_1.IdentifierFactory.join(input, "length")));
30
- else if (tag.kind === "maxItems")
31
- conditions.push(typescript_1.default.factory.createGreaterThanEquals(typescript_1.default.factory.createNumericLiteral(tag.value), IdentifierFactory_1.IdentifierFactory.join(input, "length")));
32
- else if (tag.kind === "items")
33
- (0, check_length_1.check_length)(conditions, IdentifierFactory_1.IdentifierFactory.join(input, "length"), tag);
34
- }
35
- }
36
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
37
- finally {
38
- try {
39
- if (tagList_1_1 && !tagList_1_1.done && (_a = tagList_1.return)) _a.call(tagList_1);
40
- }
41
- finally { if (e_1) throw e_1.error; }
42
- }
12
+ var length = (0, check_array_length_1.check_array_length)(input, tagList);
13
+ if (length !== null)
14
+ conditions.push(length);
43
15
  return conditions.reduce(function (x, y) { return typescript_1.default.factory.createLogicalAnd(x, y); });
44
16
  }
45
17
  exports.check_array = check_array;
@@ -1 +1 @@
1
- {"version":3,"file":"check_array.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_array.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,uEAAsE;AAItE,+CAA8C;AAK9C,SAAgB,WAAW,CACvB,KAAoB,EACpB,OAAuB;;IAEvB,IAAM,UAAU,GAAoB,CAAC,qCAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;QAGvE,KAAkB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA;YAApB,IAAM,GAAG,oBAAA;YACV,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBACvB,UAAU,CAAC,IAAI,CACX,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1C,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC1C,CACJ,CAAC;iBACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAC5B,UAAU,CAAC,IAAI,CACX,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1C,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC1C,CACJ,CAAC;iBACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBACzB,IAAA,2BAAY,EACR,UAAU,EACV,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EACvC,GAAG,CACN,CAAC;SAAA;;;;;;;;;IAGV,OAAO,UAAU,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAjC,CAAiC,CAAC,CAAC;AAC1E,CAAC;AA/BD,kCA+BC"}
1
+ {"version":3,"file":"check_array.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_array.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,2DAA0D;AAK1D,SAAgB,WAAW,CACvB,KAAoB,EACpB,OAAuB;IAEvB,IAAM,UAAU,GAAoB,CAAC,qCAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvE,IAAM,MAAM,GAAyB,IAAA,uCAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,MAAM,KAAK,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,UAAU,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAjC,CAAiC,CAAC,CAAC;AAC1E,CAAC;AAVD,kCAUC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.check_array_length = void 0;
18
+ var typescript_1 = __importDefault(require("typescript"));
19
+ var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
20
+ var check_length_1 = require("./check_length");
21
+ function check_array_length(input, tagList) {
22
+ var e_1, _a;
23
+ var conditions = [];
24
+ try {
25
+ for (var tagList_1 = __values(tagList), tagList_1_1 = tagList_1.next(); !tagList_1_1.done; tagList_1_1 = tagList_1.next()) {
26
+ var tag = tagList_1_1.value;
27
+ if (tag.kind === "minItems")
28
+ conditions.push(typescript_1.default.factory.createLessThanEquals(typescript_1.default.factory.createNumericLiteral(tag.value), IdentifierFactory_1.IdentifierFactory.join(input, "length")));
29
+ else if (tag.kind === "maxItems")
30
+ conditions.push(typescript_1.default.factory.createGreaterThanEquals(typescript_1.default.factory.createNumericLiteral(tag.value), IdentifierFactory_1.IdentifierFactory.join(input, "length")));
31
+ else if (tag.kind === "items")
32
+ (0, check_length_1.check_length)(conditions, IdentifierFactory_1.IdentifierFactory.join(input, "length"), tag);
33
+ }
34
+ }
35
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
36
+ finally {
37
+ try {
38
+ if (tagList_1_1 && !tagList_1_1.done && (_a = tagList_1.return)) _a.call(tagList_1);
39
+ }
40
+ finally { if (e_1) throw e_1.error; }
41
+ }
42
+ return conditions.length
43
+ ? conditions.reduce(function (x, y) { return typescript_1.default.factory.createLogicalAnd(x, y); })
44
+ : null;
45
+ }
46
+ exports.check_array_length = check_array_length;
47
+ //# sourceMappingURL=check_array_length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_array_length.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_array_length.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,+CAA8C;AAK9C,SAAgB,kBAAkB,CAC9B,KAAoB,EACpB,OAAuB;;IAEvB,IAAM,UAAU,GAAoB,EAAE,CAAC;;QAGvC,KAAkB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA;YAApB,IAAM,GAAG,oBAAA;YACV,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBACvB,UAAU,CAAC,IAAI,CACX,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1C,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC1C,CACJ,CAAC;iBACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAC5B,UAAU,CAAC,IAAI,CACX,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC1C,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC1C,CACJ,CAAC;iBACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBACzB,IAAA,2BAAY,EACR,UAAU,EACV,qCAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EACvC,GAAG,CACN,CAAC;SAAA;;;;;;;;;IAGV,OAAO,UAAU,CAAC,MAAM;QACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAjC,CAAiC,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAjCD,gDAiCC"}
@@ -0,0 +1,21 @@
1
+ import ts from "typescript";
2
+ import { IMetadataTag } from "../../metadata/IMetadataTag";
3
+ import { CheckerProgrammer } from "../CheckerProgrammer";
4
+ import { FeatureProgrammer } from "../FeatureProgrammer";
5
+ import { UnionExplorer } from "../helpers/UnionExplorer";
6
+ export declare const check_union_array_like: <T>(accessor: check_union_array_like.IAccessor<T>) => (props: check_union_array_like.IProps<T>) => (input: ts.Expression, targets: T[], explore: FeatureProgrammer.IExplore, tags: IMetadataTag[]) => ts.Expression;
7
+ export declare namespace check_union_array_like {
8
+ interface IProps<T> {
9
+ checker(front: ts.Expression, target: T, explore: FeatureProgrammer.IExplore, tags: IMetadataTag[], array: ts.Expression): ts.Expression;
10
+ decoder: UnionExplorer.Decoder<T>;
11
+ empty: ts.Expression;
12
+ success: ts.Expression;
13
+ failure(input: ts.Expression, expected: string, explore: CheckerProgrammer.IExplore): ts.Statement;
14
+ }
15
+ interface IAccessor<T> {
16
+ name(target: T): string;
17
+ front(input: ts.Expression): ts.Expression;
18
+ array(input: ts.Expression): ts.Expression;
19
+ size: null | ((input: ts.Expression) => ts.Expression);
20
+ }
21
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.check_union_array_like = void 0;
43
+ var typescript_1 = __importDefault(require("typescript"));
44
+ var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
45
+ var StatementFactory_1 = require("../../factories/StatementFactory");
46
+ var check_union_array_like = function (accessor) {
47
+ return function (props) {
48
+ return function (input, targets, explore, tags) {
49
+ if (targets.length === 1)
50
+ return props.decoder(accessor.array(input), targets[0], explore, tags);
51
+ var tupleListVariable = StatementFactory_1.StatementFactory.constant("tupleList", typescript_1.default.factory.createArrayLiteralExpression(targets.map(function (meta) {
52
+ return typescript_1.default.factory.createArrayLiteralExpression([
53
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("top")], undefined, undefined, props.checker(typescript_1.default.factory.createIdentifier("top"), meta, __assign(__assign({}, explore), { tracable: false, postfix: "\"[0]\"" }), tags, input)),
54
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("top")], undefined, undefined, props.decoder(typescript_1.default.factory.createIdentifier("top"), meta, __assign(__assign({}, explore), { tracable: true }), tags)),
55
+ ]);
56
+ })));
57
+ var filteredVariable = StatementFactory_1.StatementFactory.constant("filtered", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tupleList.filter"), undefined, [
58
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("tuple")], undefined, undefined, typescript_1.default.factory.createStrictEquality(props.success, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[0]"), undefined, [typescript_1.default.factory.createIdentifier("front")]))),
59
+ ]));
60
+ var uniqueStatement = typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("filtered.length")), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("filtered[0][1]"), undefined, [accessor.array(input)])));
61
+ var forOfStatement = typescript_1.default.factory.createForOfStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([typescript_1.default.factory.createVariableDeclaration("tuple")], typescript_1.default.NodeFlags.Const), typescript_1.default.factory.createIdentifier("filtered"), typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createIdentifier("array"), "every"), undefined, [
62
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("value")], undefined, undefined, typescript_1.default.factory.createStrictEquality(props.success, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[0]"), undefined, [typescript_1.default.factory.createIdentifier("value")]))),
63
+ ]), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("tuple[1]"), undefined, [typescript_1.default.factory.createIdentifier("array")]))));
64
+ var unionStatement = typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createLessThan(typescript_1.default.factory.createNumericLiteral(1), typescript_1.default.factory.createIdentifier("filtered.length")), forOfStatement);
65
+ var block = __spreadArray(__spreadArray([], __read((accessor.size !== null
66
+ ? [
67
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createNumericLiteral(0), accessor.size(input)), typescript_1.default.factory.createReturnStatement(props.empty)),
68
+ ]
69
+ : [])), false), [
70
+ tupleListVariable,
71
+ StatementFactory_1.StatementFactory.constant("front", accessor.front(input)),
72
+ filteredVariable,
73
+ uniqueStatement,
74
+ StatementFactory_1.StatementFactory.constant("array", accessor.array(input)),
75
+ unionStatement,
76
+ props.failure(input, "(".concat(targets.map(function (t) { return accessor.name(t); }).join(" | "), ")"), explore),
77
+ ], false);
78
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, typescript_1.default.factory.createBlock(block, true)), undefined, undefined);
79
+ };
80
+ };
81
+ };
82
+ exports.check_union_array_like = check_union_array_like;
83
+ //# sourceMappingURL=check_union_array_like.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_union_array_like.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_union_array_like.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.check_union_tuple = void 0;
4
+ var CheckerProgrammer_1 = require("../CheckerProgrammer");
5
+ var check_union_tuple = function (project, config, importer) {
6
+ return function (_front, elements, explore, tags, array) {
7
+ return CheckerProgrammer_1.CheckerProgrammer.decode_tuple(project, config, importer, true)(array, elements, explore, tags);
8
+ };
9
+ };
10
+ exports.check_union_tuple = check_union_tuple;
11
+ //# sourceMappingURL=check_union_tuple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_union_tuple.js","sourceRoot":"","sources":["../../../src/programmers/internal/check_union_tuple.ts"],"names":[],"mappings":";;;AAOA,0DAAyD;AAOlD,IAAM,iBAAiB,GAC1B,UACI,OAAiB,EACjB,MAAiC,EACjC,QAA0B;IAE9B,OAAA,UACI,MAAqB,EACrB,QAAoB,EACpB,OAAmC,EACnC,IAAoB,EACpB,KAAoB;QAEpB,OAAA,qCAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAC3D,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,CACP;IALD,CAKC;AAZL,CAYK,CAAC;AAlBG,QAAA,iBAAiB,qBAkBpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "3.4.17",
3
+ "version": "3.4.19",
4
4
  "description": "Runtime type checkers and 5x faster JSON.stringify() function",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -10,7 +10,7 @@ export namespace TypiaSetupWizard {
10
10
 
11
11
  export async function ttypescript(args: IArguments): Promise<void> {
12
12
  // INSTALL
13
- const pack: any = await prepare(args);
13
+ const pack: any = await prepare(args.manager);
14
14
  add(args.manager)(pack)("ttypescript", true);
15
15
  add(args.manager)(pack)("ts-node", true);
16
16
 
@@ -20,7 +20,7 @@ export namespace TypiaSetupWizard {
20
20
 
21
21
  export async function tsPatch(args: IArguments): Promise<void> {
22
22
  // INSTALL
23
- add(args.manager)(await prepare(args))("ts-patch", true);
23
+ add(args.manager)(await prepare(args.manager))("ts-patch", true);
24
24
  execute("npx ts-patch install");
25
25
 
26
26
  // PACKAGE.JSON
@@ -45,14 +45,14 @@ export namespace TypiaSetupWizard {
45
45
  await configure(args)(pack);
46
46
  }
47
47
 
48
- async function prepare(args: IArguments): Promise<any> {
48
+ async function prepare(manager: string): Promise<any> {
49
49
  if (fs.existsSync("package.json") === false)
50
50
  halt(() => {})("make package.json file or move to it.");
51
51
 
52
52
  const pack: any = JSON.parse(
53
53
  await fs.promises.readFile("package.json", "utf8"),
54
54
  );
55
- const wizard = add(args.manager)(pack);
55
+ const wizard = add(manager)(pack);
56
56
  wizard("typia", false);
57
57
  wizard("typescript", true);
58
58
  return pack;
@@ -62,7 +62,7 @@ export namespace TypiaSetupWizard {
62
62
  (args: IArguments) =>
63
63
  async (pack: any): Promise<void> => {
64
64
  // VALIDATE PRERATATION
65
- if (fs.existsSync(args.manager) === false) {
65
+ if (fs.existsSync(args.project) === false) {
66
66
  if (args.project === "tsconfig.json") execute("npx tsc --init");
67
67
  if (fs.existsSync(args.project) === false)
68
68
  halt(() => {})(`${args.project} file does not exist.`);
@@ -1,48 +1,48 @@
1
- #!/usr/bin/env node
2
- import { CommandParser } from "./internal/CommandParser";
3
- import { TypiaSetupWizard } from "./internal/TypiaSetupWizard";
4
-
5
- const USAGE = `Wrong command has been detected. Use like below:
6
-
7
- npx typia setup \\
8
- --compiler (ttypescript|ts-patch) \\
9
- --manager (npm|pnpm|yarn) \\
10
- --project {tsconfig.json file path}
11
-
12
- - npx typia setup
13
- - npx typia setup --compiler ts-patch
14
- - npx typia setup --manager pnpm
15
- - npx typia setup --project tsconfig.test.json`;
16
-
17
- function halt(desc: string): never {
18
- console.error(desc);
19
- process.exit(-1);
20
- }
21
-
22
- async function setup(): Promise<void> {
23
- const options: Record<string, string> = CommandParser.parse(
24
- process.argv.slice(3),
25
- );
26
- const manager: string = options.manager ?? "npm";
27
- const compiler: string = options.compiler ?? "ttypescript";
28
- const project: string = options.project ?? "tsconfig.json";
29
-
30
- if (
31
- (compiler !== "ttypescript" && compiler !== "ts-patch") ||
32
- (manager !== "npm" && manager !== "pnpm" && manager !== "yarn")
33
- )
34
- halt(USAGE);
35
- else if (compiler === "ttypescript")
36
- await TypiaSetupWizard.ttypescript({ manager, project });
37
- else await TypiaSetupWizard.tsPatch({ manager, project });
38
- }
39
-
40
- async function main(): Promise<void> {
41
- const type: string | undefined = process.argv[2];
42
- if (type === "setup") await setup();
43
- else halt(USAGE);
44
- }
45
- main().catch((exp) => {
46
- console.error(exp);
47
- process.exit(-1);
48
- });
1
+ #!/usr/bin/env node
2
+ import { CommandParser } from "./internal/CommandParser";
3
+ import { TypiaSetupWizard } from "./internal/TypiaSetupWizard";
4
+
5
+ const USAGE = `Wrong command has been detected. Use like below:
6
+
7
+ npx typia setup \\
8
+ --compiler (ttypescript|ts-patch) \\
9
+ --manager (npm|pnpm|yarn) \\
10
+ --project {tsconfig.json file path}
11
+
12
+ - npx typia setup
13
+ - npx typia setup --compiler ts-patch
14
+ - npx typia setup --manager pnpm
15
+ - npx typia setup --project tsconfig.test.json`;
16
+
17
+ function halt(desc: string): never {
18
+ console.error(desc);
19
+ process.exit(-1);
20
+ }
21
+
22
+ async function setup(): Promise<void> {
23
+ const options: Record<string, string> = CommandParser.parse(
24
+ process.argv.slice(3),
25
+ );
26
+ const manager: string = options.manager ?? "npm";
27
+ const compiler: string = options.compiler ?? "ttypescript";
28
+ const project: string = options.project ?? "tsconfig.json";
29
+
30
+ if (
31
+ (compiler !== "ttypescript" && compiler !== "ts-patch") ||
32
+ (manager !== "npm" && manager !== "pnpm" && manager !== "yarn")
33
+ )
34
+ halt(USAGE);
35
+ else if (compiler === "ttypescript")
36
+ await TypiaSetupWizard.ttypescript({ manager, project });
37
+ else await TypiaSetupWizard.tsPatch({ manager, project });
38
+ }
39
+
40
+ async function main(): Promise<void> {
41
+ const type: string | undefined = process.argv[2];
42
+ if (type === "setup") await setup();
43
+ else halt(USAGE);
44
+ }
45
+ main().catch((exp) => {
46
+ console.error(exp);
47
+ process.exit(-1);
48
+ });