typia 3.6.2 → 3.6.4

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 (73) hide show
  1. package/README.md +2 -1
  2. package/lib/factories/internal/metadata/emplace_metadata_object.js +8 -7
  3. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  4. package/lib/functional/$is_uuid.js +1 -1
  5. package/lib/functional/$is_uuid.js.map +1 -1
  6. package/lib/module.d.ts +2 -2
  7. package/package.json +1 -1
  8. package/src/executable/setup/ArgumentParser.ts +91 -91
  9. package/src/executable/setup/FileRetriever.ts +33 -33
  10. package/src/executable/setup/PackageManager.ts +92 -92
  11. package/src/executable/setup/PluginConfigurator.ts +99 -99
  12. package/src/factories/internal/metadata/emplace_metadata_object.ts +142 -140
  13. package/src/functional/$is_uuid.ts +1 -2
  14. package/src/module.ts +1946 -1946
  15. package/src/programmers/AssertCloneProgrammer.ts +70 -70
  16. package/src/programmers/AssertParseProgrammer.ts +65 -65
  17. package/src/programmers/AssertProgrammer.ts +232 -232
  18. package/src/programmers/AssertPruneProgrammer.ts +67 -67
  19. package/src/programmers/AssertStringifyProgrammer.ts +71 -71
  20. package/src/programmers/CheckerProgrammer.ts +893 -893
  21. package/src/programmers/CloneProgrammer.ts +386 -386
  22. package/src/programmers/FeatureProgrammer.ts +505 -505
  23. package/src/programmers/IsCloneProgrammer.ts +80 -80
  24. package/src/programmers/IsParseProgrammer.ts +74 -74
  25. package/src/programmers/IsPruneProgrammer.ts +75 -75
  26. package/src/programmers/IsStringifyProgrammer.ts +81 -81
  27. package/src/programmers/PruneProgrammer.ts +341 -341
  28. package/src/programmers/RandomProgrammer.ts +391 -391
  29. package/src/programmers/StringifyProgrammer.ts +795 -795
  30. package/src/programmers/ValidateCloneProgrammer.ts +90 -90
  31. package/src/programmers/ValidateParseProgrammer.ts +69 -69
  32. package/src/programmers/ValidateProgrammer.ts +266 -266
  33. package/src/programmers/ValidatePruneProgrammer.ts +83 -83
  34. package/src/programmers/ValidateStringifyProgrammer.ts +89 -89
  35. package/src/transformers/features/miscellaneous/AssertCloneTransformer.ts +9 -9
  36. package/src/transformers/features/miscellaneous/AssertPruneTransformer.ts +9 -9
  37. package/src/transformers/features/miscellaneous/CloneTransformer.ts +9 -9
  38. package/src/transformers/features/miscellaneous/CreateAssertCloneTransformer.ts +9 -9
  39. package/src/transformers/features/miscellaneous/CreateAssertPruneTransformer.ts +9 -9
  40. package/src/transformers/features/miscellaneous/CreateCloneTransformer.ts +9 -9
  41. package/src/transformers/features/miscellaneous/CreateIsCloneTransformer.ts +9 -9
  42. package/src/transformers/features/miscellaneous/CreateIsPruneTransformer.ts +9 -9
  43. package/src/transformers/features/miscellaneous/CreatePruneTransformer.ts +9 -9
  44. package/src/transformers/features/miscellaneous/CreateRandomGenerator.ts +42 -42
  45. package/src/transformers/features/miscellaneous/CreateValidateCloneTransformer.ts +9 -9
  46. package/src/transformers/features/miscellaneous/CreateValidatePruneTransformer.ts +9 -9
  47. package/src/transformers/features/miscellaneous/IsCloneTransformer.ts +9 -9
  48. package/src/transformers/features/miscellaneous/IsPruneTransformer.ts +9 -9
  49. package/src/transformers/features/miscellaneous/PruneTransformer.ts +9 -9
  50. package/src/transformers/features/miscellaneous/RandomTransformer.ts +48 -48
  51. package/src/transformers/features/miscellaneous/ValidateCloneTransformer.ts +9 -9
  52. package/src/transformers/features/miscellaneous/ValidatePruneTransformer.ts +9 -9
  53. package/src/transformers/features/parsers/AssertParseTransformer.ts +9 -9
  54. package/src/transformers/features/parsers/CreateAssertParseTransformer.ts +9 -9
  55. package/src/transformers/features/parsers/CreateIsParseTransformer.ts +9 -9
  56. package/src/transformers/features/parsers/CreateValidateParseTransformer.ts +9 -9
  57. package/src/transformers/features/parsers/IsParseTransformer.ts +9 -9
  58. package/src/transformers/features/parsers/ValidateParseTransformer.ts +9 -9
  59. package/src/transformers/features/stringifiers/AssertStringifyTransformer.ts +10 -10
  60. package/src/transformers/features/stringifiers/CreateAssertStringifyTransformer.ts +9 -9
  61. package/src/transformers/features/stringifiers/CreateIsStringifyTransformer.ts +9 -9
  62. package/src/transformers/features/stringifiers/CreateStringifyTransformer.ts +9 -9
  63. package/src/transformers/features/stringifiers/CreateValidateStringifyProgrammer.ts +11 -11
  64. package/src/transformers/features/stringifiers/IsStringifyTransformer.ts +9 -9
  65. package/src/transformers/features/stringifiers/StringifyTransformer.ts +9 -9
  66. package/src/transformers/features/stringifiers/ValidateStringifyTransformer.ts +10 -10
  67. package/src/transformers/features/validators/AssertTransformer.ts +11 -11
  68. package/src/transformers/features/validators/CreateAssertTransformer.ts +12 -12
  69. package/src/transformers/features/validators/CreateIsTransformer.ts +10 -10
  70. package/src/transformers/features/validators/CreateValidateTransformer.ts +12 -12
  71. package/src/transformers/features/validators/IsTransformer.ts +10 -10
  72. package/src/transformers/features/validators/ValidateTransformer.ts +11 -11
  73. package/src/transformers/internal/GenericTransformer.ts +99 -99
@@ -1,80 +1,80 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../factories/IdentifierFactory";
4
- import { StatementFactory } from "../factories/StatementFactory";
5
- import { TypeFactory } from "../factories/TypeFactory";
6
-
7
- import { IProject } from "../transformers/IProject";
8
-
9
- import { CloneProgrammer } from "./CloneProgrammer";
10
- import { IsProgrammer } from "./IsProgrammer";
11
-
12
- export namespace IsCloneProgrammer {
13
- export const generate =
14
- (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
- (type: ts.Type, name?: string) =>
16
- ts.factory.createArrowFunction(
17
- undefined,
18
- undefined,
19
- [
20
- IdentifierFactory.parameter(
21
- "input",
22
- TypeFactory.keyword("any"),
23
- ),
24
- ],
25
- ts.factory.createUnionTypeNode([
26
- ts.factory.createTypeReferenceNode(
27
- `typia.Primitive<${
28
- name ??
29
- TypeFactory.getFullName(project.checker, type)
30
- }>`,
31
- ),
32
- ts.factory.createLiteralTypeNode(ts.factory.createNull()),
33
- ]),
34
- undefined,
35
- ts.factory.createBlock([
36
- StatementFactory.constant(
37
- "is",
38
- IsProgrammer.generate(project, modulo)(type, name),
39
- ),
40
- StatementFactory.constant(
41
- "clone",
42
- CloneProgrammer.generate(
43
- {
44
- ...project,
45
- options: {
46
- ...project.options,
47
- functional: false,
48
- numeric: false,
49
- },
50
- },
51
- modulo,
52
- )(type, name),
53
- ),
54
- ts.factory.createIfStatement(
55
- ts.factory.createPrefixUnaryExpression(
56
- ts.SyntaxKind.ExclamationToken,
57
- ts.factory.createCallExpression(
58
- ts.factory.createIdentifier("is"),
59
- undefined,
60
- [ts.factory.createIdentifier("input")],
61
- ),
62
- ),
63
- ts.factory.createReturnStatement(
64
- ts.factory.createNull(),
65
- ),
66
- ),
67
- StatementFactory.constant(
68
- "output",
69
- ts.factory.createCallExpression(
70
- ts.factory.createIdentifier("clone"),
71
- undefined,
72
- [ts.factory.createIdentifier("input")],
73
- ),
74
- ),
75
- ts.factory.createReturnStatement(
76
- ts.factory.createIdentifier("output"),
77
- ),
78
- ]),
79
- );
80
- }
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
4
+ import { StatementFactory } from "../factories/StatementFactory";
5
+ import { TypeFactory } from "../factories/TypeFactory";
6
+
7
+ import { IProject } from "../transformers/IProject";
8
+
9
+ import { CloneProgrammer } from "./CloneProgrammer";
10
+ import { IsProgrammer } from "./IsProgrammer";
11
+
12
+ export namespace IsCloneProgrammer {
13
+ export const generate =
14
+ (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
+ (type: ts.Type, name?: string) =>
16
+ ts.factory.createArrowFunction(
17
+ undefined,
18
+ undefined,
19
+ [
20
+ IdentifierFactory.parameter(
21
+ "input",
22
+ TypeFactory.keyword("any"),
23
+ ),
24
+ ],
25
+ ts.factory.createUnionTypeNode([
26
+ ts.factory.createTypeReferenceNode(
27
+ `typia.Primitive<${
28
+ name ??
29
+ TypeFactory.getFullName(project.checker, type)
30
+ }>`,
31
+ ),
32
+ ts.factory.createLiteralTypeNode(ts.factory.createNull()),
33
+ ]),
34
+ undefined,
35
+ ts.factory.createBlock([
36
+ StatementFactory.constant(
37
+ "is",
38
+ IsProgrammer.generate(project, modulo)(type, name),
39
+ ),
40
+ StatementFactory.constant(
41
+ "clone",
42
+ CloneProgrammer.generate(
43
+ {
44
+ ...project,
45
+ options: {
46
+ ...project.options,
47
+ functional: false,
48
+ numeric: false,
49
+ },
50
+ },
51
+ modulo,
52
+ )(type, name),
53
+ ),
54
+ ts.factory.createIfStatement(
55
+ ts.factory.createPrefixUnaryExpression(
56
+ ts.SyntaxKind.ExclamationToken,
57
+ ts.factory.createCallExpression(
58
+ ts.factory.createIdentifier("is"),
59
+ undefined,
60
+ [ts.factory.createIdentifier("input")],
61
+ ),
62
+ ),
63
+ ts.factory.createReturnStatement(
64
+ ts.factory.createNull(),
65
+ ),
66
+ ),
67
+ StatementFactory.constant(
68
+ "output",
69
+ ts.factory.createCallExpression(
70
+ ts.factory.createIdentifier("clone"),
71
+ undefined,
72
+ [ts.factory.createIdentifier("input")],
73
+ ),
74
+ ),
75
+ ts.factory.createReturnStatement(
76
+ ts.factory.createIdentifier("output"),
77
+ ),
78
+ ]),
79
+ );
80
+ }
@@ -1,74 +1,74 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../factories/IdentifierFactory";
4
- import { StatementFactory } from "../factories/StatementFactory";
5
- import { TypeFactory } from "../factories/TypeFactory";
6
-
7
- import { IProject } from "../transformers/IProject";
8
-
9
- import { IsProgrammer } from "./IsProgrammer";
10
-
11
- export namespace IsParseProgrammer {
12
- export const generate =
13
- (project: IProject, modulo: ts.LeftHandSideExpression) =>
14
- (type: ts.Type, name?: string) =>
15
- ts.factory.createArrowFunction(
16
- undefined,
17
- undefined,
18
- [
19
- IdentifierFactory.parameter(
20
- "input",
21
- TypeFactory.keyword("any"),
22
- ),
23
- ],
24
- ts.factory.createTypeReferenceNode(
25
- `typia.Primitive<${
26
- name ?? TypeFactory.getFullName(project.checker, type)
27
- }>`,
28
- ),
29
- undefined,
30
- ts.factory.createBlock([
31
- StatementFactory.constant(
32
- "is",
33
- IsProgrammer.generate(
34
- {
35
- ...project,
36
- options: {
37
- ...project.options,
38
- functional: false,
39
- numeric: false,
40
- },
41
- },
42
- modulo,
43
- )(type, name),
44
- ),
45
- ts.factory.createExpressionStatement(
46
- ts.factory.createBinaryExpression(
47
- ts.factory.createIdentifier("input"),
48
- ts.SyntaxKind.EqualsToken,
49
- ts.factory.createCallExpression(
50
- ts.factory.createIdentifier("JSON.parse"),
51
- undefined,
52
- [ts.factory.createIdentifier("input")],
53
- ),
54
- ),
55
- ),
56
- ts.factory.createReturnStatement(
57
- ts.factory.createConditionalExpression(
58
- ts.factory.createCallExpression(
59
- ts.factory.createIdentifier("is"),
60
- undefined,
61
- [ts.factory.createIdentifier("input")],
62
- ),
63
- undefined,
64
- ts.factory.createAsExpression(
65
- ts.factory.createIdentifier("input"),
66
- TypeFactory.keyword("any"),
67
- ),
68
- undefined,
69
- ts.factory.createNull(),
70
- ),
71
- ),
72
- ]),
73
- );
74
- }
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
4
+ import { StatementFactory } from "../factories/StatementFactory";
5
+ import { TypeFactory } from "../factories/TypeFactory";
6
+
7
+ import { IProject } from "../transformers/IProject";
8
+
9
+ import { IsProgrammer } from "./IsProgrammer";
10
+
11
+ export namespace IsParseProgrammer {
12
+ export const generate =
13
+ (project: IProject, modulo: ts.LeftHandSideExpression) =>
14
+ (type: ts.Type, name?: string) =>
15
+ ts.factory.createArrowFunction(
16
+ undefined,
17
+ undefined,
18
+ [
19
+ IdentifierFactory.parameter(
20
+ "input",
21
+ TypeFactory.keyword("any"),
22
+ ),
23
+ ],
24
+ ts.factory.createTypeReferenceNode(
25
+ `typia.Primitive<${
26
+ name ?? TypeFactory.getFullName(project.checker, type)
27
+ }>`,
28
+ ),
29
+ undefined,
30
+ ts.factory.createBlock([
31
+ StatementFactory.constant(
32
+ "is",
33
+ IsProgrammer.generate(
34
+ {
35
+ ...project,
36
+ options: {
37
+ ...project.options,
38
+ functional: false,
39
+ numeric: false,
40
+ },
41
+ },
42
+ modulo,
43
+ )(type, name),
44
+ ),
45
+ ts.factory.createExpressionStatement(
46
+ ts.factory.createBinaryExpression(
47
+ ts.factory.createIdentifier("input"),
48
+ ts.SyntaxKind.EqualsToken,
49
+ ts.factory.createCallExpression(
50
+ ts.factory.createIdentifier("JSON.parse"),
51
+ undefined,
52
+ [ts.factory.createIdentifier("input")],
53
+ ),
54
+ ),
55
+ ),
56
+ ts.factory.createReturnStatement(
57
+ ts.factory.createConditionalExpression(
58
+ ts.factory.createCallExpression(
59
+ ts.factory.createIdentifier("is"),
60
+ undefined,
61
+ [ts.factory.createIdentifier("input")],
62
+ ),
63
+ undefined,
64
+ ts.factory.createAsExpression(
65
+ ts.factory.createIdentifier("input"),
66
+ TypeFactory.keyword("any"),
67
+ ),
68
+ undefined,
69
+ ts.factory.createNull(),
70
+ ),
71
+ ),
72
+ ]),
73
+ );
74
+ }
@@ -1,75 +1,75 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../factories/IdentifierFactory";
4
- import { StatementFactory } from "../factories/StatementFactory";
5
- import { TypeFactory } from "../factories/TypeFactory";
6
-
7
- import { IProject } from "../transformers/IProject";
8
-
9
- import { IsProgrammer } from "./IsProgrammer";
10
- import { PruneProgrammer } from "./PruneProgrammer";
11
-
12
- export namespace IsPruneProgrammer {
13
- export const generate =
14
- (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
- (type: ts.Type, name?: string) =>
16
- ts.factory.createArrowFunction(
17
- undefined,
18
- undefined,
19
- [
20
- IdentifierFactory.parameter(
21
- "input",
22
- TypeFactory.keyword("any"),
23
- ),
24
- ],
25
- ts.factory.createTypePredicateNode(
26
- undefined,
27
- "input",
28
- ts.factory.createTypeReferenceNode(
29
- name ?? TypeFactory.getFullName(project.checker, type),
30
- ),
31
- ),
32
- undefined,
33
- ts.factory.createBlock([
34
- StatementFactory.constant(
35
- "is",
36
- IsProgrammer.generate(project, modulo)(type, name),
37
- ),
38
- StatementFactory.constant(
39
- "prune",
40
- PruneProgrammer.generate(
41
- {
42
- ...project,
43
- options: {
44
- ...project.options,
45
- functional: false,
46
- numeric: false,
47
- },
48
- },
49
- modulo,
50
- )(type, name),
51
- ),
52
- ts.factory.createIfStatement(
53
- ts.factory.createPrefixUnaryExpression(
54
- ts.SyntaxKind.ExclamationToken,
55
- ts.factory.createCallExpression(
56
- ts.factory.createIdentifier("is"),
57
- undefined,
58
- [ts.factory.createIdentifier("input")],
59
- ),
60
- ),
61
- ts.factory.createReturnStatement(
62
- ts.factory.createFalse(),
63
- ),
64
- ),
65
- ts.factory.createExpressionStatement(
66
- ts.factory.createCallExpression(
67
- ts.factory.createIdentifier("prune"),
68
- undefined,
69
- [ts.factory.createIdentifier("input")],
70
- ),
71
- ),
72
- ts.factory.createReturnStatement(ts.factory.createTrue()),
73
- ]),
74
- );
75
- }
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
4
+ import { StatementFactory } from "../factories/StatementFactory";
5
+ import { TypeFactory } from "../factories/TypeFactory";
6
+
7
+ import { IProject } from "../transformers/IProject";
8
+
9
+ import { IsProgrammer } from "./IsProgrammer";
10
+ import { PruneProgrammer } from "./PruneProgrammer";
11
+
12
+ export namespace IsPruneProgrammer {
13
+ export const generate =
14
+ (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
+ (type: ts.Type, name?: string) =>
16
+ ts.factory.createArrowFunction(
17
+ undefined,
18
+ undefined,
19
+ [
20
+ IdentifierFactory.parameter(
21
+ "input",
22
+ TypeFactory.keyword("any"),
23
+ ),
24
+ ],
25
+ ts.factory.createTypePredicateNode(
26
+ undefined,
27
+ "input",
28
+ ts.factory.createTypeReferenceNode(
29
+ name ?? TypeFactory.getFullName(project.checker, type),
30
+ ),
31
+ ),
32
+ undefined,
33
+ ts.factory.createBlock([
34
+ StatementFactory.constant(
35
+ "is",
36
+ IsProgrammer.generate(project, modulo)(type, name),
37
+ ),
38
+ StatementFactory.constant(
39
+ "prune",
40
+ PruneProgrammer.generate(
41
+ {
42
+ ...project,
43
+ options: {
44
+ ...project.options,
45
+ functional: false,
46
+ numeric: false,
47
+ },
48
+ },
49
+ modulo,
50
+ )(type, name),
51
+ ),
52
+ ts.factory.createIfStatement(
53
+ ts.factory.createPrefixUnaryExpression(
54
+ ts.SyntaxKind.ExclamationToken,
55
+ ts.factory.createCallExpression(
56
+ ts.factory.createIdentifier("is"),
57
+ undefined,
58
+ [ts.factory.createIdentifier("input")],
59
+ ),
60
+ ),
61
+ ts.factory.createReturnStatement(
62
+ ts.factory.createFalse(),
63
+ ),
64
+ ),
65
+ ts.factory.createExpressionStatement(
66
+ ts.factory.createCallExpression(
67
+ ts.factory.createIdentifier("prune"),
68
+ undefined,
69
+ [ts.factory.createIdentifier("input")],
70
+ ),
71
+ ),
72
+ ts.factory.createReturnStatement(ts.factory.createTrue()),
73
+ ]),
74
+ );
75
+ }
@@ -1,81 +1,81 @@
1
- import ts from "typescript";
2
-
3
- import { IdentifierFactory } from "../factories/IdentifierFactory";
4
- import { StatementFactory } from "../factories/StatementFactory";
5
- import { TypeFactory } from "../factories/TypeFactory";
6
-
7
- import { IProject } from "../transformers/IProject";
8
-
9
- import { IsProgrammer } from "./IsProgrammer";
10
- import { StringifyProgrammer } from "./StringifyProgrammer";
11
-
12
- export namespace IsStringifyProgrammer {
13
- export const generate =
14
- (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
- (type: ts.Type, name?: string) =>
16
- ts.factory.createArrowFunction(
17
- undefined,
18
- undefined,
19
- [
20
- IdentifierFactory.parameter(
21
- "input",
22
- ts.factory.createTypeReferenceNode(
23
- name ??
24
- TypeFactory.getFullName(project.checker, type),
25
- ),
26
- ),
27
- ],
28
- ts.factory.createUnionTypeNode([
29
- TypeFactory.keyword("string"),
30
- ts.factory.createLiteralTypeNode(ts.factory.createNull()),
31
- ]),
32
- undefined,
33
- ts.factory.createBlock([
34
- StatementFactory.constant(
35
- "is",
36
- IsProgrammer.generate(
37
- {
38
- ...project,
39
- options: {
40
- ...project.options,
41
- functional: false,
42
- numeric: true,
43
- },
44
- },
45
- modulo,
46
- )(type, name),
47
- ),
48
- StatementFactory.constant(
49
- "stringify",
50
- StringifyProgrammer.generate(
51
- {
52
- ...project,
53
- options: {
54
- ...project.options,
55
- functional: false,
56
- numeric: false,
57
- },
58
- },
59
- modulo,
60
- )(type, name),
61
- ),
62
- ts.factory.createReturnStatement(
63
- ts.factory.createConditionalExpression(
64
- ts.factory.createCallExpression(
65
- ts.factory.createIdentifier("is"),
66
- undefined,
67
- [ts.factory.createIdentifier("input")],
68
- ),
69
- undefined,
70
- ts.factory.createCallExpression(
71
- ts.factory.createIdentifier("stringify"),
72
- undefined,
73
- [ts.factory.createIdentifier("input")],
74
- ),
75
- undefined,
76
- ts.factory.createNull(),
77
- ),
78
- ),
79
- ]),
80
- );
81
- }
1
+ import ts from "typescript";
2
+
3
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
4
+ import { StatementFactory } from "../factories/StatementFactory";
5
+ import { TypeFactory } from "../factories/TypeFactory";
6
+
7
+ import { IProject } from "../transformers/IProject";
8
+
9
+ import { IsProgrammer } from "./IsProgrammer";
10
+ import { StringifyProgrammer } from "./StringifyProgrammer";
11
+
12
+ export namespace IsStringifyProgrammer {
13
+ export const generate =
14
+ (project: IProject, modulo: ts.LeftHandSideExpression) =>
15
+ (type: ts.Type, name?: string) =>
16
+ ts.factory.createArrowFunction(
17
+ undefined,
18
+ undefined,
19
+ [
20
+ IdentifierFactory.parameter(
21
+ "input",
22
+ ts.factory.createTypeReferenceNode(
23
+ name ??
24
+ TypeFactory.getFullName(project.checker, type),
25
+ ),
26
+ ),
27
+ ],
28
+ ts.factory.createUnionTypeNode([
29
+ TypeFactory.keyword("string"),
30
+ ts.factory.createLiteralTypeNode(ts.factory.createNull()),
31
+ ]),
32
+ undefined,
33
+ ts.factory.createBlock([
34
+ StatementFactory.constant(
35
+ "is",
36
+ IsProgrammer.generate(
37
+ {
38
+ ...project,
39
+ options: {
40
+ ...project.options,
41
+ functional: false,
42
+ numeric: true,
43
+ },
44
+ },
45
+ modulo,
46
+ )(type, name),
47
+ ),
48
+ StatementFactory.constant(
49
+ "stringify",
50
+ StringifyProgrammer.generate(
51
+ {
52
+ ...project,
53
+ options: {
54
+ ...project.options,
55
+ functional: false,
56
+ numeric: false,
57
+ },
58
+ },
59
+ modulo,
60
+ )(type, name),
61
+ ),
62
+ ts.factory.createReturnStatement(
63
+ ts.factory.createConditionalExpression(
64
+ ts.factory.createCallExpression(
65
+ ts.factory.createIdentifier("is"),
66
+ undefined,
67
+ [ts.factory.createIdentifier("input")],
68
+ ),
69
+ undefined,
70
+ ts.factory.createCallExpression(
71
+ ts.factory.createIdentifier("stringify"),
72
+ undefined,
73
+ [ts.factory.createIdentifier("input")],
74
+ ),
75
+ undefined,
76
+ ts.factory.createNull(),
77
+ ),
78
+ ),
79
+ ]),
80
+ );
81
+ }