@deot/dev-adder 2.8.0 → 2.9.1

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/dist/index.cjs CHANGED
@@ -6,69 +6,69 @@ const node_path = require('node:path');
6
6
  const devShared = require('@deot/dev-shared');
7
7
  const ora = require('ora');
8
8
  const fs = require('fs-extra');
9
- const inquirer = require('inquirer');
10
- const autocomplete = require('inquirer-autocomplete-prompt');
9
+ const prompts = require('@inquirer/prompts');
11
10
 
12
- const { prompt, registerPrompt, Separator } = inquirer;
13
11
  const getOptions = async () => {
14
12
  const { packageFolderNames } = devShared.Locals.impl();
15
- const question = [
16
- {
17
- type: "list",
18
- name: "mode",
19
- message: "Select Mode:",
20
- choices: [
21
- new Separator("选择添加的类型:"),
22
- "dependent",
23
- "package"
24
- ],
25
- default: "package"
26
- },
27
- {
28
- type: "autocomplete",
13
+ const mode = await prompts.select({
14
+ message: "Select Mode:",
15
+ choices: [
16
+ new prompts.Separator("选择添加的类型:"),
17
+ {
18
+ value: "dependent"
19
+ },
20
+ {
21
+ value: "package"
22
+ }
23
+ ],
24
+ default: "package"
25
+ });
26
+ let packageName = "";
27
+ let packageFolderName = "";
28
+ let dependentName = "";
29
+ let args = "";
30
+ if (mode == "dependent") {
31
+ packageFolderName = await prompts.search({
29
32
  message: "Select Package To Install:",
30
- when: (answers) => answers.mode === "dependent",
31
- name: "packageFolderName",
32
- // suggestOnly: true, 开启后可以验证数据且需要使用tab选中
33
- default: "index",
34
- source: (_, input) => {
35
- input = input || "";
33
+ source: (term) => {
34
+ const v = typeof term === "undefined" ? "index" : term;
36
35
  return new Promise(($resolve) => {
37
- const filter = input ? packageFolderNames.filter((item) => item.includes(input)) : packageFolderNames;
36
+ const filter = v ? packageFolderNames.filter((item) => item.includes(v)) : packageFolderNames;
38
37
  $resolve(filter);
39
38
  });
40
39
  }
41
- },
42
- {
43
- type: "input",
44
- name: "dependentName",
40
+ });
41
+ dependentName = await prompts.input({
45
42
  message: "Input Dependent Name",
46
43
  default: "",
47
- when: (answers) => answers.mode === "dependent",
48
44
  validate: (answer) => {
49
45
  if (!answer) {
50
46
  return "请输入需要添加的模块名";
51
47
  }
52
48
  return true;
53
49
  }
54
- },
55
- {
56
- type: "list",
57
- name: "args",
58
- when: (answers) => answers.mode === "dependent",
59
- message: "Select Install Mode:",
50
+ });
51
+ args = await prompts.select({
52
+ message: "Select Mode:",
60
53
  choices: [
61
- "-S",
62
- "-D",
63
- "-O"
64
- ]
65
- },
66
- {
67
- type: "input",
68
- name: "packageFolderName",
54
+ {
55
+ value: "-S"
56
+ },
57
+ {
58
+ value: "-D"
59
+ },
60
+ {
61
+ value: "-O"
62
+ }
63
+ ],
64
+ default: "package"
65
+ });
66
+ packageName = devShared.Locals.getPackageName(packageFolderName);
67
+ }
68
+ if (mode == "package") {
69
+ packageFolderName = await prompts.input({
69
70
  message: "Input Package Name",
70
71
  default: "",
71
- when: (answers) => answers.mode === "package",
72
72
  validate: (answer) => {
73
73
  if (!answer) {
74
74
  return "请输入需要添加的包名";
@@ -78,18 +78,16 @@ const getOptions = async () => {
78
78
  }
79
79
  return true;
80
80
  }
81
- }
82
- ];
83
- registerPrompt("autocomplete", autocomplete);
84
- const result = await prompt(question);
85
- if (result.mode == "dependent") {
86
- result.packageName = devShared.Locals.getPackageName(result.packageFolderName);
87
- }
88
- if (result.mode == "package") {
89
- result.packageName = devShared.Locals.getPackageName(result.packageFolderName);
81
+ });
82
+ packageName = devShared.Locals.getPackageName(packageFolderName);
90
83
  }
91
- result.args = [result.args];
92
- return result;
84
+ return {
85
+ mode,
86
+ packageName,
87
+ packageFolderName,
88
+ dependentName,
89
+ args: [args]
90
+ };
93
91
  };
94
92
 
95
93
  const run = (options) => devShared.Utils.autoCatch(async () => {
@@ -107,8 +105,7 @@ const run = (options) => devShared.Utils.autoCatch(async () => {
107
105
  }
108
106
  const { mode, dependentName, args, packageFolderName, packageName } = await getOptions();
109
107
  const command = mode === "dependent" ? `npx pnpm add --filter ${packageName} ${dependentName} ${args.join(" ")}` : `npx pnpm link ./${workspace}/${packageFolderName}`;
110
- if (options.dryRun)
111
- return devShared.Shell.spawn(`echo "${command}"`);
108
+ if (options.dryRun) return devShared.Shell.spawn(`echo "${command}"`);
112
109
  const spinner = ora(`${command}
113
110
  `).start();
114
111
  if (mode === "package") {
package/dist/index.js CHANGED
@@ -2,69 +2,69 @@ import { resolve } from 'node:path';
2
2
  import { Locals, Utils, Logger, Shell } from '@deot/dev-shared';
3
3
  import ora from 'ora';
4
4
  import fs from 'fs-extra';
5
- import inquirer from 'inquirer';
6
- import autocomplete from 'inquirer-autocomplete-prompt';
5
+ import { select, Separator, search, input } from '@inquirer/prompts';
7
6
 
8
- const { prompt, registerPrompt, Separator } = inquirer;
9
7
  const getOptions = async () => {
10
8
  const { packageFolderNames } = Locals.impl();
11
- const question = [
12
- {
13
- type: "list",
14
- name: "mode",
15
- message: "Select Mode:",
16
- choices: [
17
- new Separator("选择添加的类型:"),
18
- "dependent",
19
- "package"
20
- ],
21
- default: "package"
22
- },
23
- {
24
- type: "autocomplete",
9
+ const mode = await select({
10
+ message: "Select Mode:",
11
+ choices: [
12
+ new Separator("选择添加的类型:"),
13
+ {
14
+ value: "dependent"
15
+ },
16
+ {
17
+ value: "package"
18
+ }
19
+ ],
20
+ default: "package"
21
+ });
22
+ let packageName = "";
23
+ let packageFolderName = "";
24
+ let dependentName = "";
25
+ let args = "";
26
+ if (mode == "dependent") {
27
+ packageFolderName = await search({
25
28
  message: "Select Package To Install:",
26
- when: (answers) => answers.mode === "dependent",
27
- name: "packageFolderName",
28
- // suggestOnly: true, 开启后可以验证数据且需要使用tab选中
29
- default: "index",
30
- source: (_, input) => {
31
- input = input || "";
29
+ source: (term) => {
30
+ const v = typeof term === "undefined" ? "index" : term;
32
31
  return new Promise(($resolve) => {
33
- const filter = input ? packageFolderNames.filter((item) => item.includes(input)) : packageFolderNames;
32
+ const filter = v ? packageFolderNames.filter((item) => item.includes(v)) : packageFolderNames;
34
33
  $resolve(filter);
35
34
  });
36
35
  }
37
- },
38
- {
39
- type: "input",
40
- name: "dependentName",
36
+ });
37
+ dependentName = await input({
41
38
  message: "Input Dependent Name",
42
39
  default: "",
43
- when: (answers) => answers.mode === "dependent",
44
40
  validate: (answer) => {
45
41
  if (!answer) {
46
42
  return "请输入需要添加的模块名";
47
43
  }
48
44
  return true;
49
45
  }
50
- },
51
- {
52
- type: "list",
53
- name: "args",
54
- when: (answers) => answers.mode === "dependent",
55
- message: "Select Install Mode:",
46
+ });
47
+ args = await select({
48
+ message: "Select Mode:",
56
49
  choices: [
57
- "-S",
58
- "-D",
59
- "-O"
60
- ]
61
- },
62
- {
63
- type: "input",
64
- name: "packageFolderName",
50
+ {
51
+ value: "-S"
52
+ },
53
+ {
54
+ value: "-D"
55
+ },
56
+ {
57
+ value: "-O"
58
+ }
59
+ ],
60
+ default: "package"
61
+ });
62
+ packageName = Locals.getPackageName(packageFolderName);
63
+ }
64
+ if (mode == "package") {
65
+ packageFolderName = await input({
65
66
  message: "Input Package Name",
66
67
  default: "",
67
- when: (answers) => answers.mode === "package",
68
68
  validate: (answer) => {
69
69
  if (!answer) {
70
70
  return "请输入需要添加的包名";
@@ -74,18 +74,16 @@ const getOptions = async () => {
74
74
  }
75
75
  return true;
76
76
  }
77
- }
78
- ];
79
- registerPrompt("autocomplete", autocomplete);
80
- const result = await prompt(question);
81
- if (result.mode == "dependent") {
82
- result.packageName = Locals.getPackageName(result.packageFolderName);
83
- }
84
- if (result.mode == "package") {
85
- result.packageName = Locals.getPackageName(result.packageFolderName);
77
+ });
78
+ packageName = Locals.getPackageName(packageFolderName);
86
79
  }
87
- result.args = [result.args];
88
- return result;
80
+ return {
81
+ mode,
82
+ packageName,
83
+ packageFolderName,
84
+ dependentName,
85
+ args: [args]
86
+ };
89
87
  };
90
88
 
91
89
  const run = (options) => Utils.autoCatch(async () => {
@@ -103,8 +101,7 @@ const run = (options) => Utils.autoCatch(async () => {
103
101
  }
104
102
  const { mode, dependentName, args, packageFolderName, packageName } = await getOptions();
105
103
  const command = mode === "dependent" ? `npx pnpm add --filter ${packageName} ${dependentName} ${args.join(" ")}` : `npx pnpm link ./${workspace}/${packageFolderName}`;
106
- if (options.dryRun)
107
- return Shell.spawn(`echo "${command}"`);
104
+ if (options.dryRun) return Shell.spawn(`echo "${command}"`);
108
105
  const spinner = ora(`${command}
109
106
  `).start();
110
107
  if (mode === "package") {
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@deot/dev-adder",
3
- "version": "2.8.0",
3
+ "version": "2.9.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
+ "types": "./dist/index.d.ts",
9
10
  "import": "./dist/index.js",
10
- "require": "./dist/index.cjs",
11
- "types": "./dist/index.d.ts"
11
+ "require": "./dist/index.cjs"
12
12
  }
13
13
  },
14
14
  "files": [
@@ -19,10 +19,9 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "fs-extra": "^11.2.0",
23
- "inquirer": "^9.2.12",
24
- "inquirer-autocomplete-prompt": "^3.0.1",
25
- "ora": "^7.0.1",
26
- "@deot/dev-shared": "^2.8.0"
22
+ "fs-extra": "^11.3.0",
23
+ "inquirer": "^12.5.2",
24
+ "ora": "^8.2.0",
25
+ "@deot/dev-shared": "^2.9.1"
27
26
  }
28
27
  }