typia 3.8.0-dev.20230420-3 → 3.8.0-dev.20230426

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 (31) hide show
  1. package/README.md +4 -3
  2. package/lib/Primitive.d.ts +7 -1
  3. package/lib/factories/internal/metadata/iterate_metadata.js +0 -6
  4. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  5. package/lib/module.d.ts +3 -3
  6. package/lib/programmers/AssertParseProgrammer.js +1 -1
  7. package/lib/programmers/AssertParseProgrammer.js.map +1 -1
  8. package/lib/programmers/ValidateParseProgrammer.js +1 -1
  9. package/lib/programmers/ValidateParseProgrammer.js.map +1 -1
  10. package/lib/programmers/helpers/PruneJoiner.d.ts +1 -1
  11. package/lib/programmers/helpers/PruneJoiner.js +29 -2
  12. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  13. package/lib/programmers/internal/application_schema.js +4 -2
  14. package/lib/programmers/internal/application_schema.js.map +1 -1
  15. package/lib/schemas/IJsonSchema.d.ts +9 -4
  16. package/package.json +2 -2
  17. package/src/Primitive.ts +17 -1
  18. package/src/factories/internal/metadata/iterate_metadata.ts +1 -14
  19. package/src/module.ts +6 -6
  20. package/src/programmers/AssertParseProgrammer.ts +7 -4
  21. package/src/programmers/AssertProgrammer.ts +285 -285
  22. package/src/programmers/CheckerProgrammer.ts +875 -875
  23. package/src/programmers/FeatureProgrammer.ts +500 -500
  24. package/src/programmers/ValidateParseProgrammer.ts +4 -1
  25. package/src/programmers/ValidateProgrammer.ts +316 -316
  26. package/src/programmers/helpers/PruneJoiner.ts +94 -2
  27. package/src/programmers/internal/application_schema.ts +12 -2
  28. package/src/programmers/internal/check_custom.ts +31 -31
  29. package/src/programmers/internal/check_dynamic_properties.ts +194 -194
  30. package/src/programmers/internal/check_object.ts +55 -55
  31. package/src/schemas/IJsonSchema.ts +11 -3
package/README.md CHANGED
@@ -34,9 +34,9 @@ Typia is a transformer library supporting below features:
34
34
 
35
35
  > **Note**
36
36
  >
37
- > - **Only one line** required, with pure TypeScript type
38
- > - Runtime validator is **20,000x faster** than `class-validator`
39
- > - JSON serialization is **200x faster** than `class-transformer`
37
+ > - **Only one line** required, with pure TypeScript type
38
+ > - Runtime validator is **20,000x faster** than `class-validator`
39
+ > - JSON serialization is **200x faster** than `class-transformer`
40
40
 
41
41
 
42
42
 
@@ -69,6 +69,7 @@ Check out the document in the [website](https://typia.io/docs/):
69
69
  ### 🔗 Appendix
70
70
  - Utillization Cases
71
71
  - [NestJS](https://typia.io/docs/utilization/nestjs/)
72
+ - [Prisma](https://typia.io/docs/utilization/prisma/)
72
73
  - [tRPC](https://typia.io/docs/utilization/trpc/)
73
74
  - [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
74
75
  - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)
@@ -31,11 +31,17 @@
31
31
  export type Primitive<T> = _Equal<T, _Primitive<T>> extends true ? T : _Primitive<T>;
32
32
  type _Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
33
33
  type _Primitive<Instance> = _ValueOf<Instance> extends object ? Instance extends object ? Instance extends _Native ? {} : Instance extends IJsonable<infer Raw> ? _ValueOf<Raw> extends object ? Raw extends object ? _PrimitiveObject<Raw> : never : _ValueOf<Raw> : _PrimitiveObject<Instance> : never : _ValueOf<Instance>;
34
- type _PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? _Primitive<T>[] : {
34
+ type _PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? _IsTuple<Instance> extends true ? _PrimitiveSpread<Instance> : _Primitive<T>[] : {
35
35
  [P in keyof Instance]: Instance[P] extends Function ? never : _Primitive<Instance[P]>;
36
36
  };
37
+ type _PrimitiveSpread<T extends any[]> = T extends [infer F, ...infer Rest] ? [_Primitive<F>, ..._PrimitiveSpread<Rest>] : [];
37
38
  type _ValueOf<Instance> = _IsValueOf<Instance, Boolean> extends true ? boolean : _IsValueOf<Instance, Number> extends true ? number : _IsValueOf<Instance, String> extends true ? string : Instance;
38
39
  type _Native = Set<any> | Map<any, any> | WeakSet<any> | WeakMap<any, any> | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView;
40
+ type _IsTuple<T extends readonly any[] | {
41
+ length: number;
42
+ }> = [T] extends [
43
+ never
44
+ ] ? false : T extends readonly any[] ? number extends T["length"] ? false : true : false;
39
45
  type _IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object ? Object extends IValueOf<infer Primitive> ? Instance extends Primitive ? false : true : false : false;
40
46
  interface IValueOf<T> {
41
47
  valueOf(): T;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.iterate_metadata = void 0;
4
- var ArrayUtil_1 = require("../../../utils/ArrayUtil");
5
4
  var iterate_metadata_array_1 = require("./iterate_metadata_array");
6
5
  var iterate_metadata_atomic_1 = require("./iterate_metadata_atomic");
7
6
  var iterate_metadata_coalesce_1 = require("./iterate_metadata_coalesce");
@@ -23,11 +22,6 @@ var iterate_metadata = function (checker) {
23
22
  if ((0, iterate_metadata_union_1.iterate_metadata_union)(checker)(options)(collection)(meta, type, parentResolved) ||
24
23
  (0, iterate_metadata_resolve_1.iterate_metadata_resolve)(checker)(options)(collection)(meta, type, parentResolved))
25
24
  return;
26
- var node = checker.typeToTypeNode(type, undefined, undefined);
27
- if (node === undefined) {
28
- ArrayUtil_1.ArrayUtil.set(meta.tuples, [], function () { return "[]"; });
29
- return;
30
- }
31
25
  (0, iterate_metadata_coalesce_1.iterate_metadata_coalesce)(meta, type) ||
32
26
  (0, iterate_metadata_constant_1.iterate_metadata_constant)(checker)(options)(meta, type) ||
33
27
  (0, iterate_metadata_template_1.iterate_metadata_template)(checker)(options)(collection)(meta, type) ||
@@ -1 +1 @@
1
- {"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata.ts"],"names":[],"mappings":";;;AAIA,sDAAqD;AAIrD,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,+DAA8D;AAC9D,qEAAoE;AACpE,qEAAoE;AACpE,uEAAsE;AACtE,+DAA8D;AAC9D,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,uFAAgF,IAAI,CAAC,OAAO,EAAE,MAAG,CACpG,CAAC;gBAGN,IACI,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAM,IAAI,GAA4B,OAAO,CAAC,cAAc,CACxD,IAAI,EACJ,SAAS,EACT,SAAS,CACZ,CAAC;gBACF,IAAI,IAAI,KAAK,SAAS,EAAE;oBAEpB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;oBAC3C,OAAO;iBACV;gBAGD,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAoB,CACvB;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC5C,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;QAtDD,CAsDC;IAvDD,CAuDC;AAxDD,CAwDC,CAAC;AA1DO,QAAA,gBAAgB,oBA0DvB"}
1
+ {"version":3,"file":"iterate_metadata.js","sourceRoot":"","sources":["../../../../src/factories/internal/metadata/iterate_metadata.ts"],"names":[],"mappings":";;;AAOA,mEAAkE;AAClE,qEAAoE;AACpE,yEAAwE;AACxE,yEAAwE;AACxE,+DAA8D;AAC9D,qEAAoE;AACpE,qEAAoE;AACpE,uEAAsE;AACtE,+DAA8D;AAC9D,yEAAwE;AACxE,mEAAkE;AAClE,mEAAkE;AAE3D,IAAM,gBAAgB,GACzB,UAAC,OAAuB;IACxB,OAAA,UAAC,OAAiC;QAClC,OAAA,UAAC,UAA8B;YAC/B,OAAA,UAAC,IAAc,EAAE,IAAa,EAAE,cAAuB;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;oBAC/B,MAAM,IAAI,KAAK,CACX,uFAAgF,IAAI,CAAC,OAAO,EAAE,MAAG,CACpG,CAAC;gBAGN,IACI,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBACD,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAClD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB;oBAED,OAAO;gBAGX,IAAA,qDAAyB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACjC,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBACvD,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACnD,IAAI,EACJ,IAAI,CACP;oBACD,IAAA,iDAAuB,EAAC,IAAI,EAAE,IAAI,CAAC;oBACnC,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAChD,IAAI,EACJ,IAAoB,CACvB;oBACD,IAAA,+CAAsB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChE,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC5C,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CACjD,IAAI,EACJ,IAAI,EACJ,cAAc,CACjB,CAAC;YACV,CAAC;QA1CD,CA0CC;IA3CD,CA2CC;AA5CD,CA4CC,CAAC;AA9CO,QAAA,gBAAgB,oBA8CvB"}
package/lib/module.d.ts CHANGED
@@ -445,7 +445,7 @@ export declare function assertParse(input: string): never;
445
445
  *
446
446
  * @author Jeongho Nam - https://github.com/samchon
447
447
  */
448
- export declare function assertParse<T>(input: string): T;
448
+ export declare function assertParse<T>(input: string): Primitive<T>;
449
449
  /**
450
450
  * > You must configure the generic argument `T`.
451
451
  *
@@ -483,7 +483,7 @@ export declare function isParse(input: string): never;
483
483
  *
484
484
  * @author Jeongho Nam - https://github.com/samchon
485
485
  */
486
- export declare function isParse<T>(input: string): T | null;
486
+ export declare function isParse<T>(input: string): Primitive<T> | null;
487
487
  /**
488
488
  * > You must configure the generic argument `T`.
489
489
  *
@@ -523,7 +523,7 @@ export declare function validateParse(input: string): never;
523
523
  *
524
524
  * @author Jeongho Nam - https://github.com/samchon
525
525
  */
526
- export declare function validateParse<T>(input: string): IValidation<T>;
526
+ export declare function validateParse<T>(input: string): IValidation<Primitive<T>>;
527
527
  /**
528
528
  * 8x faster `JSON.stringify()` function.
529
529
  *
@@ -35,7 +35,7 @@ var AssertParseProgrammer;
35
35
  ], typescript_1.default.factory.createTypeReferenceNode("typia.Primitive<".concat(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker)(type), ">")), undefined, typescript_1.default.factory.createBlock([
36
36
  StatementFactory_1.StatementFactory.constant("assert", AssertProgrammer_1.AssertProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(false)(type, name)),
37
37
  typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier("input"), typescript_1.default.SyntaxKind.EqualsToken, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("JSON.parse"), undefined, [typescript_1.default.factory.createIdentifier("input")]))),
38
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("assert"), undefined, [typescript_1.default.factory.createIdentifier("input")])),
38
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("assert"), undefined, [typescript_1.default.factory.createIdentifier("input")]), typescript_1.default.factory.createTypeReferenceNode("any"))),
39
39
  ]));
40
40
  };
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AssertParseProgrammer.js","sourceRoot":"","sources":["../../src/programmers/AssertParseProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,wDAAuD;AAIvD,uDAAsD;AAEtD,IAAiB,qBAAqB,CA4DrC;AA5DD,WAAiB,qBAAqB;IAIrB,8BAAQ,GACjB,UAAC,OAAiB,EAAE,MAAiC;QACrD,OAAA,UAAC,IAAa,EAAE,IAAa;YACzB,OAAA,sBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAAlC,CAAkC;IADtC,CACsC,CAAC;IAE9B,2BAAK,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa;gBACzB,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT;oBACI,qCAAiB,CAAC,SAAS,CACvB,OAAO,EACP,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC;iBACJ,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,0BACI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MACvD,CACN,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACnB,mCAAgB,CAAC,QAAQ,CACrB,QAAQ,EACR,mCAAgB,CAAC,KAAK,uBACf,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEpB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAChC;oBACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,oBAAE,CAAC,UAAU,CAAC,WAAW,EACzB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACzC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ,CACJ;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ;iBACJ,CAAC,CACL;YA9CD,CA8CC;QA/CL,CA+CK;IAhDL,CAgDK,CAAC;AACd,CAAC,EA5DgB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA4DrC"}
1
+ {"version":3,"file":"AssertParseProgrammer.js","sourceRoot":"","sources":["../../src/programmers/AssertParseProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,wDAAuD;AAIvD,uDAAsD;AAEtD,IAAiB,qBAAqB,CA+DrC;AA/DD,WAAiB,qBAAqB;IAIrB,8BAAQ,GACjB,UAAC,OAAiB,EAAE,MAAiC;QACrD,OAAA,UAAC,IAAa,EAAE,IAAa;YACzB,OAAA,sBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAAlC,CAAkC;IADtC,CACsC,CAAC;IAE9B,2BAAK,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa;gBACzB,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT;oBACI,qCAAiB,CAAC,SAAS,CACvB,OAAO,EACP,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC;iBACJ,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,0BACI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MACvD,CACN,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACnB,mCAAgB,CAAC,QAAQ,CACrB,QAAQ,EACR,mCAAgB,CAAC,KAAK,uBACf,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEpB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAChC;oBACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,oBAAE,CAAC,UAAU,CAAC,WAAW,EACzB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACzC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ,CACJ;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAC5C,CACJ;iBACJ,CAAC,CACL;YAjDD,CAiDC;QAlDL,CAkDK;IAnDL,CAmDK,CAAC;AACd,CAAC,EA/DgB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA+DrC"}
@@ -36,7 +36,7 @@ var ValidateParseProgrammer;
36
36
  StatementFactory_1.StatementFactory.constant("validate", ValidateProgrammer_1.ValidateProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(false)(type, name)),
37
37
  typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createBinaryExpression(typescript_1.default.factory.createIdentifier("input"), typescript_1.default.SyntaxKind.EqualsToken, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("JSON.parse"), undefined, [typescript_1.default.factory.createIdentifier("input")]))),
38
38
  StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("validate"), undefined, [typescript_1.default.factory.createIdentifier("input")])),
39
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("output")),
39
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createIdentifier("output"), typescript_1.default.factory.createTypeReferenceNode("any"))),
40
40
  ]));
41
41
  };
42
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ValidateParseProgrammer.js","sourceRoot":"","sources":["../../src/programmers/ValidateParseProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,wDAAuD;AAIvD,2DAA0D;AAE1D,IAAiB,uBAAuB,CAgEvC;AAhED,WAAiB,uBAAuB;IAIvB,gCAAQ,GACjB,UAAC,OAAiB,EAAE,MAAiC;QACrD,OAAA,UAAC,IAAa,EAAE,IAAa;YACzB,OAAA,wBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAAlC,CAAkC;IADtC,CACsC,CAAC;IAE9B,6BAAK,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa;gBACzB,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT;oBACI,qCAAiB,CAAC,SAAS,CACvB,OAAO,EACP,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC;iBACJ,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,4CACI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OACtD,CACP,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACnB,mCAAgB,CAAC,QAAQ,CACrB,UAAU,EACV,uCAAkB,CAAC,KAAK,uBACjB,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEpB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAChC;oBACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,oBAAE,CAAC,UAAU,CAAC,WAAW,EACzB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACzC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ,CACJ;oBACD,mCAAgB,CAAC,QAAQ,CACrB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACxC;iBACJ,CAAC,CACL;YAlDD,CAkDC;QAnDL,CAmDK;IApDL,CAoDK,CAAC;AACd,CAAC,EAhEgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAgEvC"}
1
+ {"version":3,"file":"ValidateParseProgrammer.js","sourceRoot":"","sources":["../../src/programmers/ValidateParseProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,wDAAuD;AAIvD,2DAA0D;AAE1D,IAAiB,uBAAuB,CAmEvC;AAnED,WAAiB,uBAAuB;IAIvB,gCAAQ,GACjB,UAAC,OAAiB,EAAE,MAAiC;QACrD,OAAA,UAAC,IAAa,EAAE,IAAa;YACzB,OAAA,wBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAAlC,CAAkC;IADtC,CACsC,CAAC;IAE9B,6BAAK,GACd,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa;gBACzB,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT;oBACI,qCAAiB,CAAC,SAAS,CACvB,OAAO,EACP,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAChC;iBACJ,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAC9B,4CACI,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OACtD,CACP,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACnB,mCAAgB,CAAC,QAAQ,CACrB,UAAU,EACV,uCAAkB,CAAC,KAAK,uBACjB,OAAO,KACV,OAAO,wBACA,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEpB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAChC;oBACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACpC,oBAAE,CAAC,UAAU,CAAC,WAAW,EACzB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACzC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ,CACJ;oBACD,mCAAgB,CAAC,QAAQ,CACrB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACzC,CACJ;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CACzB,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAC5C,CACJ;iBACJ,CAAC,CACL;YArDD,CAqDC;QAtDL,CAsDK;IAvDL,CAuDK,CAAC;AACd,CAAC,EAnEgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAmEvC"}
@@ -2,7 +2,7 @@ import ts from "typescript";
2
2
  import { MetadataObject } from "../../metadata/MetadataObject";
3
3
  import { IExpressionEntry } from "./IExpressionEntry";
4
4
  export declare namespace PruneJoiner {
5
- const object: (_input: ts.Expression, entries: IExpressionEntry[], obj: MetadataObject) => ts.ConciseBody;
5
+ const object: (input: ts.Expression, entries: IExpressionEntry[], obj: MetadataObject) => ts.ConciseBody;
6
6
  const array: (input: ts.Expression, arrow: ts.ArrowFunction) => ts.CallExpression;
7
7
  const tuple: (children: ts.ConciseBody[], rest: ts.ConciseBody | null) => ts.Block;
8
8
  }
@@ -32,14 +32,19 @@ exports.PruneJoiner = void 0;
32
32
  var typescript_1 = __importDefault(require("typescript"));
33
33
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
34
34
  var ArrayUtil_1 = require("../../utils/ArrayUtil");
35
+ var metadata_to_pattern_1 = require("../internal/metadata_to_pattern");
35
36
  var prune_object_properties_1 = require("../internal/prune_object_properties");
36
37
  var PruneJoiner;
37
38
  (function (PruneJoiner) {
38
- PruneJoiner.object = function (_input, entries, obj) {
39
- var statements = ArrayUtil_1.ArrayUtil.flat(entries.map(function (entry) {
39
+ PruneJoiner.object = function (input, entries, obj) {
40
+ var regular = entries.filter(function (entry) { return entry.key.isSoleLiteral(); });
41
+ var dynamic = entries.filter(function (entry) { return !entry.key.isSoleLiteral(); });
42
+ var statements = ArrayUtil_1.ArrayUtil.flat(regular.map(function (entry) {
40
43
  return typescript_1.default.isBlock(entry.expression)
41
44
  ? __spreadArray([], __read(entry.expression.statements), false) : [typescript_1.default.factory.createExpressionStatement(entry.expression)];
42
45
  }));
46
+ if (dynamic.length)
47
+ statements.push(typescript_1.default.factory.createExpressionStatement(iterate_dynamic_properties({ regular: regular, dynamic: dynamic })(input)));
43
48
  statements.push((0, prune_object_properties_1.prune_object_properties)(obj));
44
49
  return typescript_1.default.factory.createBlock(statements, true);
45
50
  };
@@ -57,4 +62,26 @@ var PruneJoiner;
57
62
  return typescript_1.default.factory.createBlock(statements, true);
58
63
  };
59
64
  })(PruneJoiner = exports.PruneJoiner || (exports.PruneJoiner = {}));
65
+ var iterate_dynamic_properties = function (props) {
66
+ return function (input) {
67
+ return typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.join(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.entries"), undefined, [input]), "forEach"), undefined, [
68
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [
69
+ IdentifierFactory_1.IdentifierFactory.parameter(typescript_1.default.factory.createArrayBindingPattern(["key", "value"].map(function (l) {
70
+ return typescript_1.default.factory.createBindingElement(undefined, undefined, typescript_1.default.factory.createIdentifier(l), undefined);
71
+ }))),
72
+ ], undefined, undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([
73
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createIdentifier("undefined"), typescript_1.default.factory.createIdentifier("value")), typescript_1.default.factory.createReturnStatement())
74
+ ], __read(props.regular.map(function (_a) {
75
+ var key = _a.key;
76
+ return typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral(key.getSoleLiteral()), typescript_1.default.factory.createIdentifier("key")), typescript_1.default.factory.createReturnStatement());
77
+ })), false), __read(props.dynamic.map(function (dynamic) {
78
+ return typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("RegExp(/".concat((0, metadata_to_pattern_1.metadata_to_pattern)(true)(dynamic.key), "/).test")), undefined, [typescript_1.default.factory.createIdentifier("key")]), typescript_1.default.isBlock(dynamic.expression)
79
+ ? dynamic.expression
80
+ : typescript_1.default.factory.createBlock([
81
+ typescript_1.default.factory.createExpressionStatement(dynamic.expression),
82
+ ]));
83
+ })), false), true)),
84
+ ]);
85
+ };
86
+ };
60
87
  //# sourceMappingURL=PruneJoiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PruneJoiner.js","sourceRoot":"","sources":["../../../src/programmers/helpers/PruneJoiner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AAItE,mDAAkD;AAElD,+EAA8E;AAG9E,IAAiB,WAAW,CAwC3B;AAxCD,WAAiB,WAAW;IACX,kBAAM,GAAG,UAClB,MAAqB,EACrB,OAA2B,EAC3B,GAAmB;QAEnB,IAAM,UAAU,GAAmB,qBAAS,CAAC,IAAI,CAC7C,OAAO,CAAC,GAAG,CAAC,UAAC,KAAK;YACd,OAAA,oBAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,CAAC,0BAAK,KAAK,CAAC,UAAU,CAAC,UAAU,UACjC,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAF9D,CAE8D,CACjE,CACJ,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,IAAA,iDAAuB,EAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC;IAEW,iBAAK,GAAG,UAAC,KAAoB,EAAE,KAAuB;QAC/D,OAAA,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,qCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAC1C,SAAS,EACT,CAAC,KAAK,CAAC,CACV;IAJD,CAIC,CAAC;IAEO,iBAAK,GAAG,UACjB,QAA0B,EAC1B,IAA2B;QAE3B,IAAM,MAAM,4BAAyB,QAAQ,SAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErC,IAAM,UAAU,GAAmB,qBAAS,CAAC,IAAI,CAC7C,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI;YACZ,OAAA,oBAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBACZ,CAAC,0BAAK,IAAI,CAAC,UAAU,UACrB,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAFlD,CAEkD,CACrD,CACJ,CAAC;QACF,OAAO,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC;AACN,CAAC,EAxCgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAwC3B"}
1
+ {"version":3,"file":"PruneJoiner.js","sourceRoot":"","sources":["../../../src/programmers/helpers/PruneJoiner.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ var application_schema = function (options) {
42
42
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f;
43
43
  var _g, _h;
44
44
  if (meta.any === true)
45
- return {};
45
+ return __assign(__assign({}, attribute), { type: undefined });
46
46
  else if (meta.nullable && meta.empty())
47
47
  return __assign({ type: "null" }, attribute);
48
48
  var union = [];
@@ -209,7 +209,9 @@ var application_schema = function (options) {
209
209
  finally { if (e_6) throw e_6.error; }
210
210
  }
211
211
  if (union.length === 0)
212
- return blockNever === true ? null : {};
212
+ return blockNever === true
213
+ ? null
214
+ : __assign(__assign({}, attribute), { type: undefined });
213
215
  else if (union.length === 1)
214
216
  return union[0];
215
217
  return __assign({ oneOf: union }, attribute);
@@ -1 +1 @@
1
- {"version":3,"file":"application_schema.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application_schema.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_schema.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
2
2
  import { IMetadataTag } from "../metadata/IMetadataTag";
3
3
  import { Atomic } from "../typings/Atomic";
4
- export type IJsonSchema = IJsonSchema.NotUnknown | IJsonSchema.IUnknown;
4
+ export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
5
5
  export declare namespace IJsonSchema {
6
- type NotUnknown = IEnumeration<"boolean"> | IEnumeration<"number"> | IEnumeration<"string"> | IBoolean | IInteger | INumber | IString | IArray | ITuple | IOneOf | IReference | IRecursiveReference | INullOnly;
6
+ type Known = IEnumeration<"boolean"> | IEnumeration<"number"> | IEnumeration<"string"> | IBoolean | IInteger | INumber | IString | IArray | ITuple | IOneOf | IReference | IRecursiveReference | INullOnly;
7
+ interface IUnknown extends IAttribute {
8
+ type: undefined;
9
+ }
10
+ /**
11
+ * @deprecated Use {@link Known} type instead.
12
+ */
13
+ type NotUnknown = Known;
7
14
  interface IEnumeration<Literal extends Exclude<Atomic.Literal, "bigint">> extends IAtomic<Literal> {
8
15
  enum: Array<Atomic.Mapper[Literal]>;
9
16
  }
@@ -74,8 +81,6 @@ export declare namespace IJsonSchema {
74
81
  interface IOneOf extends IAttribute {
75
82
  oneOf: IJsonSchema[];
76
83
  }
77
- interface IUnknown {
78
- }
79
84
  interface ISignificant<Literal extends string> extends IAttribute {
80
85
  type: Literal;
81
86
  nullable: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "3.8.0-dev.20230420-3",
3
+ "version": "3.8.0-dev.20230426",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -75,7 +75,7 @@
75
75
  "randexp": "^0.5.3"
76
76
  },
77
77
  "peerDependencies": {
78
- "typescript": ">= 4.5.2"
78
+ "typescript": ">= 5.0.0"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@fastify/type-provider-typebox": "^3.0.0",
package/src/Primitive.ts CHANGED
@@ -49,13 +49,19 @@ type _Primitive<Instance> = _ValueOf<Instance> extends object
49
49
  : _ValueOf<Instance>;
50
50
 
51
51
  type _PrimitiveObject<Instance extends object> = Instance extends Array<infer T>
52
- ? _Primitive<T>[]
52
+ ? _IsTuple<Instance> extends true
53
+ ? _PrimitiveSpread<Instance>
54
+ : _Primitive<T>[]
53
55
  : {
54
56
  [P in keyof Instance]: Instance[P] extends Function
55
57
  ? never
56
58
  : _Primitive<Instance[P]>;
57
59
  };
58
60
 
61
+ type _PrimitiveSpread<T extends any[]> = T extends [infer F, ...infer Rest]
62
+ ? [_Primitive<F>, ..._PrimitiveSpread<Rest>]
63
+ : [];
64
+
59
65
  type _ValueOf<Instance> = _IsValueOf<Instance, Boolean> extends true
60
66
  ? boolean
61
67
  : _IsValueOf<Instance, Number> extends true
@@ -84,6 +90,16 @@ type _Native =
84
90
  | SharedArrayBuffer
85
91
  | DataView;
86
92
 
93
+ type _IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
94
+ never,
95
+ ]
96
+ ? false
97
+ : T extends readonly any[]
98
+ ? number extends T["length"]
99
+ ? false
100
+ : true
101
+ : false;
102
+
87
103
  type _IsValueOf<
88
104
  Instance,
89
105
  Object extends IValueOf<any>,
@@ -2,8 +2,7 @@ import ts from "typescript";
2
2
 
3
3
  import { Metadata } from "../../../metadata/Metadata";
4
4
 
5
- import { ArrayUtil } from "../../../utils/ArrayUtil";
6
-
5
+ // import { ArrayUtil } from "../../../utils/ArrayUtil";
7
6
  import { MetadataCollection } from "../../MetadataCollection";
8
7
  import { MetadataFactory } from "../../MetadataFactory";
9
8
  import { iterate_metadata_array } from "./iterate_metadata_array";
@@ -44,18 +43,6 @@ export const iterate_metadata =
44
43
  )
45
44
  return;
46
45
 
47
- // VALIDATE NODE
48
- const node: ts.TypeNode | undefined = checker.typeToTypeNode(
49
- type,
50
- undefined,
51
- undefined,
52
- );
53
- if (node === undefined) {
54
- // EMPTY TUPLE CASE CAN BE
55
- ArrayUtil.set(meta.tuples, [], () => "[]");
56
- return;
57
- }
58
-
59
46
  // ITERATE CASES
60
47
  iterate_metadata_coalesce(meta, type) ||
61
48
  iterate_metadata_constant(checker)(options)(meta, type) ||
package/src/module.ts CHANGED
@@ -570,12 +570,12 @@ export function assertParse(input: string): never;
570
570
  *
571
571
  * @author Jeongho Nam - https://github.com/samchon
572
572
  */
573
- export function assertParse<T>(input: string): T;
573
+ export function assertParse<T>(input: string): Primitive<T>;
574
574
 
575
575
  /**
576
576
  * @internal
577
577
  */
578
- export function assertParse<T>(): T {
578
+ export function assertParse<T>(): Primitive<T> {
579
579
  halt("assertParse");
580
580
  }
581
581
  Object.assign(assertParse, Namespace.assert("assertParse"));
@@ -618,12 +618,12 @@ export function isParse(input: string): never;
618
618
  *
619
619
  * @author Jeongho Nam - https://github.com/samchon
620
620
  */
621
- export function isParse<T>(input: string): T | null;
621
+ export function isParse<T>(input: string): Primitive<T> | null;
622
622
 
623
623
  /**
624
624
  * @internal
625
625
  */
626
- export function isParse<T>(): T | null {
626
+ export function isParse<T>(): Primitive<T> | null {
627
627
  halt("isParse");
628
628
  }
629
629
  Object.assign(isParse, is);
@@ -668,12 +668,12 @@ export function validateParse(input: string): never;
668
668
  *
669
669
  * @author Jeongho Nam - https://github.com/samchon
670
670
  */
671
- export function validateParse<T>(input: string): IValidation<T>;
671
+ export function validateParse<T>(input: string): IValidation<Primitive<T>>;
672
672
 
673
673
  /**
674
674
  * @internal
675
675
  */
676
- export function validateParse<T>(): IValidation<T> {
676
+ export function validateParse<T>(): IValidation<Primitive<T>> {
677
677
  halt("validateParse");
678
678
  }
679
679
  Object.assign(validateParse, validate);
@@ -60,10 +60,13 @@ export namespace AssertParseProgrammer {
60
60
  ),
61
61
  ),
62
62
  ts.factory.createReturnStatement(
63
- ts.factory.createCallExpression(
64
- ts.factory.createIdentifier("assert"),
65
- undefined,
66
- [ts.factory.createIdentifier("input")],
63
+ ts.factory.createAsExpression(
64
+ ts.factory.createCallExpression(
65
+ ts.factory.createIdentifier("assert"),
66
+ undefined,
67
+ [ts.factory.createIdentifier("input")],
68
+ ),
69
+ ts.factory.createTypeReferenceNode("any"),
67
70
  ),
68
71
  ),
69
72
  ]),