typia 6.4.1 → 6.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,10 +53,10 @@ Thanks for your support.
53
53
 
54
54
  Your donation encourages `typia` development.
55
55
 
56
- Also, `typia` is re-distributing half of your donations to core contributors of `typia`.
56
+ Also, `typia` is re-distributing half of donations to core contributors of `typia`.
57
57
 
58
- - [@nonara](https://github.com/nonara): developer of [`ts-patch`](https://github.com/nonara/ts-patch)
59
- - [@ryoppippi](https://github.com/ryoppippi): developer of [`unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
58
+ - [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
59
+ - [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
60
60
 
61
61
  [![Sponsers](https://opencollective.com/typia/badge.svg?avatarHeight=75&width=600)](https://opencollective.com/typia)
62
62
 
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace HttpAssertQueryProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type, name?: string, init?: ts.Expression) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression, allowOptional?: boolean) => (type: ts.Type, name?: string, init?: ts.Expression) => ts.ArrowFunction;
5
5
  }
@@ -24,7 +24,8 @@ var HttpQueryProgrammer_1 = require("./HttpQueryProgrammer");
24
24
  var HttpAssertQueryProgrammer;
25
25
  (function (HttpAssertQueryProgrammer) {
26
26
  HttpAssertQueryProgrammer.write = function (project) {
27
- return function (modulo) {
27
+ return function (modulo, allowOptional) {
28
+ if (allowOptional === void 0) { allowOptional = false; }
28
29
  return function (type, name, init) {
29
30
  return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
30
31
  IdentifierFactory_1.IdentifierFactory.parameter("input", typescript_1.default.factory.createTypeReferenceNode(HttpQueryProgrammer_1.HttpQueryProgrammer.INPUT_TYPE)),
@@ -32,7 +33,7 @@ var HttpAssertQueryProgrammer;
32
33
  ], typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createIdentifier("Resolved"), [
33
34
  typescript_1.default.factory.createTypeReferenceNode(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker)(type)),
34
35
  ], false), undefined, typescript_1.default.factory.createBlock([
35
- StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(type, name)),
36
+ StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo, allowOptional)(type, name)),
36
37
  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
38
  StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("decode"), undefined, [typescript_1.default.factory.createIdentifier("input")])),
38
39
  typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("assert"), undefined, [
@@ -1 +1 @@
1
- {"version":3,"file":"HttpAssertQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpAssertQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AACpE,2DAA0D;AAI1D,wDAAuD;AACvD,6DAA4D;AAE5D,IAAiB,yBAAyB,CA2EzC;AA3ED,WAAiB,yBAAyB;IAC3B,+BAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa,EAAE,IAAoB;gBACjD,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT;oBACE,qCAAiB,CAAC,SAAS,CACzB,OAAO,EACP,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,yCAAmB,CAAC,UAAU,CAAC,CACnE;oBACD,mCAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC1C,EACD,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACxC,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC;oBACE,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CACvD;iBACF,EACD,KAAK,CACN,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACrB,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,yCAAmB,CAAC,KAAK,uBACpB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CACvB;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,mCAAgB,CAAC,KAAK,uBACjB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAC9B;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACvC,CACF;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT;wBACE,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBACrC,mCAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE;qBACvC,CACF,EACD,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAC3B,CACF;iBACF,CAAC,CACH;YArED,CAqEC;QAtEH,CAsEG;IAvEH,CAuEG,CAAC;AACR,CAAC,EA3EgB,yBAAyB,yCAAzB,yBAAyB,QA2EzC"}
1
+ {"version":3,"file":"HttpAssertQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpAssertQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AACpE,2DAA0D;AAI1D,wDAAuD;AACvD,6DAA4D;AAE5D,IAAiB,yBAAyB,CA2EzC;AA3ED,WAAiB,yBAAyB;IAC3B,+BAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC,EAAE,aAA8B;YAA9B,8BAAA,EAAA,qBAA8B;YAClE,OAAA,UAAC,IAAa,EAAE,IAAa,EAAE,IAAoB;gBACjD,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT;oBACE,qCAAiB,CAAC,SAAS,CACzB,OAAO,EACP,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,yCAAmB,CAAC,UAAU,CAAC,CACnE;oBACD,mCAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC1C,EACD,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACxC,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC;oBACE,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CACvD;iBACF,EACD,KAAK,CACN,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACrB,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,yCAAmB,CAAC,KAAK,uBACpB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CACtC;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,mCAAgB,CAAC,KAAK,uBACjB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAC9B;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACvC,CACF;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT;wBACE,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBACrC,mCAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE;qBACvC,CACF,EACD,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAC3B,CACF;iBACF,CAAC,CACH;YArED,CAqEC;QAtEH,CAsEG;IAvEH,CAuEG,CAAC;AACR,CAAC,EA3EgB,yBAAyB,yCAAzB,yBAAyB,QA2EzC"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace HttpIsQueryProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type, name?: string) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression, allowOptional?: boolean) => (type: ts.Type, name?: string) => ts.ArrowFunction;
5
5
  }
@@ -24,7 +24,8 @@ var HttpQueryProgrammer_1 = require("./HttpQueryProgrammer");
24
24
  var HttpIsQueryProgrammer;
25
25
  (function (HttpIsQueryProgrammer) {
26
26
  HttpIsQueryProgrammer.write = function (project) {
27
- return function (modulo) {
27
+ return function (modulo, allowOptional) {
28
+ if (allowOptional === void 0) { allowOptional = false; }
28
29
  return function (type, name) {
29
30
  return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
30
31
  IdentifierFactory_1.IdentifierFactory.parameter("input", typescript_1.default.factory.createTypeReferenceNode(HttpQueryProgrammer_1.HttpQueryProgrammer.INPUT_TYPE)),
@@ -35,7 +36,7 @@ var HttpIsQueryProgrammer;
35
36
  typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNull()),
36
37
  ]), undefined, typescript_1.default.factory.createBlock([
37
38
  StatementFactory_1.StatementFactory.constant("is", IsProgrammer_1.IsProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(false)(type, name)),
38
- StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(type, name)),
39
+ StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo, allowOptional)(type, name)),
39
40
  StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("decode"), undefined, [typescript_1.default.factory.createIdentifier("input")])),
40
41
  typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createPrefixUnaryExpression(typescript_1.default.SyntaxKind.ExclamationToken, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("is"), undefined, [typescript_1.default.factory.createIdentifier("output")])), typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createNull())),
41
42
  typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("output")),
@@ -1 +1 @@
1
- {"version":3,"file":"HttpIsQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpIsQueryProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpIsQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpIsQueryProgrammer.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ import { Metadata } from "../../schemas/metadata/Metadata";
4
4
  import { IProject } from "../../transformers/IProject";
5
5
  export declare namespace HttpQueryProgrammer {
6
6
  const INPUT_TYPE = "string | URLSearchParams";
7
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type, name?: string) => ts.ArrowFunction;
8
- const validate: (meta: Metadata, explore: MetadataFactory.IExplore) => string[];
7
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression, allowOptional?: boolean) => (type: ts.Type, name?: string) => ts.ArrowFunction;
8
+ const validate: (meta: Metadata, explore: MetadataFactory.IExplore, allowOptional?: boolean) => string[];
9
9
  }
@@ -44,7 +44,8 @@ var HttpQueryProgrammer;
44
44
  (function (HttpQueryProgrammer) {
45
45
  HttpQueryProgrammer.INPUT_TYPE = "string | URLSearchParams";
46
46
  HttpQueryProgrammer.write = function (project) {
47
- return function (modulo) {
47
+ return function (modulo, allowOptional) {
48
+ if (allowOptional === void 0) { allowOptional = false; }
48
49
  return function (type, name) {
49
50
  // GET OBJECT TYPE
50
51
  var importer = new FunctionImporter_1.FunctionImporter(modulo.getText());
@@ -53,7 +54,7 @@ var HttpQueryProgrammer;
53
54
  escape: false,
54
55
  constant: true,
55
56
  absorb: true,
56
- validate: HttpQueryProgrammer.validate,
57
+ validate: function (meta, explore) { return HttpQueryProgrammer.validate(meta, explore, allowOptional); },
57
58
  })(collection)(type);
58
59
  if (result.success === false)
59
60
  throw TransformerError_1.TransformerError.from("typia.http.".concat(importer.method))(result.errors);
@@ -68,7 +69,8 @@ var HttpQueryProgrammer;
68
69
  };
69
70
  };
70
71
  };
71
- HttpQueryProgrammer.validate = function (meta, explore) {
72
+ HttpQueryProgrammer.validate = function (meta, explore, allowOptional) {
73
+ if (allowOptional === void 0) { allowOptional = false; }
72
74
  var errors = [];
73
75
  var insert = function (msg) { return errors.push(msg); };
74
76
  if (explore.top === true) {
@@ -77,8 +79,17 @@ var HttpQueryProgrammer;
77
79
  insert("only one object type is allowed.");
78
80
  if (meta.nullable === true)
79
81
  insert("query parameters cannot be null.");
80
- if (meta.isRequired() === false)
81
- insert("query parameters cannot be undefined.");
82
+ if (meta.isRequired() === false) {
83
+ if (allowOptional === true) {
84
+ var everyPropertiesAreOptional = meta.size() === 1 &&
85
+ meta.objects.length === 1 &&
86
+ meta.objects[0].properties.every(function (p) { return p.value.isRequired() === false; });
87
+ if (everyPropertiesAreOptional === false)
88
+ insert("query parameters can be optional only when every properties are optional.");
89
+ }
90
+ else
91
+ insert("query parameters cannot be undefined.");
92
+ }
82
93
  }
83
94
  else if (explore.nested !== null &&
84
95
  explore.nested instanceof MetadataArrayType_1.MetadataArrayType) {
@@ -1 +1 @@
1
- {"version":3,"file":"HttpQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpQueryProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpQueryProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace HttpValidateQueryProgrammer {
4
- const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type, name?: string) => ts.ArrowFunction;
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression, allowOptional?: boolean) => (type: ts.Type, name?: string) => ts.ArrowFunction;
5
5
  }
@@ -24,13 +24,14 @@ var HttpQueryProgrammer_1 = require("./HttpQueryProgrammer");
24
24
  var HttpValidateQueryProgrammer;
25
25
  (function (HttpValidateQueryProgrammer) {
26
26
  HttpValidateQueryProgrammer.write = function (project) {
27
- return function (modulo) {
27
+ return function (modulo, allowOptional) {
28
+ if (allowOptional === void 0) { allowOptional = false; }
28
29
  return function (type, name) {
29
30
  return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
30
31
  IdentifierFactory_1.IdentifierFactory.parameter("input", typescript_1.default.factory.createTypeReferenceNode(HttpQueryProgrammer_1.HttpQueryProgrammer.INPUT_TYPE)),
31
32
  ], typescript_1.default.factory.createTypeReferenceNode("typia.IValidation<typia.Resolved<".concat(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker)(type), ">>")), undefined, typescript_1.default.factory.createBlock([
32
33
  StatementFactory_1.StatementFactory.constant("validate", ValidateProgrammer_1.ValidateProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: true }) }))(modulo)(false)(type, name)),
33
- StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo)(type, name)),
34
+ StatementFactory_1.StatementFactory.constant("decode", HttpQueryProgrammer_1.HttpQueryProgrammer.write(__assign(__assign({}, project), { options: __assign(__assign({}, project.options), { functional: false, numeric: false }) }))(modulo, allowOptional)(type, name)),
34
35
  StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("decode"), undefined, [typescript_1.default.factory.createIdentifier("input")])),
35
36
  typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("validate"), undefined, [typescript_1.default.factory.createIdentifier("output")]), typescript_1.default.factory.createTypeReferenceNode("any"))),
36
37
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"HttpValidateQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpValidateQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AACpE,2DAA0D;AAI1D,4DAA2D;AAC3D,6DAA4D;AAE5D,IAAiB,2BAA2B,CA+D3C;AA/DD,WAAiB,2BAA2B;IAC7B,iCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa,EAAE,IAAa;gBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT;oBACE,qCAAiB,CAAC,SAAS,CACzB,OAAO,EACP,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,yCAAmB,CAAC,UAAU,CAAC,CACnE;iBACF,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,2CACE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OACpD,CACL,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACrB,mCAAgB,CAAC,QAAQ,CACvB,UAAU,EACV,uCAAkB,CAAC,KAAK,uBACnB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,IAAI,OAEf,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAC9B;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,yCAAmB,CAAC,KAAK,uBACpB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CACvB;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACvC,CACF;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CACxC,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAC1C,CACF;iBACF,CAAC,CACH;YAzDD,CAyDC;QA1DH,CA0DG;IA3DH,CA2DG,CAAC;AACR,CAAC,EA/DgB,2BAA2B,2CAA3B,2BAA2B,QA+D3C"}
1
+ {"version":3,"file":"HttpValidateQueryProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/http/HttpValidateQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,uEAAsE;AACtE,qEAAoE;AACpE,2DAA0D;AAI1D,4DAA2D;AAC3D,6DAA4D;AAE5D,IAAiB,2BAA2B,CA+D3C;AA/DD,WAAiB,2BAA2B;IAC7B,iCAAK,GAChB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC,EAAE,aAA8B;YAA9B,8BAAA,EAAA,qBAA8B;YAClE,OAAA,UAAC,IAAa,EAAE,IAAa;gBAC3B,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT;oBACE,qCAAiB,CAAC,SAAS,CACzB,OAAO,EACP,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,yCAAmB,CAAC,UAAU,CAAC,CACnE;iBACF,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,2CACE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,yBAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OACpD,CACL,EACD,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC;oBACrB,mCAAgB,CAAC,QAAQ,CACvB,UAAU,EACV,uCAAkB,CAAC,KAAK,uBACnB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,IAAI,OAEf,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAC9B;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,yCAAmB,CAAC,KAAK,uBACpB,OAAO,KACV,OAAO,wBACF,OAAO,CAAC,OAAO,KAClB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,OAEhB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CACtC;oBACD,mCAAgB,CAAC,QAAQ,CACvB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACvC,CACF;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACvC,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CACxC,EACD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAC1C,CACF;iBACF,CAAC,CACH;YAzDD,CAyDC;QA1DH,CA0DG;IA3DH,CA2DG,CAAC;AACR,CAAC,EA/DgB,2BAA2B,2CAA3B,2BAA2B,QA+D3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "6.4.1",
3
+ "version": "6.4.2",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -12,7 +12,7 @@ import { HttpQueryProgrammer } from "./HttpQueryProgrammer";
12
12
  export namespace HttpAssertQueryProgrammer {
13
13
  export const write =
14
14
  (project: IProject) =>
15
- (modulo: ts.LeftHandSideExpression) =>
15
+ (modulo: ts.LeftHandSideExpression, allowOptional: boolean = false) =>
16
16
  (type: ts.Type, name?: string, init?: ts.Expression): ts.ArrowFunction =>
17
17
  ts.factory.createArrowFunction(
18
18
  undefined,
@@ -48,7 +48,7 @@ export namespace HttpAssertQueryProgrammer {
48
48
  functional: false,
49
49
  numeric: false,
50
50
  },
51
- })(modulo)(type, name),
51
+ })(modulo, allowOptional)(type, name),
52
52
  ),
53
53
  StatementFactory.constant(
54
54
  "assert",
@@ -12,7 +12,7 @@ import { HttpQueryProgrammer } from "./HttpQueryProgrammer";
12
12
  export namespace HttpIsQueryProgrammer {
13
13
  export const write =
14
14
  (project: IProject) =>
15
- (modulo: ts.LeftHandSideExpression) =>
15
+ (modulo: ts.LeftHandSideExpression, allowOptional: boolean = false) =>
16
16
  (type: ts.Type, name?: string): ts.ArrowFunction =>
17
17
  ts.factory.createArrowFunction(
18
18
  undefined,
@@ -61,7 +61,7 @@ export namespace HttpIsQueryProgrammer {
61
61
  functional: false,
62
62
  numeric: false,
63
63
  },
64
- })(modulo)(type, name),
64
+ })(modulo, allowOptional)(type, name),
65
65
  ),
66
66
  StatementFactory.constant(
67
67
  "output",
@@ -26,7 +26,7 @@ export namespace HttpQueryProgrammer {
26
26
 
27
27
  export const write =
28
28
  (project: IProject) =>
29
- (modulo: ts.LeftHandSideExpression) =>
29
+ (modulo: ts.LeftHandSideExpression, allowOptional: boolean = false) =>
30
30
  (type: ts.Type, name?: string): ts.ArrowFunction => {
31
31
  // GET OBJECT TYPE
32
32
  const importer: FunctionImporter = new FunctionImporter(modulo.getText());
@@ -38,7 +38,7 @@ export namespace HttpQueryProgrammer {
38
38
  escape: false,
39
39
  constant: true,
40
40
  absorb: true,
41
- validate,
41
+ validate: (meta, explore) => validate(meta, explore, allowOptional),
42
42
  })(collection)(type);
43
43
  if (result.success === false)
44
44
  throw TransformerError.from(`typia.http.${importer.method}`)(
@@ -81,6 +81,7 @@ export namespace HttpQueryProgrammer {
81
81
  export const validate = (
82
82
  meta: Metadata,
83
83
  explore: MetadataFactory.IExplore,
84
+ allowOptional: boolean = false,
84
85
  ): string[] => {
85
86
  const errors: string[] = [];
86
87
  const insert = (msg: string) => errors.push(msg);
@@ -90,8 +91,20 @@ export namespace HttpQueryProgrammer {
90
91
  if (meta.objects.length !== 1 || meta.bucket() !== 1)
91
92
  insert("only one object type is allowed.");
92
93
  if (meta.nullable === true) insert("query parameters cannot be null.");
93
- if (meta.isRequired() === false)
94
- insert("query parameters cannot be undefined.");
94
+ if (meta.isRequired() === false) {
95
+ if (allowOptional === true) {
96
+ const everyPropertiesAreOptional: boolean =
97
+ meta.size() === 1 &&
98
+ meta.objects.length === 1 &&
99
+ meta.objects[0]!.properties.every(
100
+ (p) => p.value.isRequired() === false,
101
+ );
102
+ if (everyPropertiesAreOptional === false)
103
+ insert(
104
+ "query parameters can be optional only when every properties are optional.",
105
+ );
106
+ } else insert("query parameters cannot be undefined.");
107
+ }
95
108
  } else if (
96
109
  explore.nested !== null &&
97
110
  explore.nested instanceof MetadataArrayType
@@ -12,7 +12,7 @@ import { HttpQueryProgrammer } from "./HttpQueryProgrammer";
12
12
  export namespace HttpValidateQueryProgrammer {
13
13
  export const write =
14
14
  (project: IProject) =>
15
- (modulo: ts.LeftHandSideExpression) =>
15
+ (modulo: ts.LeftHandSideExpression, allowOptional: boolean = false) =>
16
16
  (type: ts.Type, name?: string): ts.ArrowFunction =>
17
17
  ts.factory.createArrowFunction(
18
18
  undefined,
@@ -50,7 +50,7 @@ export namespace HttpValidateQueryProgrammer {
50
50
  functional: false,
51
51
  numeric: false,
52
52
  },
53
- })(modulo)(type, name),
53
+ })(modulo, allowOptional)(type, name),
54
54
  ),
55
55
  StatementFactory.constant(
56
56
  "output",