nestia 4.3.2 → 4.4.0-dev.20230807

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
@@ -11,21 +11,27 @@ Nestia is a set of helper libraries for NestJS, supporting below features:
11
11
 
12
12
  - `@nestia/core`: super-fast decorators
13
13
  - `@nestia/sdk`:
14
- - SDK generator for clients
15
14
  - Swagger generator evolved than ever
15
+ - SDK library generator for clients
16
+ - Mockup Simulator for client applications
16
17
  - Automatic E2E test functions generator
18
+ - `@nestia/migrate`: migration from Swagger to NestJS
17
19
  - `nestia`: just CLI (command line interface) tool
18
20
 
19
21
  > **Note**
20
22
  >
21
23
  > - **Only one line** required, with pure TypeScript type
22
- > - Runtime validator is **20,000x faster** than `class-validator`
23
- > - JSON serialization is **200x faster** than `class-transformer`
24
- > - SDK is similar with [tRPC](https://trpc.io), but much advanced
24
+ > - Enhance performance **30x** up
25
+ > - Runtime validator is **20,000x faster** than `class-validator`
26
+ > - JSON serialization is **200x faster** than `class-transformer`
27
+ > - Software Development Kit
28
+ > - SDK is a collection of `fetch` functions with type definitions like [tRPC](https://trpc.io/)
29
+ > - Mockup simulator means embedded backend simulator in SDK
30
+ > - similar with [msw](https://mswjs.io/), but fully automated
25
31
 
26
32
  ![nestia-sdk-demo](https://user-images.githubusercontent.com/13158709/215004990-368c589d-7101-404e-b81b-fbc936382f05.gif)
27
33
 
28
- > Left is server code, and right is client code utilizing SDK
34
+ > Left is NestJS server code, and right is client (frontend) code utilizing SDK
29
35
 
30
36
 
31
37
 
@@ -46,9 +52,9 @@ Check out the document in the [website](https://nestia.io/docs/):
46
52
  ### 🏠 Home
47
53
  - [Introduction](https://nestia.io/docs/)
48
54
  - [Setup](https://nestia.io/docs/setup/)
55
+ - [Pure TypeScript](https://nestia.io/docs/pure)
49
56
 
50
57
  ### 📖 Features
51
- - [Pure TypeScript](https://nestia.io/docs/pure)
52
58
  - Core Library
53
59
  - [TypedRoute](https://nestia.io/docs/core/TypedRoute/)
54
60
  - [TypedBody](https://nestia.io/docs/core/TypedBody/)
@@ -58,3 +64,9 @@ Check out the document in the [website](https://nestia.io/docs/):
58
64
  - [Swagger Documents](https://nestia.io/docs/sdk/swagger/)
59
65
  - [SDK Library](https://nestia.io/docs/sdk/sdk/)
60
66
  - [E2E Functions](https://nestia.io/docs/sdk/e2e/)
67
+ - [Mockup Simulator](https://nestia.io/docs/sdk/simulator/)
68
+ - [Swagger to NestJS](https://nestia.io/docs/migrate/)
69
+
70
+ ### 🔗 Appendix
71
+ - [⇲ Benchmark Result](https://github.com/samchon/nestia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
72
+ - [⇲ `dev.to` Articles](https://dev.to/samchon/series/22751)
@@ -30,23 +30,35 @@ var NestiaSetupWizard;
30
30
  pack.install({ dev: true, modulo: "ts-node", version: "latest" });
31
31
  pack.install({ dev: true, modulo: "typescript", version: "latest" });
32
32
  (_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (() => {
33
- CommandExecutor_1.CommandExecutor.run("npx tsc --init");
33
+ const runner = pack.manager === "npm" ? "npx" : pack.manager;
34
+ CommandExecutor_1.CommandExecutor.run(`${runner} tsc --init`);
34
35
  return (args.project = "tsconfig.json");
35
36
  })());
36
37
  // SETUP TRANSFORMER
37
38
  yield pack.save((data) => {
38
39
  var _a;
40
+ // COMPOSE POSTINSTALL COMMAND
39
41
  (_a = data.scripts) !== null && _a !== void 0 ? _a : (data.scripts = {});
40
- if (typeof data.scripts.prepare === "string" &&
41
- data.scripts.prepare.length) {
42
- if (data.scripts.prepare.indexOf("ts-patch install") === -1)
43
- data.scripts.prepare =
44
- "ts-patch install && " + data.scripts.prepare;
42
+ if (typeof data.scripts.postinstall === "string" &&
43
+ data.scripts.postinstall.trim().length) {
44
+ if (data.scripts.postinstall.indexOf("ts-patch install") === -1)
45
+ data.scripts.postinstall =
46
+ "ts-patch install && " + data.scripts.postinstall;
45
47
  }
46
48
  else
47
- data.scripts.prepare = "ts-patch install";
49
+ data.scripts.postinstall = "ts-patch install";
50
+ // FOR OLDER VERSIONS
51
+ if (typeof data.scripts.prepare === "string") {
52
+ data.scripts.prepare = data.scripts.prepare
53
+ .split("&&")
54
+ .map((str) => str.trim())
55
+ .filter((str) => str.indexOf("ts-patch install") === -1)
56
+ .join(" && ");
57
+ if (data.scripts.prepare.length === 0)
58
+ delete data.scripts.prepare;
59
+ }
48
60
  });
49
- CommandExecutor_1.CommandExecutor.run("npm run prepare");
61
+ CommandExecutor_1.CommandExecutor.run(`${pack.manager} run postinstall`);
50
62
  // INSTALL AND CONFIGURE TYPIA + NESTIA
51
63
  pack.install({ dev: false, modulo: "typia", version: "latest" });
52
64
  pack.install({ dev: false, modulo: "@nestia/core", version: "latest" });
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ var ArgumentParser;
21
21
  function parse(pack) {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
23
  // PREPARE ASSETS
24
- commander_1.default.program.option("--manager [manager", "package manager");
24
+ commander_1.default.program.option("--manager [manager]", "package manager");
25
25
  commander_1.default.program.option("--project [project]", "tsconfig.json file location");
26
26
  // INTERNAL PROCEDURES
27
27
  const questioned = { value: false };
@@ -38,13 +38,14 @@ var ArgumentParser;
38
38
  commander_1.default.program.parseAsync().catch(reject);
39
39
  });
40
40
  };
41
- const select = (name) => (message) => (choices) => __awaiter(this, void 0, void 0, function* () {
41
+ const select = (name) => (message) => (choices, filter) => __awaiter(this, void 0, void 0, function* () {
42
42
  questioned.value = true;
43
43
  return (yield inquirer_1.default.createPromptModule()({
44
44
  type: "list",
45
45
  name: name,
46
46
  message: message,
47
47
  choices: choices,
48
+ filter,
48
49
  }))[name];
49
50
  });
50
51
  const configure = () => __awaiter(this, void 0, void 0, function* () {
@@ -73,8 +74,8 @@ var ArgumentParser;
73
74
  (_a = options.manager) !== null && _a !== void 0 ? _a : (options.manager = yield select("manager")("Package Manager")([
74
75
  "npm",
75
76
  "pnpm",
76
- "yarn",
77
- ]));
77
+ "yarn (berry is not supported)",
78
+ ], (value) => value.split(" ")[0]));
78
79
  pack.manager = options.manager;
79
80
  (_b = options.project) !== null && _b !== void 0 ? _b : (options.project = yield configure());
80
81
  if (questioned.value)
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentParser.js","sourceRoot":"","sources":["../../src/internal/ArgumentParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentParser.js","sourceRoot":"","sources":["../../src/internal/ArgumentParser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestia",
3
- "version": "4.3.2",
3
+ "version": "4.4.0-dev.20230807",
4
4
  "description": "Nestia CLI tool",
5
5
  "main": "bin/index.js",
6
6
  "bin": {
@@ -9,7 +9,7 @@
9
9
  "scripts": {
10
10
  "build": "rimraf bin && tsc",
11
11
  "prettier": "prettier ./src/**/*.ts --write",
12
- "package:next": "npm publish --access public --tag next"
12
+ "package:next": "npm run build && npm publish --access public --tag next"
13
13
  },
14
14
  "repository": {
15
15
  "type": "git",
@@ -36,14 +36,14 @@
36
36
  "inquirer": "^8.2.5"
37
37
  },
38
38
  "devDependencies": {
39
- "@nestia/core": "^1.3.0",
40
- "@nestia/sdk": "^1.3.0",
39
+ "@nestia/core": "^1.6.1",
40
+ "@nestia/sdk": "^1.6.1",
41
41
  "@trivago/prettier-plugin-sort-imports": "^4.1.1",
42
42
  "@types/inquirer": "^9.0.3",
43
43
  "@types/node": "^18.11.16",
44
44
  "prettier": "^2.8.7",
45
45
  "rimraf": "^3.0.2",
46
- "typescript": "^5.1.3"
46
+ "typescript": "^5.1.6"
47
47
  },
48
48
  "files": [
49
49
  "bin",
@@ -20,23 +20,37 @@ export namespace NestiaSetupWizard {
20
20
  pack.install({ dev: true, modulo: "ts-node", version: "latest" });
21
21
  pack.install({ dev: true, modulo: "typescript", version: "latest" });
22
22
  args.project ??= (() => {
23
- CommandExecutor.run("npx tsc --init");
23
+ const runner: string =
24
+ pack.manager === "npm" ? "npx" : pack.manager;
25
+ CommandExecutor.run(`${runner} tsc --init`);
24
26
  return (args.project = "tsconfig.json");
25
27
  })();
26
28
 
27
29
  // SETUP TRANSFORMER
28
30
  await pack.save((data) => {
31
+ // COMPOSE POSTINSTALL COMMAND
29
32
  data.scripts ??= {};
30
33
  if (
31
- typeof data.scripts.prepare === "string" &&
32
- data.scripts.prepare.length
34
+ typeof data.scripts.postinstall === "string" &&
35
+ data.scripts.postinstall.trim().length
33
36
  ) {
34
- if (data.scripts.prepare.indexOf("ts-patch install") === -1)
35
- data.scripts.prepare =
36
- "ts-patch install && " + data.scripts.prepare;
37
- } else data.scripts.prepare = "ts-patch install";
37
+ if (data.scripts.postinstall.indexOf("ts-patch install") === -1)
38
+ data.scripts.postinstall =
39
+ "ts-patch install && " + data.scripts.postinstall;
40
+ } else data.scripts.postinstall = "ts-patch install";
41
+
42
+ // FOR OLDER VERSIONS
43
+ if (typeof data.scripts.prepare === "string") {
44
+ data.scripts.prepare = data.scripts.prepare
45
+ .split("&&")
46
+ .map((str) => str.trim())
47
+ .filter((str) => str.indexOf("ts-patch install") === -1)
48
+ .join(" && ");
49
+ if (data.scripts.prepare.length === 0)
50
+ delete data.scripts.prepare;
51
+ }
38
52
  });
39
- CommandExecutor.run("npm run prepare");
53
+ CommandExecutor.run(`${pack.manager} run postinstall`);
40
54
 
41
55
  // INSTALL AND CONFIGURE TYPIA + NESTIA
42
56
  pack.install({ dev: false, modulo: "typia", version: "latest" });
@@ -12,7 +12,7 @@ export namespace ArgumentParser {
12
12
 
13
13
  export async function parse(pack: PackageManager): Promise<IArguments> {
14
14
  // PREPARE ASSETS
15
- commander.program.option("--manager [manager", "package manager");
15
+ commander.program.option("--manager [manager]", "package manager");
16
16
  commander.program.option(
17
17
  "--project [project]",
18
18
  "tsconfig.json file location",
@@ -39,6 +39,7 @@ export namespace ArgumentParser {
39
39
  (message: string) =>
40
40
  async <Choice extends string>(
41
41
  choices: Choice[],
42
+ filter?: (value: string) => Choice,
42
43
  ): Promise<Choice> => {
43
44
  questioned.value = true;
44
45
  return (
@@ -47,6 +48,7 @@ export namespace ArgumentParser {
47
48
  name: name,
48
49
  message: message,
49
50
  choices: choices,
51
+ filter,
50
52
  })
51
53
  )[name];
52
54
  };
@@ -78,11 +80,14 @@ export namespace ArgumentParser {
78
80
 
79
81
  // DO CONSTRUCT
80
82
  return action(async (options) => {
81
- options.manager ??= await select("manager")("Package Manager")([
82
- "npm" as const,
83
- "pnpm" as const,
84
- "yarn" as const,
85
- ]);
83
+ options.manager ??= await select("manager")("Package Manager")(
84
+ [
85
+ "npm" as const,
86
+ "pnpm" as const,
87
+ "yarn (berry is not supported)" as "yarn",
88
+ ],
89
+ (value) => value.split(" ")[0] as "yarn",
90
+ );
86
91
  pack.manager = options.manager;
87
92
  options.project ??= await configure();
88
93