typia 4.1.3 → 4.1.4-dev.20230707

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 (41) hide show
  1. package/lib/metadata/Metadata.d.ts +1 -0
  2. package/lib/metadata/Metadata.js +5 -2
  3. package/lib/metadata/Metadata.js.map +1 -1
  4. package/lib/metadata/MetadataObject.js +1 -1
  5. package/lib/metadata/MetadataObject.js.map +1 -1
  6. package/lib/programmers/CheckerProgrammer.js +3 -3
  7. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  8. package/lib/programmers/IsProgrammer.js +1 -1
  9. package/lib/programmers/IsProgrammer.js.map +1 -1
  10. package/lib/programmers/RandomProgrammer.js +1 -1
  11. package/lib/programmers/RandomProgrammer.js.map +1 -1
  12. package/lib/programmers/StringifyProgrammer.js +5 -5
  13. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  14. package/lib/programmers/helpers/StringifyJoinder.js +1 -1
  15. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  16. package/lib/programmers/helpers/StringifyPredicator.js +3 -2
  17. package/lib/programmers/helpers/StringifyPredicator.js.map +1 -1
  18. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  19. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  20. package/lib/programmers/internal/application_object.js +2 -2
  21. package/lib/programmers/internal/application_object.js.map +1 -1
  22. package/lib/programmers/internal/check_dynamic_properties.js +5 -4
  23. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  24. package/lib/programmers/internal/stringify_regular_properties.js +4 -4
  25. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/factories/internal/metadata/emplace_metadata_object.ts +137 -137
  28. package/src/factories/internal/metadata/iterate_metadata_collection.ts +133 -133
  29. package/src/factories/internal/metadata/iterate_metadata_tag.ts +31 -31
  30. package/src/metadata/Metadata.ts +6 -2
  31. package/src/metadata/MetadataObject.ts +129 -129
  32. package/src/programmers/CheckerProgrammer.ts +4 -4
  33. package/src/programmers/IsProgrammer.ts +1 -1
  34. package/src/programmers/RandomProgrammer.ts +1 -1
  35. package/src/programmers/StringifyProgrammer.ts +5 -5
  36. package/src/programmers/helpers/StringifyJoinder.ts +1 -1
  37. package/src/programmers/helpers/StringifyPredicator.ts +3 -2
  38. package/src/programmers/helpers/UnionPredicator.ts +1 -1
  39. package/src/programmers/internal/application_object.ts +2 -2
  40. package/src/programmers/internal/check_dynamic_properties.ts +5 -4
  41. package/src/programmers/internal/stringify_regular_properties.ts +4 -4
@@ -158,9 +158,9 @@ export namespace StringifyProgrammer {
158
158
  const size: number = meta.size();
159
159
  if (
160
160
  size === 0 &&
161
- (meta.required === false || meta.nullable === true)
161
+ (meta.isRequired() === false || meta.nullable === true)
162
162
  ) {
163
- if (meta.required === false && meta.nullable === true)
163
+ if (meta.isRequired() === false && meta.nullable === true)
164
164
  return explore.from === "array"
165
165
  ? ts.factory.createStringLiteral("null")
166
166
  : ts.factory.createConditionalExpression(
@@ -173,7 +173,7 @@ export namespace StringifyProgrammer {
173
173
  undefined,
174
174
  ts.factory.createIdentifier("undefined"),
175
175
  );
176
- else if (meta.required === false)
176
+ else if (meta.isRequired() === false)
177
177
  return explore.from === "array"
178
178
  ? ts.factory.createStringLiteral("null")
179
179
  : ts.factory.createIdentifier("undefined");
@@ -420,7 +420,7 @@ export namespace StringifyProgrammer {
420
420
  obj.properties.every(
421
421
  (prop) =>
422
422
  !prop.key.isSoleLiteral() ||
423
- !prop.value.required,
423
+ !prop.value.isRequired(),
424
424
  ),
425
425
  ),
426
426
  })(input),
@@ -802,7 +802,7 @@ export namespace StringifyProgrammer {
802
802
  meta: Metadata,
803
803
  explore: FeatureProgrammer.IExplore,
804
804
  ): ((expression: ts.Expression) => ts.Expression) => {
805
- if (meta.required === true && meta.any === false)
805
+ if (meta.isRequired() === true && meta.any === false)
806
806
  return (expression) => expression;
807
807
  return (expression) =>
808
808
  ts.factory.createConditionalExpression(
@@ -41,7 +41,7 @@ export namespace StringifyJoiner {
41
41
  // POP LAST COMMA, IF REQUIRED
42
42
  const filtered: ts.Expression[] =
43
43
  (regular.length &&
44
- regular[regular.length - 1]!.meta.required &&
44
+ regular[regular.length - 1]!.meta.isRequired() &&
45
45
  dynamic.length === 0) ||
46
46
  (regular.length === 0 && dynamic.length)
47
47
  ? expressions
@@ -5,8 +5,9 @@ export namespace StringifyPredicator {
5
5
  value.split("").some((ch) => ESCAPED.some((escaped) => escaped === ch));
6
6
 
7
7
  export const undefindable = (meta: Metadata): boolean =>
8
- meta.required === false ||
9
- (meta.resolved !== null && meta.resolved.returns.required === false);
8
+ meta.isRequired() === false ||
9
+ (meta.resolved !== null &&
10
+ meta.resolved.returns.isRequired() === false);
10
11
 
11
12
  const ESCAPED = ['"', "\\", "\b", "\f", "\n", "\n", "\r", "\t"];
12
13
  }
@@ -37,7 +37,7 @@ export namespace UnionPredicator {
37
37
  const children: ISpecializedProperty[] = [];
38
38
  obj.properties.forEach((prop) => {
39
39
  // MUST BE REQUIRED
40
- if (prop.value.required === false) return;
40
+ if (prop.value.isRequired() === false) return;
41
41
  const key: string | null = prop.key.getSoleLiteral();
42
42
  if (key === null) return;
43
43
 
@@ -45,7 +45,7 @@ export const application_object =
45
45
  if (
46
46
  property.value.functional === true &&
47
47
  property.value.nullable === false &&
48
- property.value.required === true &&
48
+ property.value.isRequired() === true &&
49
49
  property.value.size() === 0
50
50
  )
51
51
  continue;
@@ -79,7 +79,7 @@ export const application_object =
79
79
  if (schema === null) continue;
80
80
  else if (key !== null) {
81
81
  properties[key] = schema;
82
- if (property.value.required === true) required.push(key);
82
+ if (property.value.isRequired() === true) required.push(key);
83
83
  } else {
84
84
  const pattern: string = metadata_to_pattern(true)(property.key);
85
85
  if (pattern === PatternUtil.STRING)
@@ -30,10 +30,10 @@ export const check_dynamic_properties =
30
30
  const left: ts.Expression | null =
31
31
  props.equals === true && dynamic.length === 0
32
32
  ? props.undefined === true ||
33
- regular.every((r) => r.meta.required)
33
+ regular.every((r) => r.meta.isRequired())
34
34
  ? ts.factory.createStrictEquality(
35
35
  ts.factory.createNumericLiteral(
36
- regular.filter((r) => r.meta.required).length,
36
+ regular.filter((r) => r.meta.isRequired()).length,
37
37
  ),
38
38
  length,
39
39
  )
@@ -43,7 +43,8 @@ export const check_dynamic_properties =
43
43
  [
44
44
  length,
45
45
  ts.factory.createNumericLiteral(
46
- regular.filter((r) => r.meta.required).length,
46
+ regular.filter((r) => r.meta.isRequired())
47
+ .length,
47
48
  ),
48
49
  ts.factory.createNumericLiteral(regular.length),
49
50
  ],
@@ -52,7 +53,7 @@ export const check_dynamic_properties =
52
53
  if (
53
54
  props.undefined === false &&
54
55
  left !== null &&
55
- regular.every((r) => r.meta.required)
56
+ regular.every((r) => r.meta.isRequired())
56
57
  )
57
58
  return left;
58
59
 
@@ -28,7 +28,7 @@ export const stringify_regular_properties = (
28
28
  base.push(ts.factory.createStringLiteral(`,`));
29
29
 
30
30
  const empty: boolean =
31
- (entry.meta.required === false &&
31
+ (entry.meta.isRequired() === false &&
32
32
  entry.meta.nullable === false &&
33
33
  entry.meta.size() === 0) ||
34
34
  (entry.meta.functional &&
@@ -37,7 +37,7 @@ export const stringify_regular_properties = (
37
37
 
38
38
  if (empty === true) return;
39
39
  else if (
40
- entry.meta.required === false ||
40
+ entry.meta.isRequired() === false ||
41
41
  entry.meta.functional === true ||
42
42
  entry.meta.any === true
43
43
  )
@@ -45,7 +45,7 @@ export const stringify_regular_properties = (
45
45
  ts.factory.createConditionalExpression(
46
46
  (() => {
47
47
  const conditions: ts.BinaryExpression[] = [];
48
- if (entry.meta.required === false || entry.meta.any)
48
+ if (entry.meta.isRequired() === false || entry.meta.any)
49
49
  conditions.push(
50
50
  ts.factory.createStrictEquality(
51
51
  ts.factory.createIdentifier("undefined"),
@@ -80,4 +80,4 @@ export const stringify_regular_properties = (
80
80
  * @internal
81
81
  */
82
82
  const sequence = (meta: Metadata): number =>
83
- meta.any || !meta.required || meta.functional ? 0 : 1;
83
+ meta.any || !meta.isRequired() || meta.functional ? 0 : 1;