easy-soft-develop 2.0.162 → 2.0.164

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-soft-develop",
3
- "version": "2.0.162",
3
+ "version": "2.0.164",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/kityandhero/easy-soft-develop#readme",
6
6
  "bugs": {
@@ -17,11 +17,12 @@ const {
17
17
  createNcuConfigFile,
18
18
  createNpmConfigFile,
19
19
  } = require('../tools/develop.file');
20
+ const { globalScript, packageScript } = require('../tools/package.script');
20
21
  const {
21
- getGlobalPackages,
22
- globalScript,
23
- packageScript,
24
- } = require('../tools/package.script');
22
+ getGlobalDevelopPackages,
23
+ getMainDevelopPackages,
24
+ getProjectDevelopPackages,
25
+ } = require('../tools/package.dependence');
25
26
 
26
27
  function createLernaProjectFolder(name) {
27
28
  mkdirSync(`./${name}`);
@@ -32,7 +33,11 @@ function createLernaProjectFolder(name) {
32
33
  function createLernaPackageJsonFile(lernaName) {
33
34
  const devDependencies = {};
34
35
 
35
- getGlobalPackages().forEach((o) => {
36
+ let packages = getGlobalDevelopPackages();
37
+
38
+ packages = packages.concat(getMainDevelopPackages());
39
+
40
+ packages.forEach((o) => {
36
41
  if (checkStringIsEmpty(o)) {
37
42
  return;
38
43
  }
@@ -115,7 +120,11 @@ function createProjectFolder(name) {
115
120
  function createPackageJsonFile(name) {
116
121
  const devDependencies = {};
117
122
 
118
- getGlobalPackages().forEach((o) => {
123
+ let packages = getGlobalDevelopPackages();
124
+
125
+ packages = packages.concat(getProjectDevelopPackages());
126
+
127
+ packages.forEach((o) => {
119
128
  if (checkStringIsEmpty(o)) {
120
129
  return;
121
130
  }
@@ -26,24 +26,31 @@ const attributeFile = {
26
26
  const ignoreFileContent = `${fileGlobalHeader}
27
27
  const content = \`# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
28
28
 
29
- # dependencies
29
+ # ignore dependencies dir
30
30
  **/node_modules
31
31
 
32
- # ignore dir
32
+ # ignore distribute dir
33
33
  **/dist
34
34
  **/es
35
+
36
+ # ignore temporary dir
35
37
  **/.umi
36
38
  **/.umi-production
39
+
40
+ # ignore config dir
37
41
  **/.idea
38
42
  **/.history
39
43
  **/.vs
40
44
 
41
- # ignore file
45
+ # ignore jest dir
46
+ **/coverage
47
+
48
+ # ignore general file
42
49
  *.log
43
50
  *.d.ts
44
51
  *.bak
45
52
 
46
- # ignore special
53
+ # ignore special file
47
54
  rollup.config-*.cjs
48
55
  yarn.lock
49
56
  package-lock.json
@@ -0,0 +1,48 @@
1
+ const { fileGlobalHeader } = require('./template.config');
2
+
3
+ const folderPath = './develop/config/jest';
4
+
5
+ const configFileContent = `${fileGlobalHeader}
6
+ const content = \`${fileGlobalHeader}
7
+ module.exports = {
8
+ collectCoverage: true,
9
+ verbose: true,
10
+ };
11
+ \`;
12
+
13
+ module.exports = {
14
+ content,
15
+ };
16
+ `;
17
+
18
+ const configFile = {
19
+ folderPath: `${folderPath}/template`,
20
+ fileName: 'content.js',
21
+ coverFile: true,
22
+ fileContent: configFileContent,
23
+ };
24
+
25
+ const simpleTestFileContent = `${fileGlobalHeader}
26
+ const content = \`test('jest simple', () => {
27
+ expect(true).toBe(true);
28
+ });
29
+ \`;
30
+
31
+ module.exports = {
32
+ content,
33
+ };
34
+ `;
35
+
36
+ const simpleTestFile = {
37
+ folderPath: `${folderPath}/template`,
38
+ fileName: 'simple.test.content.js',
39
+ coverFile: true,
40
+ fileContent: configFileContent,
41
+ };
42
+
43
+ module.exports = {
44
+ configFileContent,
45
+ configFile,
46
+ simpleTestFileContent,
47
+ simpleTestFile,
48
+ };
@@ -44,12 +44,17 @@ const tscScript = {
44
44
  'z:tsc:build': 'echo show tsc version and create declaration file && tsc -v && tsc -p ./tsconfig.types.json && echo declaration file generate complete',
45
45
  };
46
46
 
47
+ const jestScript = {
48
+ 'z:test': 'cross-env NODE_ENV=test jest',
49
+ };
50
+
47
51
  module.exports = {
48
52
  ...commitScript,
49
53
  ...documentationScript,
50
54
  ...lintScript,
51
55
  ...prettierScript,
52
56
  ...tscScript,
57
+ ...jestScript,
53
58
  };
54
59
  `;
55
60
 
@@ -123,7 +128,7 @@ const nrmScript = {
123
128
 
124
129
  const commitScript = {
125
130
  commitlint: 'npx commitlint --edit',
126
- precz: 'npm run z:commit:refresh && git stage -A',
131
+ precz: 'npm run z:test && npm run z:commit:refresh && git stage -A',
127
132
  cz: 'cz',
128
133
  postcz: 'git push',
129
134
  precommit: 'npm run z:lint:staged:quiet',
@@ -145,6 +150,10 @@ const ncuScript = {
145
150
  'postz:update:special-package-version': 'npm run z:install',
146
151
  };
147
152
 
153
+ const jestScript = {
154
+ 'z:test': '',
155
+ };
156
+
148
157
  module.exports = {
149
158
  ...lintScript,
150
159
  ...prettierScript,
@@ -62,6 +62,10 @@ const {
62
62
  contentFile: stylelintContentFile,
63
63
  configFile: stylelintConfigFile,
64
64
  } = require('../templates/stylelint.template');
65
+ const {
66
+ configFile: jestConfigFile,
67
+ simpleTestFile: jestSimpleTestFile,
68
+ } = require('../templates/jest.template');
65
69
 
66
70
  const childrenDevelopPackageConfigContent = `${fileGlobalHeader}
67
71
  const childrenDevelopPackageList = [];
@@ -370,6 +374,8 @@ const editorFile = require('../config/editor/template/content');
370
374
  const editorAttributesFile = require('../config/git/template/attributes.content');
371
375
  const editorIgnoreFile = require('../config/git/template/ignore.content');
372
376
  const lintStagedFile = require('../config/lint-staged/template/content');
377
+ const jestFile = require('../config/jest/template/content');
378
+ const jestSimpleTestFile = require('../config/jest/template/simple.test.content');
373
379
  const mainNecessaryPackageFile = require('../config/package/template/main.content');
374
380
  const childrenNecessaryPackageFile = require('../config/package/template/children.content');
375
381
  const mainCustomPackageFile = require('../config/package/custom/main.content');
@@ -397,6 +403,8 @@ const gitAttributesContent = editorAttributesFile.content;
397
403
 
398
404
  const gitIgnoreContent = editorIgnoreFile.content;
399
405
  const lintStagedRcContent = lintStagedFile.content;
406
+ const jestContent = jestFile.content;
407
+ const jestSimpleTestContent = jestSimpleTestFile.content;
400
408
 
401
409
  const mainFileContentList = [
402
410
  {
@@ -502,6 +510,16 @@ const packageFileContentList = [
502
510
  content: lintStagedRcContent,
503
511
  coverFile: false,
504
512
  },
513
+ {
514
+ name: 'jest.config.js',
515
+ content: jestContent,
516
+ coverFile: false,
517
+ },
518
+ {
519
+ name: 'simple.test.js',
520
+ content: jestSimpleTestContent,
521
+ coverFile: true,
522
+ },
505
523
  ];
506
524
 
507
525
  initialEnvironment({
@@ -627,6 +645,14 @@ function createDevelopFiles(waitMessage = '', successMessage = '') {
627
645
 
628
646
  //#endregion
629
647
 
648
+ //#region jest
649
+
650
+ writeFileWithOptionsSync(jestConfigFile);
651
+
652
+ writeFileWithOptionsSync(jestSimpleTestFile);
653
+
654
+ //#endregion
655
+
630
656
  //#region assists
631
657
 
632
658
  createAssistConfigScriptFile();
@@ -1,4 +1,4 @@
1
- const { checkInCollection } = require('./meta');
1
+ const { checkInCollection, checkStringIsEmpty } = require('./meta');
2
2
  const {
3
3
  promptSuccess,
4
4
  writeFileSync,
@@ -44,9 +44,17 @@ function createPackageFile(fileWithContentCollection) {
44
44
  }
45
45
 
46
46
  fileWithContentCollection.forEach((o) => {
47
- const { name, content, coverFile } = o;
48
-
49
- writeFileSync(`${itemPath}/${name}`, content, { coverFile });
47
+ const { name, relativePath = '', content, coverFile } = o;
48
+
49
+ writeFileSync(
50
+ `${itemPath}${
51
+ checkStringIsEmpty(relativePath) ? '' : `/${relativePath}`
52
+ }/${name}`,
53
+ content,
54
+ {
55
+ coverFile,
56
+ },
57
+ );
50
58
  });
51
59
  });
52
60
 
@@ -83,9 +91,15 @@ function adjustMainPackageJsonScript({ scripts }) {
83
91
  });
84
92
 
85
93
  const publishPackageNameList = [];
94
+ const testScript = {};
95
+ const testAllProjects = [];
86
96
 
87
97
  loopPackage(({ name }) => {
88
98
  publishPackageNameList.push(name);
99
+
100
+ testScript[`test:${name}`] = `cd packages/${name} && npm run test`;
101
+
102
+ testAllProjects.push(`test:${name}`);
89
103
  });
90
104
 
91
105
  packageJson.scripts = assignObject(
@@ -98,6 +112,9 @@ function adjustMainPackageJsonScript({ scripts }) {
98
112
  globalScript,
99
113
  originalScript || {},
100
114
  scripts,
115
+ {
116
+ 'z:test': testAllProjects.join(' && '),
117
+ },
101
118
  );
102
119
 
103
120
  writeJsonFileSync(mainProjectPath, packageJson, { coverFile: true });
package/src/tools/meta.js CHANGED
@@ -193,25 +193,38 @@ function writeFileSync(path, content, options = { coverFile: false }) {
193
193
 
194
194
  function writeFileWithFolderAndNameSync(
195
195
  folderPath,
196
+ relativePath,
196
197
  fileName,
197
198
  fileContent,
198
199
  coverFile = false,
199
200
  ) {
200
201
  mkdirSync(folderPath);
201
202
 
202
- return writeFileSync(`${folderPath}/${fileName}`, fileContent, {
203
- coverFile: coverFile,
204
- });
203
+ if (!checkStringIsEmpty(relativePath)) {
204
+ mkdirSync(`${folderPath}/${relativePath}`);
205
+ }
206
+
207
+ return writeFileSync(
208
+ `${folderPath}${
209
+ checkStringIsEmpty(relativePath) ? '' : `/${relativePath}`
210
+ }/${fileName}`,
211
+ fileContent,
212
+ {
213
+ coverFile: coverFile,
214
+ },
215
+ );
205
216
  }
206
217
 
207
218
  function writeFileWithOptionsSync({
208
219
  folderPath,
220
+ relativePath = '',
209
221
  fileName,
210
222
  fileContent,
211
223
  coverFile = false,
212
224
  }) {
213
225
  return writeFileWithFolderAndNameSync(
214
226
  folderPath,
227
+ relativePath,
215
228
  fileName,
216
229
  fileContent,
217
230
  coverFile,
@@ -0,0 +1,90 @@
1
+ function getGlobalDevelopPackages() {
2
+ let packages = [];
3
+
4
+ packages = packages.concat([
5
+ '@babel/core',
6
+ '@babel/eslint-parser',
7
+ '@babel/plugin-external-helpers',
8
+ '@babel/plugin-proposal-class-properties',
9
+ '@babel/plugin-proposal-decorators',
10
+ '@babel/plugin-transform-runtime',
11
+ '@babel/preset-env',
12
+ '@babel/preset-react',
13
+ '@babel/runtime',
14
+ ]);
15
+
16
+ packages = packages.concat([
17
+ '@commitlint/cli',
18
+ '@commitlint/config-conventional',
19
+ '@commitlint/config-lerna-scopes',
20
+ '@commitlint/cz-commitlint',
21
+ '@pmmmwh/react-refresh-webpack-plugin',
22
+ 'commitizen',
23
+ 'conventional-changelog-conventionalcommits',
24
+ ]);
25
+
26
+ packages = packages.concat([
27
+ 'eslint',
28
+ 'eslint-config-airbnb',
29
+ 'eslint-config-airbnb-typescript',
30
+ 'eslint-config-prettier',
31
+ 'eslint-formatter-pretty',
32
+ 'eslint-import-resolver-typescript',
33
+ 'eslint-plugin-eslint-comments',
34
+ 'eslint-plugin-import',
35
+ 'eslint-plugin-jest',
36
+ 'eslint-plugin-jsx-a11y',
37
+ 'eslint-plugin-prettier',
38
+ 'eslint-plugin-promise',
39
+ 'eslint-plugin-react',
40
+ 'eslint-plugin-react-hooks',
41
+ 'eslint-plugin-simple-import-sort',
42
+ 'eslint-plugin-unicorn',
43
+ ]);
44
+
45
+ packages = packages.concat(['documentation']);
46
+
47
+ packages = packages.concat([
48
+ 'prettier',
49
+ 'prettier-plugin-organize-imports',
50
+ 'prettier-plugin-packagejson',
51
+ ]);
52
+
53
+ packages = packages.concat([
54
+ 'stylelint',
55
+ 'stylelint-config-prettier',
56
+ 'stylelint-config-standard',
57
+ ]);
58
+
59
+ packages = packages.concat(['@typescript-eslint/parser']);
60
+
61
+ packages = packages.concat(['@types/node']);
62
+
63
+ packages = packages.concat('rimraf', 'lint-staged', 'husky');
64
+
65
+ packages = packages.concat('easy-soft-develop');
66
+
67
+ return packages;
68
+ }
69
+
70
+ function getProjectDevelopPackages() {
71
+ let packages = [];
72
+
73
+ packages = packages.concat(['jest']);
74
+
75
+ return packages;
76
+ }
77
+
78
+ function getMainDevelopPackages() {
79
+ let packages = [];
80
+
81
+ packages = packages.concat(['@types/jest']);
82
+
83
+ return packages;
84
+ }
85
+
86
+ module.exports = {
87
+ getGlobalDevelopPackages,
88
+ getMainDevelopPackages,
89
+ getProjectDevelopPackages,
90
+ };
@@ -8,7 +8,7 @@ const {
8
8
  writeJsonFileSync,
9
9
  exec,
10
10
  } = require('./meta');
11
- const { getGlobalPackages } = require('./package.script');
11
+ const { getGlobalDevelopPackages } = require('./package.dependence');
12
12
  const { loopPackage } = require('./package.tools');
13
13
  const { updateSpecialPackageVersion } = require('./package.update');
14
14
  const { prettierAllPackageJson } = require('./prettier.package.json');
@@ -95,7 +95,7 @@ function installDevelopDependencePackages({
95
95
  childrenSpecialDevelopPackageList = [],
96
96
  execInstall = true,
97
97
  }) {
98
- const packages = getGlobalPackages().concat(globalDevelopPackageList);
98
+ const packages = getGlobalDevelopPackages().concat(globalDevelopPackageList);
99
99
 
100
100
  promptInfo(`${packages.join()} will install`);
101
101
 
@@ -4,73 +4,4 @@ const globalScript = {
4
4
 
5
5
  const packageScript = {};
6
6
 
7
- function getGlobalPackages() {
8
- let packages = [];
9
-
10
- packages = packages.concat([
11
- '@babel/core',
12
- '@babel/eslint-parser',
13
- '@babel/plugin-external-helpers',
14
- '@babel/plugin-proposal-class-properties',
15
- '@babel/plugin-proposal-decorators',
16
- '@babel/plugin-transform-runtime',
17
- '@babel/preset-env',
18
- '@babel/preset-react',
19
- '@babel/runtime',
20
- ]);
21
-
22
- packages = packages.concat([
23
- '@commitlint/cli',
24
- '@commitlint/config-conventional',
25
- '@commitlint/config-lerna-scopes',
26
- '@commitlint/cz-commitlint',
27
- '@pmmmwh/react-refresh-webpack-plugin',
28
- 'commitizen',
29
- 'conventional-changelog-conventionalcommits',
30
- ]);
31
-
32
- packages = packages.concat([
33
- 'eslint',
34
- 'eslint-config-airbnb',
35
- 'eslint-config-airbnb-typescript',
36
- 'eslint-config-prettier',
37
- 'eslint-formatter-pretty',
38
- 'eslint-import-resolver-typescript',
39
- 'eslint-plugin-eslint-comments',
40
- 'eslint-plugin-import',
41
- 'eslint-plugin-jest',
42
- 'eslint-plugin-jsx-a11y',
43
- 'eslint-plugin-prettier',
44
- 'eslint-plugin-promise',
45
- 'eslint-plugin-react',
46
- 'eslint-plugin-react-hooks',
47
- 'eslint-plugin-simple-import-sort',
48
- 'eslint-plugin-unicorn',
49
- ]);
50
-
51
- packages = packages.concat(['documentation']);
52
-
53
- packages = packages.concat([
54
- 'prettier',
55
- 'prettier-plugin-organize-imports',
56
- 'prettier-plugin-packagejson',
57
- ]);
58
-
59
- packages = packages.concat([
60
- 'stylelint',
61
- 'stylelint-config-prettier',
62
- 'stylelint-config-standard',
63
- ]);
64
-
65
- packages = packages.concat(['@typescript-eslint/parser']);
66
-
67
- packages = packages.concat(['@types/node']);
68
-
69
- packages = packages.concat('rimraf', 'lint-staged', 'husky');
70
-
71
- packages = packages.concat('easy-soft-develop');
72
-
73
- return packages;
74
- }
75
-
76
- module.exports = { globalScript, packageScript, getGlobalPackages };
7
+ module.exports = { globalScript, packageScript };
@@ -0,0 +1,17 @@
1
+ export const configFileContent: string;
2
+ export namespace configFile {
3
+ export const folderPath: string;
4
+ export const fileName: string;
5
+ export const coverFile: boolean;
6
+ export { configFileContent as fileContent };
7
+ }
8
+ export const simpleTestFileContent: string;
9
+ export namespace simpleTestFile {
10
+ const folderPath_1: string;
11
+ export { folderPath_1 as folderPath };
12
+ const fileName_1: string;
13
+ export { fileName_1 as fileName };
14
+ const coverFile_1: boolean;
15
+ export { coverFile_1 as coverFile };
16
+ export { configFileContent as fileContent };
17
+ }
@@ -27,9 +27,10 @@ export function readJsonFileSync(path: any): any;
27
27
  export function writeJsonFileSync(path: any, json: any, options?: {
28
28
  coverFile: boolean;
29
29
  }): boolean;
30
- export function writeFileWithFolderAndNameSync(folderPath: any, fileName: any, fileContent: any, coverFile?: boolean): boolean;
31
- export function writeFileWithOptionsSync({ folderPath, fileName, fileContent, coverFile, }: {
30
+ export function writeFileWithFolderAndNameSync(folderPath: any, relativePath: any, fileName: any, fileContent: any, coverFile?: boolean): boolean;
31
+ export function writeFileWithOptionsSync({ folderPath, relativePath, fileName, fileContent, coverFile, }: {
32
32
  folderPath: any;
33
+ relativePath?: string | undefined;
33
34
  fileName: any;
34
35
  fileContent: any;
35
36
  coverFile?: boolean | undefined;
@@ -0,0 +1,3 @@
1
+ export function getGlobalDevelopPackages(): any[];
2
+ export function getMainDevelopPackages(): any[];
3
+ export function getProjectDevelopPackages(): any[];
@@ -2,4 +2,3 @@ export const globalScript: {
2
2
  'z:initial:environment': string;
3
3
  };
4
4
  export const packageScript: {};
5
- export function getGlobalPackages(): any[];