@deot/dev-tester 2.7.0 → 2.9.0

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
@@ -7,8 +7,7 @@ const node_url = require('node:url');
7
7
  const devShared = require('@deot/dev-shared');
8
8
  const node = require('vitest/node');
9
9
  const fs = require('fs-extra');
10
- const inquirer = require('inquirer');
11
- const autocomplete = require('inquirer-autocomplete-prompt');
10
+ const prompts = require('@inquirer/prompts');
12
11
 
13
12
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
14
13
  function _interopNamespaceDefault(e) {
@@ -31,67 +30,54 @@ function _interopNamespaceDefault(e) {
31
30
  const path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
32
31
 
33
32
  const ALL_PACKAGE = "All Packages";
34
- const { prompt, registerPrompt } = inquirer;
35
33
  const getOptions = async () => {
36
34
  const isDev = process.env.NODE_ENV === "development";
37
35
  const { packageFolderNames, subpackagesMap } = devShared.Locals.impl();
38
36
  const packages$ = [ALL_PACKAGE, ...packageFolderNames];
39
- const question = [
40
- {
41
- type: "autocomplete",
42
- message: `Select Package To ${isDev ? "Develop" : "Test"}:`,
43
- name: "packageFolderName",
44
- default: "cli",
45
- source: (_, input) => {
46
- input = input || "";
47
- return new Promise(($resolve) => {
48
- let filter = input ? packages$.filter((item) => item.includes(input)) : packages$;
49
- $resolve(filter);
50
- });
51
- }
52
- },
53
- {
54
- type: "autocomplete",
37
+ const packageFolderName = await prompts.search({
38
+ message: `Select Package To ${isDev ? "Develop" : "Test"}:`,
39
+ source: (term) => {
40
+ const input = typeof term === "undefined" ? "cli" : term;
41
+ return new Promise(($resolve) => {
42
+ const filter = input ? packages$.filter((item) => item.includes(input)) : packages$;
43
+ $resolve(filter);
44
+ });
45
+ }
46
+ });
47
+ let subpackageFolderName = "";
48
+ let watch = false;
49
+ if (subpackagesMap[packageFolderName]?.length) {
50
+ subpackageFolderName = await prompts.search({
55
51
  message: `Select Subpackage To ${isDev ? "Develop" : "Test"}:`,
56
- name: "subpackageFolderName",
57
- default: "",
58
- when: (answers) => {
59
- return !!subpackagesMap[answers.packageFolderName]?.length;
60
- },
61
- source: (answers, input) => {
62
- const subpackages = [ALL_PACKAGE, ...subpackagesMap[answers.packageFolderName]];
63
- input = input || "";
52
+ source: (term) => {
53
+ const input = typeof term === "undefined" ? "" : term;
54
+ const subpackages = [ALL_PACKAGE, ...subpackagesMap[packageFolderName]];
64
55
  return new Promise(($resolve) => {
65
- let filter = input ? subpackages.filter((item) => item.includes(input)) : subpackages;
56
+ const filter = input ? subpackages.filter((item) => item.includes(input)) : subpackages;
66
57
  $resolve(filter);
67
58
  });
68
59
  }
69
- },
70
- {
71
- type: "confirm",
60
+ });
61
+ }
62
+ if (!isDev) {
63
+ watch = await prompts.confirm({
72
64
  message: "Watch Mode?",
73
- name: "watch",
74
- when: () => !isDev,
75
- default: (answers) => {
76
- return answers.packageFolderName !== ALL_PACKAGE;
77
- }
78
- },
79
- {
80
- type: "confirm",
81
- message: "Coverage Analyze?",
82
- name: "coverage",
83
- default: true
84
- }
85
- ];
86
- registerPrompt("autocomplete", autocomplete);
87
- let result = await prompt(question);
88
- result.packageFolderName = result.packageFolderName == ALL_PACKAGE ? void 0 : result.packageFolderName;
89
- result.subpackageFolderName = result.subpackageFolderName == ALL_PACKAGE ? void 0 : result.subpackageFolderName;
90
- result.watch = result.watch || isDev;
91
- return result;
65
+ default: packageFolderName !== ALL_PACKAGE
66
+ });
67
+ }
68
+ const coverage = await prompts.confirm({
69
+ message: "Coverage Analyze?",
70
+ default: true
71
+ });
72
+ return {
73
+ packageFolderName: packageFolderName == ALL_PACKAGE ? void 0 : packageFolderName,
74
+ subpackageFolderName: subpackageFolderName == ALL_PACKAGE ? void 0 : subpackageFolderName,
75
+ watch: watch || isDev,
76
+ coverage
77
+ };
92
78
  };
93
79
 
94
- const dirname = path__namespace.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
80
+ const dirname = path__namespace.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
95
81
  const run = (options) => devShared.Utils.autoCatch(async () => {
96
82
  options = { ...options };
97
83
  const locals = devShared.Locals.impl();
@@ -120,10 +106,8 @@ const run = (options) => devShared.Utils.autoCatch(async () => {
120
106
  await devShared.Shell.spawn(`npm`, ["run", "test"], { cwd: packageDir });
121
107
  return;
122
108
  }
123
- if (!options.packageFolderName)
124
- delete options.packageFolderName;
125
- if (!options.workspace)
126
- delete options.workspace;
109
+ if (!options.packageFolderName) delete options.packageFolderName;
110
+ if (!options.workspace) delete options.workspace;
127
111
  delete options.packageName;
128
112
  delete options.subpackage;
129
113
  const isDev = process.env.NODE_ENV === "development";
@@ -142,7 +126,7 @@ const run = (options) => devShared.Utils.autoCatch(async () => {
142
126
  const isReactPackage = typeof reactPackage === "string" && (packageName === locals.packageName || packageName === `${locals.packageName}-*` || reactPackage === "*" || reactPackage.split(",").includes(packageName));
143
127
  options.useVue = !!isVuePackage;
144
128
  options.useReact = !!isReactPackage;
145
- let options$ = {
129
+ const options$ = {
146
130
  environment,
147
131
  coverage: {
148
132
  enabled: !!coverage
package/dist/index.js CHANGED
@@ -3,68 +3,54 @@ import { fileURLToPath } from 'node:url';
3
3
  import { Locals, Utils, Shell, Logger } from '@deot/dev-shared';
4
4
  import { startVitest } from 'vitest/node';
5
5
  import fs from 'fs-extra';
6
- import inquirer from 'inquirer';
7
- import autocomplete from 'inquirer-autocomplete-prompt';
6
+ import { search, confirm } from '@inquirer/prompts';
8
7
 
9
8
  const ALL_PACKAGE = "All Packages";
10
- const { prompt, registerPrompt } = inquirer;
11
9
  const getOptions = async () => {
12
10
  const isDev = process.env.NODE_ENV === "development";
13
11
  const { packageFolderNames, subpackagesMap } = Locals.impl();
14
12
  const packages$ = [ALL_PACKAGE, ...packageFolderNames];
15
- const question = [
16
- {
17
- type: "autocomplete",
18
- message: `Select Package To ${isDev ? "Develop" : "Test"}:`,
19
- name: "packageFolderName",
20
- default: "cli",
21
- source: (_, input) => {
22
- input = input || "";
23
- return new Promise(($resolve) => {
24
- let filter = input ? packages$.filter((item) => item.includes(input)) : packages$;
25
- $resolve(filter);
26
- });
27
- }
28
- },
29
- {
30
- type: "autocomplete",
13
+ const packageFolderName = await search({
14
+ message: `Select Package To ${isDev ? "Develop" : "Test"}:`,
15
+ source: (term) => {
16
+ const input = typeof term === "undefined" ? "cli" : term;
17
+ return new Promise(($resolve) => {
18
+ const filter = input ? packages$.filter((item) => item.includes(input)) : packages$;
19
+ $resolve(filter);
20
+ });
21
+ }
22
+ });
23
+ let subpackageFolderName = "";
24
+ let watch = false;
25
+ if (subpackagesMap[packageFolderName]?.length) {
26
+ subpackageFolderName = await search({
31
27
  message: `Select Subpackage To ${isDev ? "Develop" : "Test"}:`,
32
- name: "subpackageFolderName",
33
- default: "",
34
- when: (answers) => {
35
- return !!subpackagesMap[answers.packageFolderName]?.length;
36
- },
37
- source: (answers, input) => {
38
- const subpackages = [ALL_PACKAGE, ...subpackagesMap[answers.packageFolderName]];
39
- input = input || "";
28
+ source: (term) => {
29
+ const input = typeof term === "undefined" ? "" : term;
30
+ const subpackages = [ALL_PACKAGE, ...subpackagesMap[packageFolderName]];
40
31
  return new Promise(($resolve) => {
41
- let filter = input ? subpackages.filter((item) => item.includes(input)) : subpackages;
32
+ const filter = input ? subpackages.filter((item) => item.includes(input)) : subpackages;
42
33
  $resolve(filter);
43
34
  });
44
35
  }
45
- },
46
- {
47
- type: "confirm",
36
+ });
37
+ }
38
+ if (!isDev) {
39
+ watch = await confirm({
48
40
  message: "Watch Mode?",
49
- name: "watch",
50
- when: () => !isDev,
51
- default: (answers) => {
52
- return answers.packageFolderName !== ALL_PACKAGE;
53
- }
54
- },
55
- {
56
- type: "confirm",
57
- message: "Coverage Analyze?",
58
- name: "coverage",
59
- default: true
60
- }
61
- ];
62
- registerPrompt("autocomplete", autocomplete);
63
- let result = await prompt(question);
64
- result.packageFolderName = result.packageFolderName == ALL_PACKAGE ? void 0 : result.packageFolderName;
65
- result.subpackageFolderName = result.subpackageFolderName == ALL_PACKAGE ? void 0 : result.subpackageFolderName;
66
- result.watch = result.watch || isDev;
67
- return result;
41
+ default: packageFolderName !== ALL_PACKAGE
42
+ });
43
+ }
44
+ const coverage = await confirm({
45
+ message: "Coverage Analyze?",
46
+ default: true
47
+ });
48
+ return {
49
+ packageFolderName: packageFolderName == ALL_PACKAGE ? void 0 : packageFolderName,
50
+ subpackageFolderName: subpackageFolderName == ALL_PACKAGE ? void 0 : subpackageFolderName,
51
+ watch: watch || isDev,
52
+ coverage
53
+ };
68
54
  };
69
55
 
70
56
  const dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -96,10 +82,8 @@ const run = (options) => Utils.autoCatch(async () => {
96
82
  await Shell.spawn(`npm`, ["run", "test"], { cwd: packageDir });
97
83
  return;
98
84
  }
99
- if (!options.packageFolderName)
100
- delete options.packageFolderName;
101
- if (!options.workspace)
102
- delete options.workspace;
85
+ if (!options.packageFolderName) delete options.packageFolderName;
86
+ if (!options.workspace) delete options.workspace;
103
87
  delete options.packageName;
104
88
  delete options.subpackage;
105
89
  const isDev = process.env.NODE_ENV === "development";
@@ -118,7 +102,7 @@ const run = (options) => Utils.autoCatch(async () => {
118
102
  const isReactPackage = typeof reactPackage === "string" && (packageName === locals.packageName || packageName === `${locals.packageName}-*` || reactPackage === "*" || reactPackage.split(",").includes(packageName));
119
103
  options.useVue = !!isVuePackage;
120
104
  options.useReact = !!isReactPackage;
121
- let options$ = {
105
+ const options$ = {
122
106
  environment,
123
107
  coverage: {
124
108
  enabled: !!coverage
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@deot/dev-tester",
3
- "version": "2.7.0",
3
+ "version": "2.9.0",
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": [
@@ -20,14 +20,13 @@
20
20
  "access": "public"
21
21
  },
22
22
  "dependencies": {
23
- "@deot/dev-react": "^2.7.0",
24
- "@deot/dev-shared": "^2.7.0",
25
- "@deot/dev-vue": "^2.7.0",
26
- "@vitest/coverage-istanbul": "^1.0.1",
23
+ "@deot/dev-react": "^2.9.0",
24
+ "@deot/dev-shared": "^2.9.0",
25
+ "@deot/dev-vue": "^2.9.0",
26
+ "@vitest/coverage-istanbul": "^3.0.5",
27
27
  "cross-env": "^7.0.3",
28
- "inquirer": "^9.2.12",
29
- "inquirer-autocomplete-prompt": "^3.0.1",
30
- "jsdom": "^23.0.1",
31
- "vitest": "^1.0.1"
28
+ "inquirer": "^12.4.1",
29
+ "jsdom": "^26.0.0",
30
+ "vitest": "^3.0.5"
32
31
  }
33
32
  }
package/shared.config.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as path from 'node:path';
2
- import { createRequire } from "node:module";
2
+ import { createRequire } from 'node:module';
3
3
  import { defineConfig, configDefaults, mergeConfig } from 'vitest/config';
4
4
  import type { UserConfig } from 'vite';
5
5
 
@@ -11,8 +11,8 @@ import react from '@vitejs/plugin-react-swc';
11
11
  * https://github.com/vuejs/core/issues/8303
12
12
  * to fix error: ReferenceError: __name is not defined
13
13
  */
14
- let __defProp = Object.defineProperty;
15
- let __name = (target: any, value: any) => __defProp(target, 'name', { value, configurable: true });
14
+ const __defProp = Object.defineProperty;
15
+ const __name = (target: any, value: any) => __defProp(target, 'name', { value, configurable: true });
16
16
  globalThis.__name = globalThis.__name || __name;
17
17
 
18
18
  // 当库里同时含有vue和react,vue的jsx要含前缀vue
@@ -22,10 +22,10 @@ const getViteConfig = () => {
22
22
  if (useVue && useReact) {
23
23
  return defineConfig({ plugins: [vue(), vueJSX({ include: /\.vue\.[jt]sx$/ }), react()] });
24
24
  }
25
- return useVue
26
- ? defineConfig({ plugins: [vue(), vueJSX()] })
25
+ return useVue
26
+ ? defineConfig({ plugins: [vue(), vueJSX()] })
27
27
  : useReact
28
- ? defineConfig({ plugins: [react()] })
28
+ ? defineConfig({ plugins: [react()] })
29
29
  : {};
30
30
  };
31
31
  const cwd = process.cwd();
@@ -41,16 +41,16 @@ const TEST_PATTEN = `**/*.{test,spec}.[jt]s?(x)`;
41
41
  const COLLECT_PATTEN = `**/*.{[jt]s?(x),vue}`;
42
42
 
43
43
  if (workspace) {
44
- let prefixDir = `${workspace}/${packageFolderName || '*'}`;
44
+ const prefixDir = `${workspace}/${packageFolderName || '*'}`;
45
45
  tests.push(`${prefixDir}/__tests__/${TEST_PATTEN}`);
46
46
  collects.push(`${prefixDir}/src/${COLLECT_PATTEN}`);
47
47
 
48
48
  if (packageFolderName === '*') {
49
49
  Object.keys(subpackagesMap).forEach((packageFolderName$: string) => {
50
- let subpackages = subpackagesMap[packageFolderName$];
50
+ const subpackages = subpackagesMap[packageFolderName$];
51
51
  if (subpackages.length) {
52
- let prefixDir$ = `${workspace}/${packageFolderName$}`;
53
- let subpackagesPatten = `{${subpackages.join(',')},}`;
52
+ const prefixDir$ = `${workspace}/${packageFolderName$}`;
53
+ const subpackagesPatten = `{${subpackages.join(',')},}`;
54
54
 
55
55
  tests.push(`${prefixDir$}/${subpackagesPatten}/__tests__/${TEST_PATTEN}`);
56
56
  collects.push(`${prefixDir$}/${subpackagesPatten}/${COLLECT_PATTEN}`);
@@ -65,8 +65,8 @@ if (workspace) {
65
65
  tests.push(`${prefixDir}/${subpackageFolderName}/__tests__/${TEST_PATTEN}`);
66
66
  collects.push(`${prefixDir}/${subpackageFolderName}/${COLLECT_PATTEN}`);
67
67
  } else {
68
- let subpackages = subpackagesMap[packageFolderName];
69
- let subpackagesPatten = `{${subpackages.join(',')},}`;
68
+ const subpackages = subpackagesMap[packageFolderName];
69
+ const subpackagesPatten = `{${subpackages.join(',')},}`;
70
70
  tests.push(`${prefixDir}/${subpackagesPatten}/__tests__/${TEST_PATTEN}`);
71
71
  collects.push(`${prefixDir}/${subpackagesPatten}/${COLLECT_PATTEN}`);
72
72
  collects.push(`${prefixDir}/index*.ts`);
@@ -86,27 +86,27 @@ const name = getPackageName('index');
86
86
  export default mergeConfig(getViteConfig(), defineConfig({
87
87
  resolve: workspace
88
88
  ? {
89
- alias: [
90
- {
91
- find: new RegExp(`^${name}$`),
92
- replacement: replacement('index')
93
- },
94
- ...Object.keys(subpackagesMap).reduce((pre, cur: string) => {
95
- if (subpackagesMap[cur].length) {
96
- pre.push({
97
- find: new RegExp(`^${getPackageName(cur)}$`),
98
- replacement: replacement(cur, true)
99
- });
100
- }
101
- return pre;
102
- }, [] as any),
103
- {
89
+ alias: [
90
+ {
91
+ find: new RegExp(`^${name}$`),
92
+ replacement: replacement('index')
93
+ },
94
+ ...Object.keys(subpackagesMap).reduce((pre, cur: string) => {
95
+ if (subpackagesMap[cur].length) {
96
+ pre.push({
97
+ find: new RegExp(`^${getPackageName(cur)}$`),
98
+ replacement: replacement(cur, true)
99
+ });
100
+ }
101
+ return pre;
102
+ }, [] as any),
103
+ {
104
104
 
105
- find: new RegExp(`^${name}-(.*?)$`),
106
- replacement: replacement('$1')
107
- }
108
- ]
109
- }
105
+ find: new RegExp(`^${name}-(.*?)$`),
106
+ replacement: replacement('$1')
107
+ }
108
+ ]
109
+ }
110
110
  : {},
111
111
  test: {
112
112
  globals: true,
@@ -130,4 +130,3 @@ export default mergeConfig(getViteConfig(), defineConfig({
130
130
  }
131
131
  }
132
132
  }) as UserConfig);
133
-