@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.
- package/README.md +2 -3
- package/bin/create.js +2 -2
- package/dist/index.js +46 -68
- package/dist/index.js.map +1 -1
- package/dist/services/author.js +46 -72
- package/dist/services/author.js.map +1 -1
- package/dist/services/author.test.js +86 -92
- package/dist/services/author.test.js.map +1 -1
- package/dist/services/createWhook.d.ts +10 -11
- package/dist/services/createWhook.js +124 -144
- package/dist/services/createWhook.js.map +1 -1
- package/dist/services/createWhook.test.js +413 -521
- package/dist/services/createWhook.test.js.map +1 -1
- package/dist/services/project.d.ts +2 -2
- package/dist/services/project.js +40 -62
- package/dist/services/project.js.map +1 -1
- package/dist/services/project.test.js +73 -80
- package/dist/services/project.test.js.map +1 -1
- package/package.json +52 -98
- package/src/index.ts +24 -18
- package/src/services/__snapshots__/author.test.ts.snap +3 -3
- package/src/services/__snapshots__/createWhook.test.ts.snap +4 -4
- package/src/services/author.test.ts +10 -7
- package/src/services/author.ts +12 -15
- package/src/services/createWhook.test.ts +220 -329
- package/src/services/createWhook.ts +20 -20
- package/src/services/project.test.ts +13 -8
- package/src/services/project.ts +6 -5
- package/dist/index.mjs +0 -47
- package/dist/index.mjs.map +0 -1
- package/dist/services/author.mjs +0 -63
- package/dist/services/author.mjs.map +0 -1
- package/dist/services/author.test.mjs +0 -94
- package/dist/services/author.test.mjs.map +0 -1
- package/dist/services/createWhook.mjs +0 -135
- package/dist/services/createWhook.mjs.map +0 -1
- package/dist/services/createWhook.test.mjs +0 -828
- package/dist/services/createWhook.test.mjs.map +0 -1
- package/dist/services/project.mjs +0 -50
- package/dist/services/project.mjs.map +0 -1
- package/dist/services/project.test.mjs +0 -80
- package/dist/services/project.test.mjs.map +0 -1
|
@@ -1,154 +1,134 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
`)),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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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"}
|