@nestia/migrate 0.7.1 → 0.7.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.
@@ -75,44 +75,56 @@ var NestMethodProgrammer;
75
75
  ])));
76
76
  return decorators;
77
77
  };
78
- const writeParameters = (components) => (importer) => (route) => {
79
- var _a;
80
- return [
81
- ...route.parameters.map(({ key, schema: value }) => typescript_1.default.factory.createParameterDeclaration([
82
- typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
83
- type: "instance",
84
- library: "@nestia/core",
85
- name: "TypedParam",
86
- })), undefined, [typescript_1.default.factory.createStringLiteral(key)])),
87
- ], undefined, StringUtil_1.StringUtil.normalize(key), undefined, SchemaProgrammer_1.SchemaProgrammer.write(components)(importer)(value))),
88
- ...(route.headers
89
- ? [
90
- writeDtoParameter({ method: "TypedHeaders", variable: "headers" })(components)(importer)(route.headers.schema),
91
- ]
92
- : []),
93
- ...(route.query
94
- ? [
95
- writeDtoParameter({ method: "TypedQuery", variable: "query" })(components)(importer)(route.query.schema),
96
- ]
97
- : []),
98
- ...(route.body
99
- ? [
100
- writeDtoParameter({
101
- method: ((_a = route.body) === null || _a === void 0 ? void 0 : _a["x-nestia-encrypted"])
102
- ? "EncryptedBody"
103
- : "TypedBody",
104
- variable: "body",
105
- })(components)(importer)(route.body.schema),
106
- ]
107
- : []),
108
- ];
109
- };
110
- const writeDtoParameter = (accessor) => (components) => (importer) => (schema) => typescript_1.default.factory.createParameterDeclaration([
111
- typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
78
+ const writeParameters = (components) => (importer) => (route) => [
79
+ ...route.parameters.map(({ key, schema: value }) => typescript_1.default.factory.createParameterDeclaration([
80
+ typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
81
+ type: "instance",
82
+ library: "@nestia/core",
83
+ name: "TypedParam",
84
+ })), undefined, [typescript_1.default.factory.createStringLiteral(key)])),
85
+ ], undefined, StringUtil_1.StringUtil.normalize(key), undefined, SchemaProgrammer_1.SchemaProgrammer.write(components)(importer)(value))),
86
+ ...(route.headers
87
+ ? [
88
+ writeDtoParameter({ method: "TypedHeaders", variable: "headers" })(components)(importer)(route.headers.schema),
89
+ ]
90
+ : []),
91
+ ...(route.query
92
+ ? [
93
+ writeDtoParameter({ method: "TypedQuery", variable: "query" })(components)(importer)(route.query.schema),
94
+ ]
95
+ : []),
96
+ ...(route.body
97
+ ? [
98
+ writeDtoParameter({
99
+ method: route.body["x-nestia-encrypted"]
100
+ ? "EncryptedBody"
101
+ : route.body.type === "application/json"
102
+ ? "TypedBody"
103
+ : route.body.type === "application/x-www-form-urlencoded"
104
+ ? ["TypedQuery", "Body"]
105
+ : route.body.type === "text/plain"
106
+ ? "PlainBody"
107
+ : route.body.type === "multipart/form-data"
108
+ ? ["TypedMultipart", "Body"]
109
+ : "TypedBody",
110
+ variable: "body",
111
+ })(components)(importer)(route.body.schema),
112
+ ]
113
+ : []),
114
+ ];
115
+ const writeDtoParameter = (accessor) => (components) => (importer) => (schema) => {
116
+ const instance = typescript_1.default.factory.createIdentifier(importer.external({
112
117
  type: "instance",
113
118
  library: "@nestia/core",
114
- name: accessor.method,
115
- })), undefined, undefined)),
116
- ], undefined, StringUtil_1.StringUtil.normalize(accessor.variable), undefined, SchemaProgrammer_1.SchemaProgrammer.write(components)(importer)(schema));
119
+ name: typeof accessor.method === "string"
120
+ ? accessor.method
121
+ : accessor.method[0],
122
+ }));
123
+ return typescript_1.default.factory.createParameterDeclaration([
124
+ typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typeof accessor.method === "string"
125
+ ? instance
126
+ : IdentifierFactory_1.IdentifierFactory.access(instance)(accessor.method[1]), undefined, undefined)),
127
+ ], undefined, StringUtil_1.StringUtil.normalize(accessor.variable), undefined, SchemaProgrammer_1.SchemaProgrammer.write(components)(importer)(schema));
128
+ };
117
129
  })(NestMethodProgrammer || (exports.NestMethodProgrammer = NestMethodProgrammer = {}));
118
130
  //# sourceMappingURL=NestMethodProgrammer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NestMethodProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestMethodProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestMethodProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestMethodProgrammer.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,8 @@ var SchemaProgrammer;
88
88
  : typescript_1.default.factory.createIntersectionTypeNode(intersection);
89
89
  };
90
90
  const writeString = (importer) => (schema) => {
91
+ if (schema.format === "binary")
92
+ return typescript_1.default.factory.createTypeReferenceNode("File");
91
93
  const intersection = [TypeFactory_1.TypeFactory.keyword("string")];
92
94
  if (schema.default !== undefined)
93
95
  intersection.push(importer.tag("Default", schema.default));
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/SchemaProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/SchemaProgrammer.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export declare namespace IMigrateRoute {
29
29
  }
30
30
  interface IBody {
31
31
  key: string;
32
- type: "text/plain" | "application/json" | "application/x-www-form-urlencoded";
32
+ type: "text/plain" | "application/json" | "application/x-www-form-urlencoded" | "multipart/form-data";
33
33
  schema: ISwaggerSchema;
34
34
  "x-nestia-encrypted"?: boolean;
35
35
  }
@@ -40,6 +40,9 @@ export declare namespace ISwaggerRoute {
40
40
  "application/x-www-form-urlencoded"?: {
41
41
  schema: ISwaggerSchema;
42
42
  };
43
+ "multipart/form-data"?: {
44
+ schema: ISwaggerSchema;
45
+ };
43
46
  "*/*"?: {
44
47
  schema: ISwaggerSchema;
45
48
  };
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
- {
2
- "name": "@nestia/migrate",
3
- "version": "0.7.1",
4
- "description": "Migration program from swagger to NestJS",
5
- "main": "lib/index.js",
6
- "typings": "lib/index.d.ts",
7
- "bin": {
8
- "@nestia/migrate": "lib/executable/migrate.js"
9
- },
10
- "scripts": {
11
- "build": "rimraf lib && tsc",
12
- "bundle": "ts-node src/executable/bundle.ts",
13
- "dev": "npm run build -- --watch",
14
- "prepare": "ts-patch install && typia patch && npm run bundle",
15
- "test": "node lib/test"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "https://github.com/samchon/nestia"
20
- },
21
- "keywords": [
22
- "migration",
23
- "swagger",
24
- "NestJS",
25
- "nestia"
26
- ],
27
- "author": "Jeongho Nam",
28
- "license": "MIT",
29
- "bugs": {
30
- "url": "https://github.com/samchon/nestia/issues"
31
- },
32
- "homepage": "https://github.com/samchon/nestia#readme",
33
- "devDependencies": {
34
- "@nestia/core": "^2.5.0",
35
- "@nestia/fetcher": "^2.5.0",
36
- "@nestjs/common": "^10.3.1",
37
- "@nestjs/core": "^10.3.1",
38
- "@nestjs/platform-express": "^10.3.1",
39
- "@nestjs/platform-fastify": "^10.3.1",
40
- "@types/express": "^4.17.21",
41
- "@types/inquirer": "^9.0.7",
42
- "@types/node": "^20.3.3",
43
- "dotenv": "^16.3.1",
44
- "dotenv-expand": "^10.0.0",
45
- "rimraf": "^5.0.1",
46
- "serialize-error": "^4.1.0",
47
- "source-map-support": "^0.5.21",
48
- "ts-node": "^10.9.1",
49
- "ts-patch": "^3.1.0",
50
- "tstl": "^2.5.13",
51
- "typescript-transform-paths": "^3.4.6"
52
- },
53
- "dependencies": {
54
- "commander": "10.0.0",
55
- "inquirer": "8.2.5",
56
- "typescript": "^5.3.3",
57
- "typia": "^5.4.1"
58
- },
59
- "files": [
60
- "lib",
61
- "src",
62
- "!lib/test",
63
- "!src/test",
64
- "package.json",
65
- "README.md",
66
- "LICENSE"
67
- ]
68
- }
1
+ {
2
+ "name": "@nestia/migrate",
3
+ "version": "0.7.2",
4
+ "description": "Migration program from swagger to NestJS",
5
+ "main": "lib/index.js",
6
+ "typings": "lib/index.d.ts",
7
+ "bin": {
8
+ "@nestia/migrate": "lib/executable/migrate.js"
9
+ },
10
+ "scripts": {
11
+ "build": "rimraf lib && tsc",
12
+ "bundle": "ts-node src/executable/bundle.ts",
13
+ "dev": "npm run build -- --watch",
14
+ "prepare": "ts-patch install && typia patch && npm run bundle",
15
+ "test": "node lib/test"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/samchon/nestia"
20
+ },
21
+ "keywords": [
22
+ "migration",
23
+ "swagger",
24
+ "NestJS",
25
+ "nestia"
26
+ ],
27
+ "author": "Jeongho Nam",
28
+ "license": "MIT",
29
+ "bugs": {
30
+ "url": "https://github.com/samchon/nestia/issues"
31
+ },
32
+ "homepage": "https://github.com/samchon/nestia#readme",
33
+ "devDependencies": {
34
+ "@nestia/core": "2.5.2",
35
+ "@nestia/fetcher": "2.5.2",
36
+ "@nestjs/common": "^10.3.1",
37
+ "@nestjs/core": "^10.3.1",
38
+ "@nestjs/platform-express": "^10.3.1",
39
+ "@nestjs/platform-fastify": "^10.3.1",
40
+ "@types/express": "^4.17.21",
41
+ "@types/inquirer": "^9.0.7",
42
+ "@types/node": "^20.3.3",
43
+ "dotenv": "^16.3.1",
44
+ "dotenv-expand": "^10.0.0",
45
+ "rimraf": "^5.0.1",
46
+ "serialize-error": "^4.1.0",
47
+ "source-map-support": "^0.5.21",
48
+ "ts-node": "^10.9.1",
49
+ "ts-patch": "^3.1.0",
50
+ "tstl": "^2.5.13",
51
+ "typescript-transform-paths": "^3.4.6"
52
+ },
53
+ "dependencies": {
54
+ "commander": "10.0.0",
55
+ "inquirer": "8.2.5",
56
+ "typescript": "^5.3.3",
57
+ "typia": "^5.4.4"
58
+ },
59
+ "files": [
60
+ "lib",
61
+ "src",
62
+ "!lib/test",
63
+ "!src/test",
64
+ "package.json",
65
+ "README.md",
66
+ "LICENSE"
67
+ ]
68
+ }
@@ -12,24 +12,28 @@ export namespace MethodAnalzyer {
12
12
  (swagger: ISwagger) =>
13
13
  (props: { path: string; method: string }) =>
14
14
  (route: ISwaggerRoute): IMigrateRoute | null => {
15
- const body = emplaceBodySchema(emplaceReference(swagger)("body"))(
16
- route.requestBody,
17
- );
18
- const success = emplaceBodySchema(emplaceReference(swagger)("response"))(
19
- route.responses?.["201"] ?? route.responses?.["200"],
20
- );
21
- if (body === false || success === false) {
22
- console.log(
23
- `Failed to migrate ${props.method.toUpperCase()} ${
24
- props.path
25
- }: @nestia/migrate supports only application/json, application/x-www-form-urlencoded or text/plain format yet.`,
15
+ const body = emplaceBodySchema("request")(
16
+ emplaceReference(swagger)("body"),
17
+ )(route.requestBody);
18
+ const success = emplaceBodySchema("response")(
19
+ emplaceReference(swagger)("response"),
20
+ )(route.responses?.["201"] ?? route.responses?.["200"]);
21
+
22
+ const failures: string[] = [];
23
+ if (body === false)
24
+ failures.push(
25
+ `supports only "application/json", "application/x-www-form-urlencoded", "multipart/form-data" and "text/plain" content type in the request body.`,
26
26
  );
27
- return null;
28
- } else if (SUPPORTED_METHODS.has(props.method.toUpperCase()) === false) {
27
+ if (success === false)
28
+ failures.push(
29
+ `supports only "application/json", "application/x-www-form-urlencoded" and "text/plain" content type in the response body.`,
30
+ );
31
+ if (SUPPORTED_METHODS.has(props.method.toUpperCase()) === false)
32
+ failures.push(`does not support ${props.method.toUpperCase()} method.`);
33
+ if (failures.length) {
29
34
  console.log(
30
- `Failed to migrate ${props.method.toUpperCase()} ${
31
- props.path
32
- }: @nestia/migrate does not support ${props.method.toUpperCase()} method.`,
35
+ `Failed to migrate ${props.method.toUpperCase()} ${props.path}`,
36
+ ...failures.map((f) => ` - ${f}`),
33
37
  );
34
38
  return null;
35
39
  }
@@ -189,8 +193,8 @@ export namespace MethodAnalzyer {
189
193
  schema: query,
190
194
  }
191
195
  : null,
192
- body,
193
- success,
196
+ body: body as IMigrateRoute.IBody,
197
+ success: success as IMigrateRoute.IBody,
194
198
  exceptions: Object.fromEntries(
195
199
  Object.entries(route.responses ?? {})
196
200
  .filter(
@@ -264,6 +268,7 @@ export namespace MethodAnalzyer {
264
268
  (SwaggerTypeChecker.isArray(schema) && isNotObjectLiteral(schema.items));
265
269
 
266
270
  const emplaceBodySchema =
271
+ (from: "request" | "response") =>
267
272
  (emplacer: (schema: ISwaggerSchema) => ISwaggerSchema.IReference) =>
268
273
  (meta?: {
269
274
  description?: string;
@@ -305,6 +310,20 @@ export namespace MethodAnalzyer {
305
310
  const text = entries.find((e) => e[0].includes("text/plain"));
306
311
  if (text)
307
312
  return { type: "text/plain", key: "body", schema: { type: "string" } };
313
+
314
+ if (from === "request") {
315
+ const multipart = entries.find((e) =>
316
+ e[0].includes("multipart/form-data"),
317
+ );
318
+ if (multipart) {
319
+ const { schema } = multipart[1];
320
+ return {
321
+ type: "multipart/form-data",
322
+ key: "body",
323
+ schema: isNotObjectLiteral(schema) ? schema : emplacer(schema),
324
+ };
325
+ }
326
+ }
308
327
  return false;
309
328
  };
310
329
 
@@ -52,7 +52,7 @@ export const NEST_TEMPLATE = [
52
52
  {
53
53
  "location": "",
54
54
  "file": "package.json",
55
- "content": "{\r\n \"private\": true,\r\n \"name\": \"@ORGANIZATION/PROJECT\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"Starter kit of Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"scripts\": {\r\n \"test\": \"node bin/test\",\r\n \"test:webpack\": \"npm run webpack && node bin/test/webpack.js\",\r\n \"------------------------BUILDS------------------------\": \"\",\r\n \"build\": \"npm run build:sdk && npm run build:main && npm run build:test\",\r\n \"build:api\": \"rimraf packages/api/lib && npm run build:sdk && tsc -p packages/api/tsconfig.json\",\r\n \"build:main\": \"rimraf lib && tsc\",\r\n \"build:sdk\": \"rimraf src/api/functional && nestia sdk\",\r\n \"build:swagger\": \"npx nestia swagger\",\r\n \"build:test\": \"rimraf bin && tsc -p test/tsconfig.json\",\r\n \"dev\": \"npm run build:test -- --watch\",\r\n \"eslint\": \"eslint src && eslint test\",\r\n \"eslint:fix\": \"eslint --fix src && eslint --fix test\",\r\n \"prepare\": \"ts-patch install && typia patch\",\r\n \"prettier\": \"prettier src --write && prettier test --write\",\r\n \"------------------------WEBPACK------------------------\": \"\",\r\n \"webpack\": \"rimraf dist && webpack\",\r\n \"webpack:start\": \"cd dist && node dist/server\",\r\n \"------------------------DEPLOYS------------------------\": \"\",\r\n \"package:api\": \"npm run build:swagger && npm run build:api && cd packages/api && npm publish\",\r\n \"start\": \"node lib/executable/server\",\r\n \"start:swagger\": \"ts-node src/executable/swagger.ts\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia-start\"\r\n },\r\n \"keywords\": [\r\n \"nestia\",\r\n \"template\",\r\n \"boilerplate\"\r\n ],\r\n \"author\": \"AUTHOR\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia-start/issues\"\r\n },\r\n \"homepage\": \"https://github.com/samchon/nestia-start#readme\",\r\n \"devDependencies\": {\r\n \"@nestia/e2e\": \"^0.4.1\",\r\n \"@nestia/sdk\": \"^2.5.0\",\r\n \"@trivago/prettier-plugin-sort-imports\": \"^4.3.0\",\r\n \"@types/cli\": \"^0.11.21\",\r\n \"@types/express\": \"^4.17.21\",\r\n \"@types/inquirer\": \"^8.2.5\",\r\n \"@types/node\": \"^18.11.0\",\r\n \"@types/uuid\": \"^8.3.4\",\r\n \"@typescript-eslint/eslint-plugin\": \"^6.19.1\",\r\n \"@typescript-eslint/parser\": \"^6.19.1\",\r\n \"chalk\": \"^4.1.0\",\r\n \"cli\": \"^1.0.1\",\r\n \"copy-webpack-plugin\": \"^11.0.0\",\r\n \"eslint-plugin-deprecation\": \"^2.0.0\",\r\n \"express\": \"^4.18.2\",\r\n \"nestia\": \"^5.2.1\",\r\n \"prettier\": \"^3.2.4\",\r\n \"prettier-plugin-prisma\": \"^5.0.0\",\r\n \"rimraf\": \"^3.0.2\",\r\n \"source-map-support\": \"^0.5.21\",\r\n \"swagger-ui-express\": \"^5.0.0\",\r\n \"ts-loader\": \"^9.5.1\",\r\n \"ts-node\": \"^10.9.1\",\r\n \"ts-patch\": \"^3.0.2\",\r\n \"typescript\": \"^5.3.2\",\r\n \"typescript-transform-paths\": \"^3.4.6\",\r\n \"webpack\": \"^5.89.0\",\r\n \"webpack-cli\": \"^5.1.4\",\r\n \"write-file-webpack-plugin\": \"^4.5.1\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/core\": \"^2.5.0\",\r\n \"@nestia/fetcher\": \"^2.5.0\",\r\n \"@nestjs/common\": \"^10.3.0\",\r\n \"@nestjs/core\": \"^10.3.0\",\r\n \"@nestjs/platform-fastify\": \"^10.3.0\",\r\n \"commander\": \"10.0.0\",\r\n \"dotenv\": \"^16.3.1\",\r\n \"dotenv-expand\": \"^10.0.0\",\r\n \"inquirer\": \"8.2.5\",\r\n \"serialize-error\": \"^4.1.0\",\r\n \"tstl\": \"^2.5.13\",\r\n \"typia\": \"^5.4.1\",\r\n \"uuid\": \"^9.0.0\"\r\n },\r\n \"stackblitz\": {\r\n \"startCommand\": \"npm run prepare && npm run build:test && npm run test\"\r\n }\r\n}"
55
+ "content": "{\r\n \"private\": true,\r\n \"name\": \"@ORGANIZATION/PROJECT\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"Starter kit of Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"scripts\": {\r\n \"test\": \"node bin/test\",\r\n \"test:webpack\": \"npm run webpack && node bin/test/webpack.js\",\r\n \"------------------------BUILDS------------------------\": \"\",\r\n \"build\": \"npm run build:sdk && npm run build:main && npm run build:test\",\r\n \"build:api\": \"rimraf packages/api/lib && npm run build:sdk && tsc -p packages/api/tsconfig.json\",\r\n \"build:main\": \"rimraf lib && tsc\",\r\n \"build:sdk\": \"rimraf src/api/functional && nestia sdk\",\r\n \"build:swagger\": \"npx nestia swagger\",\r\n \"build:test\": \"rimraf bin && tsc -p test/tsconfig.json\",\r\n \"dev\": \"npm run build:test -- --watch\",\r\n \"eslint\": \"eslint src && eslint test\",\r\n \"eslint:fix\": \"eslint --fix src && eslint --fix test\",\r\n \"prepare\": \"ts-patch install && typia patch\",\r\n \"prettier\": \"prettier src --write && prettier test --write\",\r\n \"------------------------WEBPACK------------------------\": \"\",\r\n \"webpack\": \"rimraf dist && webpack\",\r\n \"webpack:start\": \"cd dist && node dist/server\",\r\n \"------------------------DEPLOYS------------------------\": \"\",\r\n \"package:api\": \"npm run build:swagger && npm run build:api && cd packages/api && npm publish\",\r\n \"start\": \"node lib/executable/server\",\r\n \"start:swagger\": \"ts-node src/executable/swagger.ts\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia-start\"\r\n },\r\n \"keywords\": [\r\n \"nestia\",\r\n \"template\",\r\n \"boilerplate\"\r\n ],\r\n \"author\": \"AUTHOR\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia-start/issues\"\r\n },\r\n \"homepage\": \"https://github.com/samchon/nestia-start#readme\",\r\n \"devDependencies\": {\r\n \"@nestia/e2e\": \"^0.4.1\",\r\n \"@nestia/sdk\": \"^2.5.2\",\r\n \"@trivago/prettier-plugin-sort-imports\": \"^4.3.0\",\r\n \"@types/cli\": \"^0.11.21\",\r\n \"@types/express\": \"^4.17.21\",\r\n \"@types/inquirer\": \"^8.2.5\",\r\n \"@types/node\": \"^18.11.0\",\r\n \"@types/uuid\": \"^8.3.4\",\r\n \"@typescript-eslint/eslint-plugin\": \"^6.19.1\",\r\n \"@typescript-eslint/parser\": \"^6.19.1\",\r\n \"chalk\": \"^4.1.0\",\r\n \"cli\": \"^1.0.1\",\r\n \"copy-webpack-plugin\": \"^11.0.0\",\r\n \"eslint-plugin-deprecation\": \"^2.0.0\",\r\n \"express\": \"^4.18.2\",\r\n \"nestia\": \"^5.2.1\",\r\n \"prettier\": \"^3.2.4\",\r\n \"prettier-plugin-prisma\": \"^5.0.0\",\r\n \"rimraf\": \"^3.0.2\",\r\n \"source-map-support\": \"^0.5.21\",\r\n \"swagger-ui-express\": \"^5.0.0\",\r\n \"ts-loader\": \"^9.5.1\",\r\n \"ts-node\": \"^10.9.1\",\r\n \"ts-patch\": \"^3.0.2\",\r\n \"typescript\": \"^5.3.2\",\r\n \"typescript-transform-paths\": \"^3.4.6\",\r\n \"webpack\": \"^5.89.0\",\r\n \"webpack-cli\": \"^5.1.4\",\r\n \"write-file-webpack-plugin\": \"^4.5.1\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/core\": \"^2.5.2\",\r\n \"@nestia/fetcher\": \"^2.5.2\",\r\n \"@nestjs/common\": \"^10.3.0\",\r\n \"@nestjs/core\": \"^10.3.0\",\r\n \"@nestjs/platform-fastify\": \"^10.3.0\",\r\n \"commander\": \"10.0.0\",\r\n \"dotenv\": \"^16.3.1\",\r\n \"dotenv-expand\": \"^10.0.0\",\r\n \"inquirer\": \"8.2.5\",\r\n \"serialize-error\": \"^4.1.0\",\r\n \"tstl\": \"^2.5.13\",\r\n \"typia\": \"^5.4.4\",\r\n \"uuid\": \"^9.0.0\"\r\n },\r\n \"stackblitz\": {\r\n \"startCommand\": \"npm run prepare && npm run build:test && npm run test\"\r\n }\r\n}"
56
56
  },
57
57
  {
58
58
  "location": "packages/api",
@@ -67,12 +67,12 @@ export const NEST_TEMPLATE = [
67
67
  {
68
68
  "location": "packages/api",
69
69
  "file": "package.json",
70
- "content": "{\r\n \"name\": \"@ORGANIZATION/PROJECT-api\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"SDK library generated by Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"typings\": \"lib/index.d.ts\",\r\n \"scripts\": {\r\n \"build\": \"npm run build:sdk && npm run compile\",\r\n \"build:sdk\": \"rimraf ../../src/api/functional && cd ../.. && npx nestia sdk && cd packages/api\",\r\n \"compile\": \"rimraf lib && tsc\",\r\n \"deploy\": \"npm run build && npm publish\",\r\n \"prepare\": \"ts-patch install && typia patch\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia\"\r\n },\r\n \"author\": \"Jeongho Nam\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia/issues\"\r\n },\r\n \"homepage\": \"https://nestia.io\",\r\n \"files\": [\r\n \"lib\",\r\n \"swagger.json\",\r\n \"package.json\",\r\n \"README.md\"\r\n ],\r\n \"devDependencies\": {\r\n \"rimraf\": \"^5.0.5\",\r\n \"ts-node\": \"^10.9.2\",\r\n \"ts-patch\": \"^3.1.2\",\r\n \"typescript\": \"^5.3.3\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/fetcher\": \"^2.5.0\",\r\n \"typia\": \"^5.4.1\"\r\n }\r\n}"
70
+ "content": "{\r\n \"name\": \"@ORGANIZATION/PROJECT-api\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"SDK library generated by Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"typings\": \"lib/index.d.ts\",\r\n \"scripts\": {\r\n \"build\": \"npm run build:sdk && npm run compile\",\r\n \"build:sdk\": \"rimraf ../../src/api/functional && cd ../.. && npx nestia sdk && cd packages/api\",\r\n \"compile\": \"rimraf lib && tsc\",\r\n \"deploy\": \"npm run build && npm publish\",\r\n \"prepare\": \"ts-patch install && typia patch\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia\"\r\n },\r\n \"author\": \"Jeongho Nam\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia/issues\"\r\n },\r\n \"homepage\": \"https://nestia.io\",\r\n \"files\": [\r\n \"lib\",\r\n \"swagger.json\",\r\n \"package.json\",\r\n \"README.md\"\r\n ],\r\n \"devDependencies\": {\r\n \"rimraf\": \"^5.0.5\",\r\n \"ts-node\": \"^10.9.2\",\r\n \"ts-patch\": \"^3.1.2\",\r\n \"typescript\": \"^5.3.3\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/fetcher\": \"^2.5.2\",\r\n \"typia\": \"^5.4.4\"\r\n }\r\n}"
71
71
  },
72
72
  {
73
73
  "location": "packages/api",
74
74
  "file": "README.md",
75
- "content": "# SDK Library\r\nThis is a SDK library generated by [`nestia`](https://nestia.io).\r\n\r\nWith this SDK library, you can easily and safely interact with backend server.\r\n\r\nJust import and call some API functions like gif image below:\r\n\r\n![nestia-sdk-demo](https://user-images.githubusercontent.com/13158709/215004990-368c589d-7101-404e-b81b-fbc936382f05.gif)\r\n\r\n> Left is server code, and right is client code utilizing the SDK\r\n\r\n\r\n\r\n\r\n# What [`Nestia`](https://nestia.io) is:\r\n![Nestia Logo](https://nestia.io/logo.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/nestia/blob/master/LICENSE)\r\n[![npm version](https://img.shields.io/npm/v/@nestia/core.svg)](https://www.npmjs.com/package/@nestia/core)\r\n[![Downloads](https://img.shields.io/npm/dm/nestia.svg)](https://www.npmjs.com/package/nestia)\r\n[![Build Status](https://github.com/samchon/nestia/workflows/build/badge.svg)](https://github.com/samchon/nestia/actions?query=workflow%3Abuild)\r\n[![Guide Documents](https://img.shields.io/badge/guide-documents-forestgreen)](https://nestia.io/docs/)\r\n\r\n[Nestia](https://nestia.io) is a set of helper libraries for NestJS, supporting below features:\r\n\r\n - `@nestia/core`: super-fast decorators\r\n - `@nestia/sdk`\r\n - SDK generator for clients\r\n - Swagger generator evolved than ever\r\n - Automatic E2E test functions generator\r\n - `nestia`: just CLI (command line interface) tool\r\n\r\n> **Note**\r\n> \r\n> - **Only one line** required, with pure TypeScript type\r\n> - Runtime validator is **20,000x faster** than `class-validator`\r\n> - JSON serialization is **200x faster** than `class-transformer`\r\n> - SDK is similar with [tRPC](https://trpc.io), but much advanced"
75
+ "content": "# SDK Library\r\nThis is a SDK library generated by [`nestia`](https://nestia.io).\r\n\r\nWith this SDK library, you can easily and safely interact with backend server.\r\n\r\nJust import and call some API functions like gif image below:\r\n\r\n![nestia-sdk-demo](https://user-images.githubusercontent.com/13158709/215004990-368c589d-7101-404e-b81b-fbc936382f05.gif)\r\n\r\n> Left is server code, and right is client code utilizing the SDK\r\n\r\n\r\n\r\n\r\n# What [`Nestia`](https://nestia.io) is:\r\n![Nestia Logo](https://nestia.io/logo.png)\r\n\r\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/nestia/blob/master/LICENSE)\r\n[![npm version](https://img.shields.io/npm/v/@nestia/core.svg)](https://www.npmjs.com/package/@nestia/core)\r\n[![Downloads](https://img.shields.io/npm/dm/@nestia/core.svg)](https://www.npmjs.com/package/@nestia/core)\r\n[![Build Status](https://github.com/samchon/nestia/workflows/build/badge.svg)](https://github.com/samchon/nestia/actions?query=workflow%3Abuild)\r\n[![Guide Documents](https://img.shields.io/badge/guide-documents-forestgreen)](https://nestia.io/docs/)\r\n\r\nNestia is a set of helper libraries for NestJS, supporting below features:\r\n\r\n - `@nestia/core`: super-fast decorators\r\n - `@nestia/sdk`:\r\n - Swagger generator evolved than ever\r\n - SDK library generator for clients\r\n - Mockup Simulator for client applications\r\n - Automatic E2E test functions generator\r\n - `@nestia/migrate`: migration from Swagger to NestJS\r\n - `nestia`: just CLI (command line interface) tool\r\n\r\n> **Note**\r\n> \r\n> - **Only one line** required, with pure TypeScript type\r\n> - Enhance performance **30x** up\r\n> - Runtime validator is **20,000x faster** than `class-validator`\r\n> - JSON serialization is **200x faster** than `class-transformer`\r\n> - Software Development Kit\r\n> - SDK is a collection of `fetch` functions with type definitions like [tRPC](https://trpc.io/)\r\n> - Mockup simulator means embedded backend simulator in SDK\r\n> - similar with [msw](https://mswjs.io/), but fully automated"
76
76
  },
77
77
  {
78
78
  "location": "packages/api",
@@ -12,7 +12,7 @@ export const SDK_TEMPLATE = [
12
12
  {
13
13
  "location": "",
14
14
  "file": "package.json",
15
- "content": "{\r\n \"name\": \"@ORGANIZATION/PROJECT-api\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"SDK library generated by Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"typings\": \"lib/index.d.ts\",\r\n \"scripts\": {\r\n \"build\": \"rimraf lib && tsc\",\r\n \"prepare\": \"ts-patch install && typia patch\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia\"\r\n },\r\n \"author\": \"Jeongho Nam\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia/issues\"\r\n },\r\n \"homepage\": \"https://nestia.io\",\r\n \"files\": [\r\n \"lib\",\r\n \"swagger.json\",\r\n \"package.json\",\r\n \"README.md\"\r\n ],\r\n \"devDependencies\": {\r\n \"rimraf\": \"^5.0.5\",\r\n \"ts-node\": \"^10.9.2\",\r\n \"ts-patch\": \"^3.1.2\",\r\n \"typescript\": \"^5.3.3\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/fetcher\": \"^2.5.0\",\r\n \"typia\": \"^5.4.1\"\r\n }\r\n}"
15
+ "content": "{\r\n \"name\": \"@ORGANIZATION/PROJECT-api\",\r\n \"version\": \"0.1.0\",\r\n \"description\": \"SDK library generated by Nestia\",\r\n \"main\": \"lib/index.js\",\r\n \"typings\": \"lib/index.d.ts\",\r\n \"scripts\": {\r\n \"build\": \"rimraf lib && tsc\",\r\n \"prepare\": \"ts-patch install && typia patch\"\r\n },\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/samchon/nestia\"\r\n },\r\n \"author\": \"Jeongho Nam\",\r\n \"license\": \"MIT\",\r\n \"bugs\": {\r\n \"url\": \"https://github.com/samchon/nestia/issues\"\r\n },\r\n \"homepage\": \"https://nestia.io\",\r\n \"files\": [\r\n \"lib\",\r\n \"swagger.json\",\r\n \"package.json\",\r\n \"README.md\"\r\n ],\r\n \"devDependencies\": {\r\n \"rimraf\": \"^5.0.5\",\r\n \"ts-node\": \"^10.9.2\",\r\n \"ts-patch\": \"^3.1.2\",\r\n \"typescript\": \"^5.3.3\"\r\n },\r\n \"dependencies\": {\r\n \"@nestia/fetcher\": \"^2.5.2\",\r\n \"typia\": \"^5.4.4\"\r\n }\r\n}"
16
16
  },
17
17
  {
18
18
  "location": "",
@@ -99,8 +99,7 @@ export namespace ApiFunctionProgrammer {
99
99
  (importer: ImportProgrammer) =>
100
100
  (props: IProps): ts.Statement[] => {
101
101
  const encrypted: boolean = !!props.route.success?.["x-nestia-encrypted"];
102
- const contentType: string =
103
- props.route.success?.type ?? "application/json";
102
+ const contentType: string = props.route.body?.type ?? "application/json";
104
103
 
105
104
  const caller = () =>
106
105
  ts.factory.createCallExpression(
@@ -115,7 +114,7 @@ export namespace ApiFunctionProgrammer {
115
114
  )("fetch"),
116
115
  undefined,
117
116
  [
118
- contentType
117
+ contentType && contentType !== "multipart/form-data"
119
118
  ? ts.factory.createObjectLiteralExpression(
120
119
  [
121
120
  ts.factory.createSpreadAssignment(
@@ -119,7 +119,7 @@ export namespace ApiNamespaceProgrammer {
119
119
  "request",
120
120
  props.route.body
121
121
  ? LiteralFactory.generate({
122
- type: "application/json",
122
+ type: props.route.body.type,
123
123
  encrypted: !!props.route.body["x-nestia-encrypted"],
124
124
  })
125
125
  : ts.factory.createNull(),
@@ -190,9 +190,17 @@ export namespace NestMethodProgrammer {
190
190
  ...(route.body
191
191
  ? [
192
192
  writeDtoParameter({
193
- method: route.body?.["x-nestia-encrypted"]
193
+ method: route.body["x-nestia-encrypted"]
194
194
  ? "EncryptedBody"
195
- : "TypedBody",
195
+ : route.body.type === "application/json"
196
+ ? "TypedBody"
197
+ : route.body.type === "application/x-www-form-urlencoded"
198
+ ? ["TypedQuery", "Body"]
199
+ : route.body.type === "text/plain"
200
+ ? "PlainBody"
201
+ : route.body.type === "multipart/form-data"
202
+ ? ["TypedMultipart", "Body"]
203
+ : "TypedBody",
196
204
  variable: "body",
197
205
  })(components)(importer)(route.body.schema),
198
206
  ]
@@ -200,21 +208,27 @@ export namespace NestMethodProgrammer {
200
208
  ];
201
209
 
202
210
  const writeDtoParameter =
203
- (accessor: { method: string; variable: string }) =>
211
+ (accessor: { method: string | [string, string]; variable: string }) =>
204
212
  (components: ISwaggerComponents) =>
205
213
  (importer: ImportProgrammer) =>
206
- (schema: ISwaggerSchema): ts.ParameterDeclaration =>
207
- ts.factory.createParameterDeclaration(
214
+ (schema: ISwaggerSchema): ts.ParameterDeclaration => {
215
+ const instance = ts.factory.createIdentifier(
216
+ importer.external({
217
+ type: "instance",
218
+ library: "@nestia/core",
219
+ name:
220
+ typeof accessor.method === "string"
221
+ ? accessor.method
222
+ : accessor.method[0],
223
+ }),
224
+ );
225
+ return ts.factory.createParameterDeclaration(
208
226
  [
209
227
  ts.factory.createDecorator(
210
228
  ts.factory.createCallExpression(
211
- ts.factory.createIdentifier(
212
- importer.external({
213
- type: "instance",
214
- library: "@nestia/core",
215
- name: accessor.method,
216
- }),
217
- ),
229
+ typeof accessor.method === "string"
230
+ ? instance
231
+ : IdentifierFactory.access(instance)(accessor.method[1]),
218
232
  undefined,
219
233
  undefined,
220
234
  ),
@@ -225,4 +239,5 @@ export namespace NestMethodProgrammer {
225
239
  undefined,
226
240
  SchemaProgrammer.write(components)(importer)(schema),
227
241
  );
242
+ };
228
243
  }
@@ -117,6 +117,9 @@ export namespace SchemaProgrammer {
117
117
  const writeString =
118
118
  (importer: ImportProgrammer) =>
119
119
  (schema: ISwaggerSchema.IString): ts.TypeNode => {
120
+ if (schema.format === "binary")
121
+ return ts.factory.createTypeReferenceNode("File");
122
+
120
123
  const intersection: ts.TypeNode[] = [TypeFactory.keyword("string")];
121
124
  if (schema.default !== undefined)
122
125
  intersection.push(importer.tag("Default", schema.default));