@whook/create 13.0.0 → 13.1.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.js +8 -10
- package/dist/index.js.map +1 -1
- package/dist/services/createWhook.js +24 -3
- package/dist/services/createWhook.js.map +1 -1
- package/dist/services/createWhook.test.js +61 -49
- package/dist/services/createWhook.test.js.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +10 -12
- package/src/services/__snapshots__/createWhook.test.ts.snap +192 -56
- package/src/services/createWhook.test.ts +63 -50
- package/src/services/createWhook.ts +35 -4
|
@@ -9,6 +9,26 @@ import type { PathLike } from 'fs-extra';
|
|
|
9
9
|
const _packageJSON = JSON.parse(
|
|
10
10
|
readFileSync('../whook-example/package.json').toString(),
|
|
11
11
|
);
|
|
12
|
+
const FILE_CONTENTS = {
|
|
13
|
+
'README.md': `
|
|
14
|
+
# test
|
|
15
|
+
> yolo
|
|
16
|
+
|
|
17
|
+
[//]: # (::contents:start)
|
|
18
|
+
|
|
19
|
+
YOLO
|
|
20
|
+
|
|
21
|
+
[//]: # (::contents:end)
|
|
22
|
+
|
|
23
|
+
# Authors
|
|
24
|
+
Mr Bean
|
|
25
|
+
`,
|
|
26
|
+
'watch.ts': `
|
|
27
|
+
the watch.ts file contents
|
|
28
|
+
with'../../' replaced so
|
|
29
|
+
equal to './'!
|
|
30
|
+
`,
|
|
31
|
+
};
|
|
12
32
|
|
|
13
33
|
describe('initCreateWhook', () => {
|
|
14
34
|
const CWD = '/home/whoiam/projects/';
|
|
@@ -60,27 +80,23 @@ describe('initCreateWhook', () => {
|
|
|
60
80
|
oraInstance.start.mockReset();
|
|
61
81
|
oraInstance.start.mockReturnValue(oraInstance);
|
|
62
82
|
oraInstance.stopAndPersist.mockReset();
|
|
63
|
-
readFile.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
YOLO
|
|
71
|
-
|
|
72
|
-
[//]: # (::contents:end)
|
|
73
|
-
|
|
74
|
-
# Authors
|
|
75
|
-
Mr Bean
|
|
83
|
+
readFile.mockImplementation(async (file) => {
|
|
84
|
+
if (file.toString().endsWith('package.json')) {
|
|
85
|
+
return Buffer.from(JSON.stringify(packageJSON));
|
|
86
|
+
}
|
|
87
|
+
const key = Object.keys(FILE_CONTENTS).find((key) =>
|
|
88
|
+
file.toString().endsWith(key),
|
|
89
|
+
);
|
|
76
90
|
|
|
77
|
-
|
|
78
|
-
|
|
91
|
+
if (key) {
|
|
92
|
+
return Buffer.from(FILE_CONTENTS[key]);
|
|
93
|
+
}
|
|
94
|
+
return Buffer.from('NO_FILE_CONTENTS');
|
|
95
|
+
});
|
|
79
96
|
});
|
|
80
97
|
|
|
81
98
|
it('should work', async () => {
|
|
82
|
-
|
|
83
|
-
readdir.mockResolvedValueOnce(['development', 'production']);
|
|
99
|
+
readdir.mockResolvedValueOnce(['local', 'production']);
|
|
84
100
|
copy.mockImplementationOnce((_, _2, { filter }) =>
|
|
85
101
|
Promise.all(
|
|
86
102
|
[
|
|
@@ -149,11 +165,11 @@ Mr Bean
|
|
|
149
165
|
"@whook/http-transaction": "<current_version>",
|
|
150
166
|
"@whook/swagger-ui": "<current_version>",
|
|
151
167
|
"@whook/whook": "<current_version>",
|
|
152
|
-
"application-services": "^
|
|
153
|
-
"common-services": "^
|
|
168
|
+
"application-services": "^4.0.0",
|
|
169
|
+
"common-services": "^15.0.0",
|
|
154
170
|
"http-auth-utils": "^5.0.1",
|
|
155
|
-
"jwt-service": "^10.0.
|
|
156
|
-
"knifecycle": "^
|
|
171
|
+
"jwt-service": "^10.0.4",
|
|
172
|
+
"knifecycle": "^17.0.1",
|
|
157
173
|
"openapi-schema-validator": "^12.1.3",
|
|
158
174
|
"openapi-types": "^12.1.3",
|
|
159
175
|
"pkg-dir": "^7.0.0",
|
|
@@ -177,7 +193,7 @@ Mr Bean
|
|
|
177
193
|
"eslint-config-prettier": "^9.0.0",
|
|
178
194
|
"eslint-plugin-prettier": "^5.0.0",
|
|
179
195
|
"jest": "^29.6.2",
|
|
180
|
-
"jsarch": "^6.0.
|
|
196
|
+
"jsarch": "^6.0.3",
|
|
181
197
|
"parse-gitignore": "^1.0.1",
|
|
182
198
|
"prettier": "^3.0.2",
|
|
183
199
|
"rimraf": "^5.0.1",
|
|
@@ -272,17 +288,17 @@ Mr Bean
|
|
|
272
288
|
"build": "rimraf 'dist' && tsc --outDir dist",
|
|
273
289
|
"cover": "npm run jest -- --coverage",
|
|
274
290
|
"debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} ts-node --esm --logError bin/dev",
|
|
275
|
-
"dev": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
291
|
+
"dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
276
292
|
"jest": "NODE_OPTIONS=--experimental-vm-modules NODE_ENV=test jest",
|
|
277
293
|
"lint": "eslint 'src/**/*.ts'",
|
|
278
|
-
"postbuild": "PROJECT_SRC="$PWD/
|
|
294
|
+
"postbuild": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --files -- bin/build.js",
|
|
279
295
|
"prettier": "prettier --write 'src/**/*.ts'",
|
|
280
296
|
"rebuild": "swc ./src -s -d dist -C jsc.target=es2022",
|
|
281
297
|
"start": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} node bin/start.js",
|
|
282
298
|
"test": "NODE_ENV=test npm run build && npm run jest",
|
|
283
299
|
"type-check": "tsc --pretty --noEmit",
|
|
284
|
-
"watch": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
285
|
-
"whook": "NODE_ENV=\${NODE_ENV:-development} whook",
|
|
300
|
+
"watch": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
301
|
+
"whook": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} whook",
|
|
286
302
|
"whook-debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEBUG=\${DEBUG:-whook} ts-node --esm --logError --files -- bin/whook.js",
|
|
287
303
|
"whook-dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/whook.js",
|
|
288
304
|
"whook-repl": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/repl.js",
|
|
@@ -306,8 +322,7 @@ Mr Bean
|
|
|
306
322
|
});
|
|
307
323
|
|
|
308
324
|
it('should handle network issues', async () => {
|
|
309
|
-
|
|
310
|
-
readdir.mockResolvedValueOnce(['development', 'production']);
|
|
325
|
+
readdir.mockResolvedValueOnce(['local', 'production']);
|
|
311
326
|
copy.mockImplementationOnce((_, _2, { filter }) =>
|
|
312
327
|
Promise.all(
|
|
313
328
|
[
|
|
@@ -372,11 +387,11 @@ Mr Bean
|
|
|
372
387
|
"@whook/http-transaction": "<current_version>",
|
|
373
388
|
"@whook/swagger-ui": "<current_version>",
|
|
374
389
|
"@whook/whook": "<current_version>",
|
|
375
|
-
"application-services": "^
|
|
376
|
-
"common-services": "^
|
|
390
|
+
"application-services": "^4.0.0",
|
|
391
|
+
"common-services": "^15.0.0",
|
|
377
392
|
"http-auth-utils": "^5.0.1",
|
|
378
|
-
"jwt-service": "^10.0.
|
|
379
|
-
"knifecycle": "^
|
|
393
|
+
"jwt-service": "^10.0.4",
|
|
394
|
+
"knifecycle": "^17.0.1",
|
|
380
395
|
"openapi-schema-validator": "^12.1.3",
|
|
381
396
|
"openapi-types": "^12.1.3",
|
|
382
397
|
"pkg-dir": "^7.0.0",
|
|
@@ -400,7 +415,7 @@ Mr Bean
|
|
|
400
415
|
"eslint-config-prettier": "^9.0.0",
|
|
401
416
|
"eslint-plugin-prettier": "^5.0.0",
|
|
402
417
|
"jest": "^29.6.2",
|
|
403
|
-
"jsarch": "^6.0.
|
|
418
|
+
"jsarch": "^6.0.3",
|
|
404
419
|
"parse-gitignore": "^1.0.1",
|
|
405
420
|
"prettier": "^3.0.2",
|
|
406
421
|
"rimraf": "^5.0.1",
|
|
@@ -495,17 +510,17 @@ Mr Bean
|
|
|
495
510
|
"build": "rimraf 'dist' && tsc --outDir dist",
|
|
496
511
|
"cover": "npm run jest -- --coverage",
|
|
497
512
|
"debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} ts-node --esm --logError bin/dev",
|
|
498
|
-
"dev": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
513
|
+
"dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
499
514
|
"jest": "NODE_OPTIONS=--experimental-vm-modules NODE_ENV=test jest",
|
|
500
515
|
"lint": "eslint 'src/**/*.ts'",
|
|
501
|
-
"postbuild": "PROJECT_SRC="$PWD/
|
|
516
|
+
"postbuild": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --files -- bin/build.js",
|
|
502
517
|
"prettier": "prettier --write 'src/**/*.ts'",
|
|
503
518
|
"rebuild": "swc ./src -s -d dist -C jsc.target=es2022",
|
|
504
519
|
"start": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} node bin/start.js",
|
|
505
520
|
"test": "NODE_ENV=test npm run build && npm run jest",
|
|
506
521
|
"type-check": "tsc --pretty --noEmit",
|
|
507
|
-
"watch": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
508
|
-
"whook": "NODE_ENV=\${NODE_ENV:-development} whook",
|
|
522
|
+
"watch": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
523
|
+
"whook": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} whook",
|
|
509
524
|
"whook-debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEBUG=\${DEBUG:-whook} ts-node --esm --logError --files -- bin/whook.js",
|
|
510
525
|
"whook-dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/whook.js",
|
|
511
526
|
"whook-repl": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/repl.js",
|
|
@@ -529,8 +544,7 @@ Mr Bean
|
|
|
529
544
|
});
|
|
530
545
|
|
|
531
546
|
it('should handle git initialization problems', async () => {
|
|
532
|
-
|
|
533
|
-
readdir.mockResolvedValueOnce(['development', 'production']);
|
|
547
|
+
readdir.mockResolvedValueOnce(['local', 'production']);
|
|
534
548
|
copy.mockResolvedValueOnce(new YError('E_ACCESS'));
|
|
535
549
|
axios.mockResolvedValueOnce({
|
|
536
550
|
data: 'node_modules',
|
|
@@ -580,11 +594,11 @@ Mr Bean
|
|
|
580
594
|
"@whook/http-transaction": "<current_version>",
|
|
581
595
|
"@whook/swagger-ui": "<current_version>",
|
|
582
596
|
"@whook/whook": "<current_version>",
|
|
583
|
-
"application-services": "^
|
|
584
|
-
"common-services": "^
|
|
597
|
+
"application-services": "^4.0.0",
|
|
598
|
+
"common-services": "^15.0.0",
|
|
585
599
|
"http-auth-utils": "^5.0.1",
|
|
586
|
-
"jwt-service": "^10.0.
|
|
587
|
-
"knifecycle": "^
|
|
600
|
+
"jwt-service": "^10.0.4",
|
|
601
|
+
"knifecycle": "^17.0.1",
|
|
588
602
|
"openapi-schema-validator": "^12.1.3",
|
|
589
603
|
"openapi-types": "^12.1.3",
|
|
590
604
|
"pkg-dir": "^7.0.0",
|
|
@@ -608,7 +622,7 @@ Mr Bean
|
|
|
608
622
|
"eslint-config-prettier": "^9.0.0",
|
|
609
623
|
"eslint-plugin-prettier": "^5.0.0",
|
|
610
624
|
"jest": "^29.6.2",
|
|
611
|
-
"jsarch": "^6.0.
|
|
625
|
+
"jsarch": "^6.0.3",
|
|
612
626
|
"parse-gitignore": "^1.0.1",
|
|
613
627
|
"prettier": "^3.0.2",
|
|
614
628
|
"rimraf": "^5.0.1",
|
|
@@ -703,17 +717,17 @@ Mr Bean
|
|
|
703
717
|
"build": "rimraf 'dist' && tsc --outDir dist",
|
|
704
718
|
"cover": "npm run jest -- --coverage",
|
|
705
719
|
"debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 DEBUG=\${DEBUG:-whook} ts-node --esm --logError bin/dev",
|
|
706
|
-
"dev": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
720
|
+
"dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/dev.js",
|
|
707
721
|
"jest": "NODE_OPTIONS=--experimental-vm-modules NODE_ENV=test jest",
|
|
708
722
|
"lint": "eslint 'src/**/*.ts'",
|
|
709
|
-
"postbuild": "PROJECT_SRC="$PWD/
|
|
723
|
+
"postbuild": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --files -- bin/build.js",
|
|
710
724
|
"prettier": "prettier --write 'src/**/*.ts'",
|
|
711
725
|
"rebuild": "swc ./src -s -d dist -C jsc.target=es2022",
|
|
712
726
|
"start": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} node bin/start.js",
|
|
713
727
|
"test": "NODE_ENV=test npm run build && npm run jest",
|
|
714
728
|
"type-check": "tsc --pretty --noEmit",
|
|
715
|
-
"watch": "NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
716
|
-
"whook": "NODE_ENV=\${NODE_ENV:-development} whook",
|
|
729
|
+
"watch": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEV_MODE=1 DESTROY_SOCKETS=1 ts-node --esm --logError --files bin/watch.js",
|
|
730
|
+
"whook": "PROJECT_SRC="$PWD/dist" NODE_ENV=\${NODE_ENV:-development} whook",
|
|
717
731
|
"whook-debug": "NODE_OPTIONS=\${NODE_OPTIONS:-'--inspect'} PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} DEBUG=\${DEBUG:-whook} ts-node --esm --logError --files -- bin/whook.js",
|
|
718
732
|
"whook-dev": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/whook.js",
|
|
719
733
|
"whook-repl": "PROJECT_SRC="$PWD/src" NODE_ENV=\${NODE_ENV:-development} ts-node --esm --logError --files -- bin/repl.js",
|
|
@@ -737,8 +751,7 @@ Mr Bean
|
|
|
737
751
|
});
|
|
738
752
|
|
|
739
753
|
it('should fail with access problems', async () => {
|
|
740
|
-
|
|
741
|
-
readdir.mockResolvedValueOnce(['development', 'production']);
|
|
754
|
+
readdir.mockResolvedValueOnce(['local', 'production']);
|
|
742
755
|
copy.mockRejectedValueOnce(new YError('E_ACCESS'));
|
|
743
756
|
axios.mockResolvedValueOnce({
|
|
744
757
|
data: 'node_modules',
|
|
@@ -9,7 +9,8 @@ import type { LogService } from 'common-services';
|
|
|
9
9
|
import type { ProjectService } from './project.js';
|
|
10
10
|
import type { AuthorService } from './author.js';
|
|
11
11
|
|
|
12
|
-
const GIT_IGNORE_URL =
|
|
12
|
+
const GIT_IGNORE_URL =
|
|
13
|
+
'https://www.toptal.com/developers/gitignore/api/osx,node,linux';
|
|
13
14
|
const README_REGEXP =
|
|
14
15
|
/^(?:[^]*)\[\/\/\]: # \(::contents:start\)\r?\n\r?\n([^]*)\r?\n\r?\n\[\/\/\]: # \(::contents:end\)(?:[^]*)$/gm;
|
|
15
16
|
const {
|
|
@@ -100,6 +101,7 @@ export default autoService(async function initCreateWhook({
|
|
|
100
101
|
path.join(SOURCE_DIR, 'package-lock.json'),
|
|
101
102
|
path.join(SOURCE_DIR, 'LICENSE'),
|
|
102
103
|
path.join(SOURCE_DIR, 'README.md'),
|
|
104
|
+
path.join(SOURCE_DIR, 'src/watch.ts'),
|
|
103
105
|
].includes(src)
|
|
104
106
|
) {
|
|
105
107
|
log(
|
|
@@ -133,14 +135,35 @@ ${author.name}
|
|
|
133
135
|
environment === 'common'
|
|
134
136
|
? Promise.resolve()
|
|
135
137
|
: writeFile(
|
|
136
|
-
path.join(project.directory, `.env.${environment}`),
|
|
137
|
-
|
|
138
|
+
path.join(project.directory, `.env.app.${environment}`),
|
|
139
|
+
`# Loaded when APP_ENV=${environment}
|
|
140
|
+
|
|
141
|
+
# For JWT signing
|
|
142
|
+
JWT_SECRET=oudelali
|
|
143
|
+
`,
|
|
138
144
|
),
|
|
139
145
|
),
|
|
146
|
+
writeFile(
|
|
147
|
+
path.join(project.directory, '.env.node.development'),
|
|
148
|
+
`# Loaded when NODE_ENV=development
|
|
149
|
+
|
|
150
|
+
# Allow to kill the process with still open sockets
|
|
151
|
+
DESTROY_SOCKETS=1'
|
|
152
|
+
|
|
153
|
+
# Common env var to get dev outputs
|
|
154
|
+
DEV_MODE=1
|
|
155
|
+
`,
|
|
156
|
+
),
|
|
140
157
|
writeFile(
|
|
141
158
|
path.join(project.directory, 'package.json'),
|
|
142
159
|
JSON.stringify(finalPackageJSON, null, 2),
|
|
143
160
|
),
|
|
161
|
+
readFile(path.join(SOURCE_DIR, 'src/watch.ts')).then((data) => {
|
|
162
|
+
return writeFile(
|
|
163
|
+
path.join(project.directory, 'src/watch.ts'),
|
|
164
|
+
data.toString().replace('../../', './'),
|
|
165
|
+
);
|
|
166
|
+
}),
|
|
144
167
|
writeFile(
|
|
145
168
|
path.join(project.directory, 'tsconfig.json'),
|
|
146
169
|
JSON.stringify(
|
|
@@ -179,7 +202,15 @@ ${author.name}
|
|
|
179
202
|
},
|
|
180
203
|
})
|
|
181
204
|
.then((response) =>
|
|
182
|
-
writeFile(
|
|
205
|
+
writeFile(
|
|
206
|
+
path.join(project.directory, '.gitignore'),
|
|
207
|
+
`${response.data.toString()}
|
|
208
|
+
|
|
209
|
+
# Whook's files
|
|
210
|
+
builds/
|
|
211
|
+
.env*
|
|
212
|
+
`,
|
|
213
|
+
),
|
|
183
214
|
)
|
|
184
215
|
.catch((err) => {
|
|
185
216
|
log(
|