@whook/create 8.5.1 → 10.0.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.
Files changed (42) hide show
  1. package/README.md +2 -3
  2. package/bin/create.js +2 -2
  3. package/dist/index.js +46 -68
  4. package/dist/index.js.map +1 -1
  5. package/dist/services/author.js +46 -72
  6. package/dist/services/author.js.map +1 -1
  7. package/dist/services/author.test.js +86 -92
  8. package/dist/services/author.test.js.map +1 -1
  9. package/dist/services/createWhook.d.ts +10 -11
  10. package/dist/services/createWhook.js +124 -144
  11. package/dist/services/createWhook.js.map +1 -1
  12. package/dist/services/createWhook.test.js +413 -521
  13. package/dist/services/createWhook.test.js.map +1 -1
  14. package/dist/services/project.d.ts +2 -2
  15. package/dist/services/project.js +40 -62
  16. package/dist/services/project.js.map +1 -1
  17. package/dist/services/project.test.js +73 -80
  18. package/dist/services/project.test.js.map +1 -1
  19. package/package.json +52 -98
  20. package/src/index.ts +24 -18
  21. package/src/services/__snapshots__/author.test.ts.snap +3 -3
  22. package/src/services/__snapshots__/createWhook.test.ts.snap +4 -4
  23. package/src/services/author.test.ts +10 -7
  24. package/src/services/author.ts +12 -15
  25. package/src/services/createWhook.test.ts +220 -329
  26. package/src/services/createWhook.ts +20 -20
  27. package/src/services/project.test.ts +13 -8
  28. package/src/services/project.ts +6 -5
  29. package/dist/index.mjs +0 -47
  30. package/dist/index.mjs.map +0 -1
  31. package/dist/services/author.mjs +0 -63
  32. package/dist/services/author.mjs.map +0 -1
  33. package/dist/services/author.test.mjs +0 -94
  34. package/dist/services/author.test.mjs.map +0 -1
  35. package/dist/services/createWhook.mjs +0 -135
  36. package/dist/services/createWhook.mjs.map +0 -1
  37. package/dist/services/createWhook.test.mjs +0 -828
  38. package/dist/services/createWhook.test.mjs.map +0 -1
  39. package/dist/services/project.mjs +0 -50
  40. package/dist/services/project.mjs.map +0 -1
  41. package/dist/services/project.test.mjs +0 -80
  42. package/dist/services/project.test.mjs.map +0 -1
@@ -1,154 +1,134 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _knifecycle = require("knifecycle");
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _axios2 = _interopRequireDefault(require("axios"));
13
-
14
- var _ora2 = _interopRequireDefault(require("ora"));
15
-
16
- var _yerror = _interopRequireDefault(require("yerror"));
17
-
18
- var _child_process = require("child_process");
19
-
20
- var _fsExtra = require("fs-extra");
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
-
28
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
-
1
+ import { autoService } from 'knifecycle';
2
+ import path from 'path';
3
+ import { default as _axios } from 'axios';
4
+ import _ora from 'ora';
5
+ import { YError } from 'yerror';
6
+ import { exec as _exec } from 'child_process';
7
+ import { default as fsExtra } from 'fs-extra';
30
8
  const GIT_IGNORE_URL = 'https://www.gitignore.io/api/osx,node,linux';
31
9
  const README_REGEXP = /^(?:[^]*)\[\/\/\]: # \(::contents:start\)\r?\n\r?\n([^]*)\r?\n\r?\n\[\/\/\]: # \(::contents:end\)(?:[^]*)$/gm;
32
-
33
- var _default = (0, _knifecycle.service)(async function initCreateWhook({
34
- CWD,
35
- SOURCE_DIR,
36
- author,
37
- project,
38
- writeFile = _fsExtra.writeFile,
39
- readFile = _fsExtra.readFile,
40
- readdir = _fsExtra.readdir,
41
- exec = _child_process.exec,
42
- copy = _fsExtra.copy,
43
- axios = _axios2.default,
44
- ora = _ora2.default,
45
- log
46
- }) {
47
- return async function createWhook() {
48
- log('warning', "🏁️ - Starting Whook project's creation!");
49
- const basePackageJSON = JSON.parse((await readFile(_path.default.join(SOURCE_DIR, 'package.json'))).toString());
50
- const finalPackageJSON = {
51
- name: project.name,
52
- description: 'A new Whook project',
53
- version: '0.0.0',
54
- license: 'SEE LICENSE',
55
- engines: basePackageJSON.engines,
56
- main: basePackageJSON.main,
57
- module: basePackageJSON.module,
58
- types: basePackageJSON.types,
59
- private: true,
60
- keywords: ['whook'],
61
- author: {
62
- name: author.name,
63
- email: author.email
64
- },
65
- scripts: _objectSpread(_objectSpread({}, basePackageJSON.scripts), {}, {
66
- metapak: undefined,
67
- cli: undefined
68
- }),
69
- files: basePackageJSON.files.filter(pattern => pattern !== 'src/**/*'),
70
- dependencies: basePackageJSON.dependencies,
71
- devDependencies: _objectSpread(_objectSpread({}, basePackageJSON.devDependencies), {}, {
72
- metapak: undefined,
73
- 'metapak-nfroidure': undefined
74
- }),
75
- eslintConfig: basePackageJSON.eslintConfig,
76
- prettier: basePackageJSON.prettier,
77
- babel: basePackageJSON.babel,
78
- jest: basePackageJSON.jest,
79
- metapak: undefined
80
- };
81
- await Promise.all([copy(SOURCE_DIR, project.directory, {
82
- filter: (src, dest) => {
83
- if (src.startsWith(_path.default.join(SOURCE_DIR, 'node_modules')) || src.startsWith(_path.default.join(SOURCE_DIR, 'dist')) || src.startsWith(_path.default.join(SOURCE_DIR, 'coverage')) || [_path.default.join(SOURCE_DIR, 'package.json'), _path.default.join(SOURCE_DIR, 'package-lock.json'), _path.default.join(SOURCE_DIR, 'LICENSE'), _path.default.join(SOURCE_DIR, 'README.md')].includes(src)) {
84
- log('debug', `Discarding "${src}" => "${dest} ("${_path.default.relative(src, SOURCE_DIR)}").`);
85
- return false;
86
- }
87
-
88
- log('debug', `Moving "${src}" => "${dest}".`);
89
- return true;
90
- }
91
- }), readFile(_path.default.join(SOURCE_DIR, 'README.md')).then(data => writeFile(_path.default.join(project.directory, 'README.md'), `# ${project.name}
10
+ const { writeFile: _writeFile, readFile: _readFile, copy: _copy, readdir: _readdir, } = fsExtra;
11
+ export default autoService(async function initCreateWhook({ CWD, SOURCE_DIR, author, project, writeFile = _writeFile, readFile = _readFile, readdir = _readdir, exec = _exec, copy = _copy, axios = _axios, ora = _ora, log, }) {
12
+ return async function createWhook() {
13
+ log('warning', "🏁️ - Starting Whook project's creation!");
14
+ const basePackageJSON = JSON.parse((await readFile(path.join(SOURCE_DIR, 'package.json'))).toString());
15
+ const finalPackageJSON = {
16
+ name: project.name,
17
+ description: 'A new Whook project',
18
+ version: '0.0.0',
19
+ license: 'SEE LICENSE',
20
+ engines: basePackageJSON.engines,
21
+ main: basePackageJSON.main,
22
+ types: basePackageJSON.types,
23
+ type: basePackageJSON.type,
24
+ private: true,
25
+ keywords: ['whook'],
26
+ author: {
27
+ name: author.name,
28
+ email: author.email,
29
+ },
30
+ scripts: {
31
+ ...basePackageJSON.scripts,
32
+ metapak: undefined,
33
+ cli: undefined,
34
+ },
35
+ files: basePackageJSON.files.filter((pattern) => pattern !== 'src/**/*'),
36
+ dependencies: basePackageJSON.dependencies,
37
+ devDependencies: {
38
+ ...basePackageJSON.devDependencies,
39
+ metapak: undefined,
40
+ 'metapak-nfroidure': undefined,
41
+ },
42
+ eslintConfig: basePackageJSON.eslintConfig,
43
+ prettier: basePackageJSON.prettier,
44
+ jest: basePackageJSON.jest,
45
+ metapak: undefined,
46
+ };
47
+ await Promise.all([
48
+ copy(SOURCE_DIR, project.directory, {
49
+ filter: (src, dest) => {
50
+ if (src.startsWith(path.join(SOURCE_DIR, 'node_modules')) ||
51
+ src.startsWith(path.join(SOURCE_DIR, 'dist')) ||
52
+ src.startsWith(path.join(SOURCE_DIR, 'coverage')) ||
53
+ [
54
+ path.join(SOURCE_DIR, 'package.json'),
55
+ path.join(SOURCE_DIR, 'package-lock.json'),
56
+ path.join(SOURCE_DIR, 'LICENSE'),
57
+ path.join(SOURCE_DIR, 'README.md'),
58
+ ].includes(src)) {
59
+ log('debug', `Discarding "${src}" => "${dest} ("${path.relative(src, SOURCE_DIR)}").`);
60
+ return false;
61
+ }
62
+ log('debug', `Moving "${src}" => "${dest}".`);
63
+ return true;
64
+ },
65
+ }),
66
+ readFile(path.join(SOURCE_DIR, 'README.md')).then((data) => writeFile(path.join(project.directory, 'README.md'), `# ${project.name}
92
67
 
93
68
  ${data.toString().replace(README_REGEXP, '$1')}
94
69
 
95
70
  ## Author
96
71
  ${author.name}
97
72
 
98
- `)), ...(await readdir(_path.default.join(SOURCE_DIR, 'src', 'config'))).map(environment => environment === 'common' ? Promise.resolve() : writeFile(_path.default.join(project.directory, `.env.${environment}`), 'JWT_SECRET=oudelali\n')), writeFile(_path.default.join(project.directory, 'package.json'), JSON.stringify(finalPackageJSON)), writeFile(_path.default.join(project.directory, 'LICENSE'), `Copyright ${author.name}, all rights reserved.`), axios({
99
- method: 'get',
100
- url: GIT_IGNORE_URL
101
- }).then(response => writeFile(_path.default.join(project.directory, '.gitignore'), response.data)).catch(err => {
102
- log('error', `⚠️ - Could not retrieve the \`.gitignore\` file contents from: "${GIT_IGNORE_URL}"`);
103
- log('stack', err.stack);
104
- }), new Promise((resolve, reject) => exec('git init', {
105
- cwd: project.directory
106
- }, (err, stdout, stderr) => {
107
- if (err) {
108
- log('stack', stderr);
109
- reject(_yerror.default.wrap(err));
110
- return;
111
- }
112
-
113
- resolve(stdout.trim());
114
- })).catch(err => {
115
- log('error', '⚠️ - Could not initialize the git project!');
116
- log('stack', err.stack);
117
- })]);
118
- log('warning', '✔️ - Project created!');
119
- const spinner = ora({
120
- text: 'Installing dependencies...'
121
- }).start();
122
-
123
- try {
124
- await new Promise((resolve, reject) => exec('npm i', {
125
- cwd: project.directory
126
- }, (err, stdout, stderr) => {
127
- if (err) {
128
- log('stack', stderr);
129
- reject(_yerror.default.wrap(err));
130
- return;
73
+ `)),
74
+ ...(await readdir(path.join(SOURCE_DIR, 'src', 'config'))).map((environment) => environment === 'common'
75
+ ? Promise.resolve()
76
+ : writeFile(path.join(project.directory, `.env.${environment}`), 'JWT_SECRET=oudelali\n')),
77
+ writeFile(path.join(project.directory, 'package.json'), JSON.stringify(finalPackageJSON)),
78
+ writeFile(path.join(project.directory, 'LICENSE'), `Copyright ${author.name}, all rights reserved.`),
79
+ axios({
80
+ method: 'get',
81
+ url: GIT_IGNORE_URL,
82
+ })
83
+ .then((response) => writeFile(path.join(project.directory, '.gitignore'), response.data))
84
+ .catch((err) => {
85
+ log('error', `⚠️ - Could not retrieve the \`.gitignore\` file contents from: "${GIT_IGNORE_URL}"`);
86
+ log('error-stack', err.stack || 'no_stack_trace');
87
+ }),
88
+ new Promise((resolve, reject) => exec('git init', {
89
+ cwd: project.directory,
90
+ }, (err, stdout, stderr) => {
91
+ if (err) {
92
+ log('error-stack', stderr);
93
+ reject(YError.wrap(err));
94
+ return;
95
+ }
96
+ resolve(stdout.trim());
97
+ })).catch((err) => {
98
+ log('error', '⚠️ - Could not initialize the git project!');
99
+ log('error-stack', err.stack || 'no_stack_trace');
100
+ }),
101
+ ]);
102
+ log('warning', '✔️ - Project created!');
103
+ const spinner = ora({
104
+ text: 'Installing dependencies...',
105
+ }).start();
106
+ try {
107
+ await new Promise((resolve, reject) => exec('npm i', {
108
+ cwd: project.directory,
109
+ }, (err, stdout, stderr) => {
110
+ if (err) {
111
+ log('error-stack', stderr);
112
+ reject(YError.wrap(err));
113
+ return;
114
+ }
115
+ resolve(stdout.trim());
116
+ }));
117
+ spinner.stopAndPersist({
118
+ symbol: '✔️',
119
+ text: 'Installed dependencies',
120
+ });
131
121
  }
132
-
133
- resolve(stdout.trim());
134
- }));
135
- spinner.stopAndPersist({
136
- symbol: '✔️',
137
- text: 'Installed dependencies'
138
- });
139
- } catch (err) {
140
- spinner.stopAndPersist({
141
- symbol: '',
142
- text: 'Failed to install dependencies'
143
- });
144
- log('stack', err.stack);
145
- }
146
-
147
- log('warning', `➕ - Run \`cd ${_path.default.relative(CWD, project.directory)}\` to enter the project.`);
148
- log('warning', `➕ - Then run \`DRY_RUN=1 npm run dev\` to check installation.`);
149
- log('warning', `➕ - And finally run \`npm run watch\` to start dev!`);
150
- };
151
- }, "createWhook", ["CWD", "SOURCE_DIR", "author", "project", "?writeFile", "?readFile", "?readdir", "?exec", "?copy", "?axios", "?ora", "log"]);
152
-
153
- exports.default = _default;
122
+ catch (err) {
123
+ spinner.stopAndPersist({
124
+ symbol: '❌',
125
+ text: 'Failed to install dependencies',
126
+ });
127
+ log('error-stack', err.stack || 'no_stack_trace');
128
+ }
129
+ log('warning', `➕ - Run \`cd ${path.relative(CWD, project.directory)}\` to enter the project.`);
130
+ log('warning', `➕ - Then run \`DRY_RUN=1 npm run dev\` to check installation.`);
131
+ log('warning', `➕ - And finally run \`npm run watch\` to start dev!`);
132
+ };
133
+ });
154
134
  //# sourceMappingURL=createWhook.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/createWhook.ts"],"names":["GIT_IGNORE_URL","README_REGEXP","initCreateWhook","CWD","SOURCE_DIR","author","project","writeFile","_writeFile","readFile","_readFile","readdir","_readdir","exec","_exec","copy","_copy","axios","_axios","ora","_ora","log","createWhook","basePackageJSON","JSON","parse","path","join","toString","finalPackageJSON","name","description","version","license","engines","main","module","types","private","keywords","email","scripts","metapak","undefined","cli","files","filter","pattern","dependencies","devDependencies","eslintConfig","prettier","babel","jest","Promise","all","directory","src","dest","startsWith","includes","relative","then","data","replace","map","environment","resolve","stringify","method","url","response","catch","err","stack","reject","cwd","stdout","stderr","YError","wrap","trim","spinner","text","start","stopAndPersist","symbol"],"mappings":"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","sourcesContent":["import { autoService } from 'knifecycle';\nimport path from 'path';\nimport _axios from 'axios';\nimport _ora from 'ora';\nimport YError from 'yerror';\nimport { exec as _exec } from 'child_process';\nimport {\n writeFile as _writeFile,\n readFile as _readFile,\n copy as _copy,\n readdir as _readdir,\n} from 'fs-extra';\nimport type { LogService } from 'common-services';\nimport type { ProjectService } from './project';\nimport type { AuthorService } from './author';\n\nconst GIT_IGNORE_URL = 'https://www.gitignore.io/api/osx,node,linux';\nconst README_REGEXP =\n /^(?:[^]*)\\[\\/\\/\\]: # \\(::contents:start\\)\\r?\\n\\r?\\n([^]*)\\r?\\n\\r?\\n\\[\\/\\/\\]: # \\(::contents:end\\)(?:[^]*)$/gm;\n\nexport type CreateWhookService = () => Promise<void>;\n\nexport default autoService(async function initCreateWhook({\n CWD,\n SOURCE_DIR,\n author,\n project,\n writeFile = _writeFile,\n readFile = _readFile,\n readdir = _readdir,\n exec = _exec,\n copy = _copy,\n axios = _axios,\n ora = _ora,\n log,\n}: {\n CWD: string;\n SOURCE_DIR: string;\n author: AuthorService;\n project: ProjectService;\n writeFile: typeof _writeFile;\n readFile: typeof _readFile;\n readdir: typeof _readdir;\n exec: typeof _exec;\n copy: typeof _copy;\n axios?: typeof _axios;\n ora?: typeof _ora;\n log?: LogService;\n}): Promise<CreateWhookService> {\n return async function createWhook() {\n log('warning', \"🏁️ - Starting Whook project's creation!\");\n\n const basePackageJSON = JSON.parse(\n (await readFile(path.join(SOURCE_DIR, 'package.json'))).toString(),\n );\n\n const finalPackageJSON = {\n name: project.name,\n description: 'A new Whook project',\n version: '0.0.0',\n license: 'SEE LICENSE',\n engines: basePackageJSON.engines,\n main: basePackageJSON.main,\n module: basePackageJSON.module,\n types: basePackageJSON.types,\n private: true,\n keywords: ['whook'],\n author: {\n name: author.name,\n email: author.email,\n },\n scripts: {\n ...basePackageJSON.scripts,\n metapak: undefined,\n cli: undefined,\n },\n files: basePackageJSON.files.filter((pattern) => pattern !== 'src/**/*'),\n dependencies: basePackageJSON.dependencies,\n devDependencies: {\n ...basePackageJSON.devDependencies,\n metapak: undefined,\n 'metapak-nfroidure': undefined,\n },\n eslintConfig: basePackageJSON.eslintConfig,\n prettier: basePackageJSON.prettier,\n babel: basePackageJSON.babel,\n jest: basePackageJSON.jest,\n metapak: undefined,\n };\n\n await Promise.all([\n copy(SOURCE_DIR, project.directory, {\n filter: (src, dest) => {\n if (\n src.startsWith(path.join(SOURCE_DIR, 'node_modules')) ||\n src.startsWith(path.join(SOURCE_DIR, 'dist')) ||\n src.startsWith(path.join(SOURCE_DIR, 'coverage')) ||\n [\n path.join(SOURCE_DIR, 'package.json'),\n path.join(SOURCE_DIR, 'package-lock.json'),\n path.join(SOURCE_DIR, 'LICENSE'),\n path.join(SOURCE_DIR, 'README.md'),\n ].includes(src)\n ) {\n log(\n 'debug',\n `Discarding \"${src}\" => \"${dest} (\"${path.relative(\n src,\n SOURCE_DIR,\n )}\").`,\n );\n return false;\n }\n log('debug', `Moving \"${src}\" => \"${dest}\".`);\n return true;\n },\n }),\n readFile(path.join(SOURCE_DIR, 'README.md')).then((data) =>\n writeFile(\n path.join(project.directory, 'README.md'),\n `# ${project.name}\n\n${data.toString().replace(README_REGEXP, '$1')}\n\n## Author\n${author.name}\n\n`,\n ),\n ),\n ...(\n await readdir(path.join(SOURCE_DIR, 'src', 'config'))\n ).map((environment) =>\n environment === 'common'\n ? Promise.resolve()\n : writeFile(\n path.join(project.directory, `.env.${environment}`),\n 'JWT_SECRET=oudelali\\n',\n ),\n ),\n writeFile(\n path.join(project.directory, 'package.json'),\n JSON.stringify(finalPackageJSON),\n ),\n writeFile(\n path.join(project.directory, 'LICENSE'),\n `Copyright ${author.name}, all rights reserved.`,\n ),\n axios({\n method: 'get',\n url: GIT_IGNORE_URL,\n })\n .then((response) =>\n writeFile(path.join(project.directory, '.gitignore'), response.data),\n )\n .catch((err) => {\n log(\n 'error',\n `⚠️ - Could not retrieve the \\`.gitignore\\` file contents from: \"${GIT_IGNORE_URL}\"`,\n );\n log('stack', err.stack);\n }),\n new Promise((resolve, reject) =>\n exec(\n 'git init',\n {\n cwd: project.directory,\n },\n (err, stdout, stderr) => {\n if (err) {\n log('stack', stderr);\n reject(YError.wrap(err));\n return;\n }\n resolve(stdout.trim());\n },\n ),\n ).catch((err) => {\n log('error', '⚠️ - Could not initialize the git project!');\n log('stack', err.stack);\n }),\n ]);\n\n log('warning', '✔️ - Project created!');\n\n const spinner = ora({\n text: 'Installing dependencies...',\n }).start();\n\n try {\n await new Promise((resolve, reject) =>\n exec(\n 'npm i',\n {\n cwd: project.directory,\n },\n (err, stdout, stderr) => {\n if (err) {\n log('stack', stderr);\n reject(YError.wrap(err));\n return;\n }\n resolve(stdout.trim());\n },\n ),\n );\n spinner.stopAndPersist({\n symbol: '✔️',\n text: 'Installed dependencies',\n });\n } catch (err) {\n spinner.stopAndPersist({\n symbol: '❌',\n text: 'Failed to install dependencies',\n });\n log('stack', err.stack);\n }\n\n log(\n 'warning',\n `➕ - Run \\`cd ${path.relative(\n CWD,\n project.directory,\n )}\\` to enter the project.`,\n );\n log(\n 'warning',\n `➕ - Then run \\`DRY_RUN=1 npm run dev\\` to check installation.`,\n );\n log('warning', `➕ - And finally run \\`npm run watch\\` to start dev!`);\n };\n});\n"],"file":"createWhook.js"}
1
+ {"version":3,"file":"createWhook.js","sourceRoot":"","sources":["../../src/services/createWhook.ts"],"names":[],"mappings":"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"}