rebuildjs 0.50.2 → 0.51.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/_fixtures/src/index.ts +4 -7
- package/package.json +6 -10
- package/server/build/index.js +54 -45
- package/server/build/index.test.ts +10 -3
- package/server/rebuildjs_browser/index.js +18 -28
- package/server/rebuildjs_browser/index.test.ts +0 -11
- package/server/rebuildjs_server/index.js +18 -29
- package/server/rebuildjs_server/index.test.ts +1 -13
package/_fixtures/src/index.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { is_entry_file_ } from 'ctx-core/fs'
|
|
2
2
|
import { rebuildjs_browser__build, rebuildjs_server__build } from '../../server/build/index.js'
|
|
3
|
-
is_entry_file_(import.meta.url, process.argv[1])
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
await rebuildjs_browser__build()
|
|
8
|
-
}
|
|
9
|
-
})
|
|
3
|
+
if (is_entry_file_(import.meta.url, process.argv[1])) {
|
|
4
|
+
await rebuildjs_server__build()
|
|
5
|
+
await rebuildjs_browser__build()
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rebuildjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.51.0",
|
|
4
4
|
"description": "Reactive esbuild...simple hackable alternative to vite for Multi Page Apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"reactive",
|
|
@@ -35,31 +35,27 @@
|
|
|
35
35
|
"exports": {
|
|
36
36
|
".": {
|
|
37
37
|
"types": "./index.d.ts",
|
|
38
|
-
"default": "./index.js"
|
|
39
|
-
"module": "./index.js"
|
|
38
|
+
"default": "./index.js"
|
|
40
39
|
},
|
|
41
40
|
"./any": {
|
|
42
41
|
"types": "./any/index.d.ts",
|
|
43
|
-
"default": "./any/index.js"
|
|
44
|
-
"module": "./any/index.js"
|
|
42
|
+
"default": "./any/index.js"
|
|
45
43
|
},
|
|
46
44
|
"./browser": {
|
|
47
45
|
"types": "./browser/index.d.ts",
|
|
48
|
-
"default": "./browser/index.js"
|
|
49
|
-
"module": "./browser/index.js"
|
|
46
|
+
"default": "./browser/index.js"
|
|
50
47
|
},
|
|
51
48
|
"./types": {
|
|
52
49
|
"types": "./types/index.d.ts"
|
|
53
50
|
},
|
|
54
51
|
"./server": {
|
|
55
52
|
"types": "./server/index.d.ts",
|
|
56
|
-
"default": "./server/index.js"
|
|
57
|
-
"module": "./server/index.js"
|
|
53
|
+
"default": "./server/index.js"
|
|
58
54
|
},
|
|
59
55
|
"./package.json": "./package.json"
|
|
60
56
|
},
|
|
61
57
|
"dependencies": {
|
|
62
|
-
"ctx-core": "^5.
|
|
58
|
+
"ctx-core": "^5.33.0",
|
|
63
59
|
"elysia": "^0.8.14",
|
|
64
60
|
"esbuild": "^0.20.0",
|
|
65
61
|
"fdir": "^6.1.1",
|
package/server/build/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="../metafile_l0/index.d.ts" />
|
|
2
|
-
/// <reference types="./index.d.ts" />
|
|
3
2
|
import { file_exists__waitfor } from 'ctx-core/fs'
|
|
3
|
+
/// <reference types="./index.d.ts" />
|
|
4
4
|
import {
|
|
5
5
|
be,
|
|
6
6
|
be_memo_pair_,
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
cancel__period_,
|
|
10
10
|
memo_,
|
|
11
11
|
nullish__none_,
|
|
12
|
-
off,
|
|
12
|
+
off, promise__cancel,
|
|
13
|
+
promise__cancel__throw,
|
|
13
14
|
rmemo__wait,
|
|
14
|
-
run
|
|
15
|
-
waitfor
|
|
15
|
+
run
|
|
16
16
|
} from 'ctx-core/rmemo'
|
|
17
17
|
import { short_uuid_ } from 'ctx-core/uuid'
|
|
18
18
|
import { context } from 'esbuild'
|
|
@@ -28,6 +28,8 @@ import {
|
|
|
28
28
|
server__relative_path_,
|
|
29
29
|
server_path_
|
|
30
30
|
} from '../app/index.js'
|
|
31
|
+
import { app_ctx } from '../ctx/index.js'
|
|
32
|
+
import { metafile__build_id_ } from '../metafile/index.js'
|
|
31
33
|
import {
|
|
32
34
|
browser__metafile_,
|
|
33
35
|
browser__metafile__persist,
|
|
@@ -36,8 +38,6 @@ import {
|
|
|
36
38
|
browser__output_,
|
|
37
39
|
browser__output__relative_path_
|
|
38
40
|
} from '../rebuildjs_browser/index.js'
|
|
39
|
-
import { app_ctx } from '../ctx/index.js'
|
|
40
|
-
import { metafile__build_id_ } from '../metafile/index.js'
|
|
41
41
|
import {
|
|
42
42
|
server__metafile_,
|
|
43
43
|
server__metafile__persist,
|
|
@@ -70,26 +70,12 @@ export const [
|
|
|
70
70
|
const metafile__build_id = metafile__build_id_(ctx)
|
|
71
71
|
const server__metafile_path = server__metafile_path_(ctx)
|
|
72
72
|
const browser__metafile_path = browser__metafile_path_(ctx)
|
|
73
|
+
const cancel__period = cancel__period_(0, cancel_)
|
|
73
74
|
if (metafile__build_id) {
|
|
74
|
-
const cancel__period = cancel__period_(0, cancel_)
|
|
75
75
|
run(async ()=>{
|
|
76
76
|
try {
|
|
77
|
-
await
|
|
78
|
-
|
|
79
|
-
await cmd(
|
|
80
|
-
waitfor(()=>
|
|
81
|
-
readFile(server__metafile_path).then(buf=>
|
|
82
|
-
JSON.parse('' + buf)?.build_id === build_id),
|
|
83
|
-
1000,
|
|
84
|
-
cancel__period))
|
|
85
|
-
await cmd(
|
|
86
|
-
file_exists__waitfor(browser__metafile_path, 1000, cancel__period))
|
|
87
|
-
await cmd(
|
|
88
|
-
waitfor(()=>
|
|
89
|
-
readFile(browser__metafile_path).then(buf=>
|
|
90
|
-
JSON.parse('' + buf)?.build_id === build_id),
|
|
91
|
-
1000,
|
|
92
|
-
cancel__period))
|
|
77
|
+
await build_id__match__waitfor(server__metafile_path)
|
|
78
|
+
await build_id__match__waitfor(browser__metafile_path)
|
|
93
79
|
persist__metafile__build_id$._ = build_id
|
|
94
80
|
} catch (err) {
|
|
95
81
|
if (err instanceof Cancel) return
|
|
@@ -97,13 +83,23 @@ export const [
|
|
|
97
83
|
}
|
|
98
84
|
})
|
|
99
85
|
}
|
|
86
|
+
function build_id__match__waitfor(metafile_path) {
|
|
87
|
+
return file_exists__waitfor(async ()=>{
|
|
88
|
+
const buf = await cmd(readFile(metafile_path))
|
|
89
|
+
const json = buf + ''
|
|
90
|
+
try {
|
|
91
|
+
return JSON.parse(json).build_id === build_id
|
|
92
|
+
} catch {
|
|
93
|
+
return undefined
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
1000,
|
|
97
|
+
cancel__period)
|
|
98
|
+
}
|
|
100
99
|
async function cmd(promise) {
|
|
101
|
-
if (cancel_())
|
|
100
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
102
101
|
const rv = await promise
|
|
103
|
-
if (cancel_())
|
|
104
|
-
promise.cancel?.()
|
|
105
|
-
throw new Cancel
|
|
106
|
-
}
|
|
102
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
107
103
|
return rv
|
|
108
104
|
}
|
|
109
105
|
function cancel_() {
|
|
@@ -196,6 +192,10 @@ export async function rebuildjs_browser__build(config) {
|
|
|
196
192
|
.withFullPaths()
|
|
197
193
|
.crawl(app_path_(app_ctx))
|
|
198
194
|
.withPromise()
|
|
195
|
+
.catch(err=>{
|
|
196
|
+
console.error('fdir|browser|catch', { err })
|
|
197
|
+
throw err
|
|
198
|
+
})
|
|
199
199
|
/** @type {string[]} */
|
|
200
200
|
const entryPoints = esbuild__config?.entryPoints ?? []
|
|
201
201
|
for (const path of path_a) {
|
|
@@ -247,6 +247,10 @@ export async function rebuildjs_server__build(config) {
|
|
|
247
247
|
.withFullPaths()
|
|
248
248
|
.crawl(app_path_(app_ctx))
|
|
249
249
|
.withPromise()
|
|
250
|
+
.catch(err=>{
|
|
251
|
+
console.error('fdir|server|catch', { err })
|
|
252
|
+
throw err
|
|
253
|
+
})
|
|
250
254
|
/** @type {string[]} */
|
|
251
255
|
const entryPoints = esbuild__config?.entryPoints ?? []
|
|
252
256
|
for (const path of path_a) {
|
|
@@ -381,14 +385,18 @@ export function rebuildjs_plugin_() {
|
|
|
381
385
|
if (cssBundle && esbuild_cssBundle) {
|
|
382
386
|
const cssBundle_path = join(cwd_(ctx), cssBundle)
|
|
383
387
|
const esbuild_cssBundle_path = join(cwd_(ctx), esbuild_cssBundle)
|
|
384
|
-
await
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
388
|
+
await file_exists__waitfor(async ()=>{
|
|
389
|
+
await cmd(
|
|
390
|
+
cp(cssBundle_path, esbuild_cssBundle_path))
|
|
391
|
+
return true
|
|
392
|
+
})
|
|
393
|
+
await file_exists__waitfor(async ()=>{
|
|
394
|
+
await cmd(
|
|
395
|
+
cp(
|
|
396
|
+
cssBundle_path + '.map',
|
|
397
|
+
esbuild_cssBundle_path + '.map'))
|
|
398
|
+
return true
|
|
399
|
+
})
|
|
392
400
|
}
|
|
393
401
|
}
|
|
394
402
|
}
|
|
@@ -407,25 +415,26 @@ export function rebuildjs_plugin_() {
|
|
|
407
415
|
const browser_asset_path = join(
|
|
408
416
|
browser_path,
|
|
409
417
|
relative(server__relative_path, output__relative_path))
|
|
410
|
-
await
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
418
|
+
await file_exists__waitfor(async ()=>{
|
|
419
|
+
await cmd(
|
|
420
|
+
rm(browser_asset_path, { force: true }))
|
|
421
|
+
await cmd(
|
|
422
|
+
link(server_asset_path, browser_asset_path))
|
|
423
|
+
return true
|
|
424
|
+
})
|
|
416
425
|
}
|
|
417
426
|
}
|
|
418
427
|
async function cmd(promise) {
|
|
419
|
-
if (cancel_())
|
|
428
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
420
429
|
promise.rebuildjs_cancel$ = run(memo_(rebuildjs_cancel$=>{
|
|
421
430
|
if (cancel_()) {
|
|
422
|
-
promise
|
|
431
|
+
promise__cancel(promise)
|
|
423
432
|
off(rebuildjs_cancel$)
|
|
424
433
|
}
|
|
425
434
|
return rebuildjs_cancel$
|
|
426
435
|
}))
|
|
427
436
|
const ret = await promise
|
|
428
|
-
if (cancel_())
|
|
437
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
429
438
|
return ret
|
|
430
439
|
}
|
|
431
440
|
function cancel_() {
|
|
@@ -7,7 +7,12 @@ import { rm } from 'node:fs/promises'
|
|
|
7
7
|
import { basename, dirname, join } from 'node:path'
|
|
8
8
|
import { test } from 'uvu'
|
|
9
9
|
import { equal, throws } from 'uvu/assert'
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
browser__metafile0,
|
|
12
|
+
browser__metafile1,
|
|
13
|
+
server__metafile0,
|
|
14
|
+
server__metafile1
|
|
15
|
+
} from '../../_fixtures/metafiles.js'
|
|
11
16
|
import { cwd_, cwd__set } from '../app/index.js'
|
|
12
17
|
import { browser__metafile_, browser__metafile__set } from '../rebuildjs_browser/index.js'
|
|
13
18
|
import { app_ctx } from '../ctx/index.js'
|
|
@@ -214,7 +219,8 @@ test('rebuildjs_browser__build|rebuildjs_server__build|rebuildjs_plugin_|css', a
|
|
|
214
219
|
true)
|
|
215
220
|
equal(
|
|
216
221
|
await readFile(join(cwd_(app_ctx), browser__entryPoint__output.cssBundle + '.map')).then(buf=>buf + '')
|
|
217
|
-
=== await readFile(join(cwd_(app_ctx), browser__entryPoint__output.esbuild_cssBundle + '.map')).then(
|
|
222
|
+
=== await readFile(join(cwd_(app_ctx), browser__entryPoint__output.esbuild_cssBundle + '.map')).then(
|
|
223
|
+
buf=>buf + ''),
|
|
218
224
|
true)
|
|
219
225
|
equal(
|
|
220
226
|
await readFile(join(cwd_(app_ctx), server__entryPoint__output.cssBundle!)).then(buf=>buf + '')
|
|
@@ -222,7 +228,8 @@ test('rebuildjs_browser__build|rebuildjs_server__build|rebuildjs_plugin_|css', a
|
|
|
222
228
|
true)
|
|
223
229
|
equal(
|
|
224
230
|
await readFile(join(cwd_(app_ctx), browser__entryPoint__output.cssBundle + '.map')).then(buf=>buf + '')
|
|
225
|
-
=== await readFile(join(cwd_(app_ctx), browser__entryPoint__output.esbuild_cssBundle + '.map')).then(
|
|
231
|
+
=== await readFile(join(cwd_(app_ctx), browser__entryPoint__output.esbuild_cssBundle + '.map')).then(
|
|
232
|
+
buf=>buf + ''),
|
|
226
233
|
true)
|
|
227
234
|
} finally {
|
|
228
235
|
await rebuildjs__ready__wait()
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
Cancel,
|
|
6
6
|
memo_,
|
|
7
7
|
nullish__none_,
|
|
8
|
+
promise__cancel__throw,
|
|
8
9
|
sleep,
|
|
9
|
-
tup
|
|
10
|
-
waitfor
|
|
10
|
+
tup
|
|
11
11
|
} from 'ctx-core/rmemo'
|
|
12
12
|
import { mkdir, readFile, writeFile } from 'node:fs/promises'
|
|
13
13
|
import { join, relative } from 'node:path'
|
|
@@ -32,39 +32,29 @@ export const [
|
|
|
32
32
|
memo_(browser__metafile__waitfor_promise$=>{
|
|
33
33
|
browser__metafile__waitfor_promise$.val?.cancel?.()
|
|
34
34
|
if (browser__metafile$.lock) return
|
|
35
|
-
|
|
35
|
+
nullish__none_([browser__metafile_path_(ctx)],
|
|
36
36
|
browser__metafile_path=>{
|
|
37
|
-
|
|
38
|
-
file_exists__waitfor(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
waitfor(async ()=>{
|
|
47
|
-
const buf = await cmd(readFile(browser__metafile_path))
|
|
48
|
-
const json = buf + ''
|
|
49
|
-
try {
|
|
50
|
-
return JSON.parse(json)
|
|
51
|
-
} catch {
|
|
52
|
-
return undefined
|
|
53
|
-
}
|
|
54
|
-
}, 1000))
|
|
37
|
+
browser__metafile__waitfor_promise$._ =
|
|
38
|
+
file_exists__waitfor(async ()=>{
|
|
39
|
+
const buf = await cmd(
|
|
40
|
+
readFile(browser__metafile_path))
|
|
41
|
+
const json = buf + ''
|
|
42
|
+
try {
|
|
43
|
+
return browser__metafile$._ = JSON.parse(json)
|
|
44
|
+
} catch {
|
|
45
|
+
return undefined
|
|
55
46
|
}
|
|
56
|
-
}
|
|
47
|
+
},
|
|
48
|
+
1000,
|
|
49
|
+
()=>cmd(sleep(0))
|
|
50
|
+
).catch(err=>{
|
|
57
51
|
if (err instanceof Cancel) return
|
|
58
52
|
throw err
|
|
59
53
|
})
|
|
60
|
-
return browser__metafile__waitfor_promise
|
|
61
54
|
async function cmd(promise) {
|
|
62
|
-
if (cancel_())
|
|
55
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
63
56
|
const rv = await promise
|
|
64
|
-
if (cancel_())
|
|
65
|
-
promise.cancel?.()
|
|
66
|
-
throw new Cancel()
|
|
67
|
-
}
|
|
57
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
68
58
|
return rv
|
|
69
59
|
}
|
|
70
60
|
function cancel_() {
|
|
@@ -56,7 +56,6 @@ test('browser__metafile_path', ()=>{
|
|
|
56
56
|
throws(()=>browser__metafile_path_(ctx_()))
|
|
57
57
|
})
|
|
58
58
|
test('browser__metafile', async ()=>{
|
|
59
|
-
let file_exists__waitfor__path:string|undefined = undefined
|
|
60
59
|
let readFile_path:string|undefined = undefined
|
|
61
60
|
let _browser__metafile$_:typeof browser__metafile$_
|
|
62
61
|
let _browser__metafile_:typeof browser__metafile_
|
|
@@ -70,13 +69,6 @@ test('browser__metafile', async ()=>{
|
|
|
70
69
|
browser__metafile__set: _browser__metafile__set,
|
|
71
70
|
} = await esmock.p('./index.js', import.meta.url, {}, {
|
|
72
71
|
'ctx-core/rmemo': rmemo,
|
|
73
|
-
// TODO: remove with https://github.com/iambumblehead/esmock/issues/281
|
|
74
|
-
'ctx-core/fs': {
|
|
75
|
-
file_exists__waitfor: async (path:string)=>{
|
|
76
|
-
file_exists__waitfor__path = path
|
|
77
|
-
return true
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
72
|
'node:fs/promises': {
|
|
81
73
|
// TODO: https://github.com/iambumblehead/esmock/issues/281
|
|
82
74
|
// access: async ()=>{},
|
|
@@ -101,7 +93,6 @@ test('browser__metafile', async ()=>{
|
|
|
101
93
|
100)
|
|
102
94
|
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
103
95
|
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
104
|
-
equal(file_exists__waitfor__path, '/cwd/dist0/browser/metafile.json')
|
|
105
96
|
equal(readFile_path, '/cwd/dist0/browser/metafile.json')
|
|
106
97
|
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
107
98
|
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
@@ -112,7 +103,6 @@ test('browser__metafile', async ()=>{
|
|
|
112
103
|
100)
|
|
113
104
|
equal(_browser__metafile$_(app_ctx)._, browser__metafile1)
|
|
114
105
|
equal(_browser__metafile_(app_ctx), browser__metafile1)
|
|
115
|
-
equal(file_exists__waitfor__path, '/cwd/dist1/browser/metafile.json')
|
|
116
106
|
equal(readFile_path, '/cwd/dist1/browser/metafile.json')
|
|
117
107
|
dist_path__set(app_ctx, '/cwd/dist0')
|
|
118
108
|
await rmemo__wait(
|
|
@@ -121,7 +111,6 @@ test('browser__metafile', async ()=>{
|
|
|
121
111
|
100)
|
|
122
112
|
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
123
113
|
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
124
|
-
equal(file_exists__waitfor__path, '/cwd/dist0/browser/metafile.json')
|
|
125
114
|
equal(readFile_path, '/cwd/dist0/browser/metafile.json')
|
|
126
115
|
_browser__metafile__set(app_ctx, browser__metafile2)
|
|
127
116
|
equal(_browser__metafile$_(app_ctx)._, browser__metafile2)
|
|
@@ -5,10 +5,9 @@ import {
|
|
|
5
5
|
be_sig_triple_,
|
|
6
6
|
Cancel,
|
|
7
7
|
memo_,
|
|
8
|
-
nullish__none_,
|
|
8
|
+
nullish__none_, promise__cancel__throw,
|
|
9
9
|
sleep,
|
|
10
|
-
tup
|
|
11
|
-
waitfor
|
|
10
|
+
tup
|
|
12
11
|
} from 'ctx-core/rmemo'
|
|
13
12
|
import { mkdir, readFile, writeFile } from 'node:fs/promises'
|
|
14
13
|
import { join, relative } from 'node:path'
|
|
@@ -32,39 +31,29 @@ export const [
|
|
|
32
31
|
memo_(server__metafile__waitfor_promise$=>{
|
|
33
32
|
server__metafile__waitfor_promise$.val?.cancel?.()
|
|
34
33
|
if (server__metafile$.lock) return
|
|
35
|
-
|
|
34
|
+
nullish__none_([server__metafile_path_(ctx)],
|
|
36
35
|
server__metafile_path=>{
|
|
37
|
-
|
|
38
|
-
file_exists__waitfor(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
waitfor(async ()=>{
|
|
47
|
-
const buf = await cmd(readFile(server__metafile_path))
|
|
48
|
-
const json = buf + ''
|
|
49
|
-
try {
|
|
50
|
-
return JSON.parse(json)
|
|
51
|
-
} catch {
|
|
52
|
-
return undefined
|
|
53
|
-
}
|
|
54
|
-
}, 1000))
|
|
36
|
+
server__metafile__waitfor_promise$._ =
|
|
37
|
+
file_exists__waitfor(async ()=>{
|
|
38
|
+
const buf = await cmd(
|
|
39
|
+
readFile(server__metafile_path))
|
|
40
|
+
const json = buf + ''
|
|
41
|
+
try {
|
|
42
|
+
return server__metafile$._ = JSON.parse(json)
|
|
43
|
+
} catch {
|
|
44
|
+
return undefined
|
|
55
45
|
}
|
|
56
|
-
}
|
|
46
|
+
},
|
|
47
|
+
1000,
|
|
48
|
+
()=>cmd(sleep(0))
|
|
49
|
+
).catch(err=>{
|
|
57
50
|
if (err instanceof Cancel) return
|
|
58
51
|
throw err
|
|
59
52
|
})
|
|
60
|
-
return server__metafile__waitfor_promise
|
|
61
53
|
async function cmd(promise) {
|
|
62
|
-
if (cancel_())
|
|
54
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
63
55
|
const rv = await promise
|
|
64
|
-
if (cancel_())
|
|
65
|
-
promise.cancel?.()
|
|
66
|
-
throw new Cancel()
|
|
67
|
-
}
|
|
56
|
+
if (cancel_()) promise__cancel__throw(promise)
|
|
68
57
|
return rv
|
|
69
58
|
}
|
|
70
59
|
function cancel_() {
|
|
@@ -51,7 +51,6 @@ test('server__metafile_path', ()=>{
|
|
|
51
51
|
throws(()=>server__metafile_path_(ctx_()))
|
|
52
52
|
})
|
|
53
53
|
test('server__metafile', async ()=>{
|
|
54
|
-
let file_exists__waitfor__path:string|undefined = undefined
|
|
55
54
|
let readFile_path:string|undefined = undefined
|
|
56
55
|
let _server__metafile$_:typeof server__metafile$_
|
|
57
56
|
let _server__metafile_:typeof server__metafile_
|
|
@@ -63,16 +62,8 @@ test('server__metafile', async ()=>{
|
|
|
63
62
|
server__metafile__set: _server__metafile__set,
|
|
64
63
|
} = await esmock('./index.js', {}, {
|
|
65
64
|
'ctx-core/rmemo': rmemo,
|
|
66
|
-
// TODO: remove with https://github.com/iambumblehead/esmock/issues/281
|
|
67
|
-
'ctx-core/fs': {
|
|
68
|
-
file_exists__waitfor: async (path:string)=>{
|
|
69
|
-
file_exists__waitfor__path = path
|
|
70
|
-
return true
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
65
|
'node:fs/promises': {
|
|
74
|
-
|
|
75
|
-
// access: async ()=>{},
|
|
66
|
+
access: async ()=>{},
|
|
76
67
|
readFile: async (path:string)=>{
|
|
77
68
|
readFile_path = path
|
|
78
69
|
switch (path) {
|
|
@@ -98,7 +89,6 @@ test('server__metafile', async ()=>{
|
|
|
98
89
|
100)
|
|
99
90
|
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
100
91
|
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
101
|
-
equal(file_exists__waitfor__path, '/cwd/dist0/server/metafile.json')
|
|
102
92
|
equal(readFile_path, '/cwd/dist0/server/metafile.json')
|
|
103
93
|
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
104
94
|
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
@@ -109,7 +99,6 @@ test('server__metafile', async ()=>{
|
|
|
109
99
|
100)
|
|
110
100
|
equal(_server__metafile$_(app_ctx)._, server__metafile1)
|
|
111
101
|
equal(_server__metafile_(app_ctx), server__metafile1)
|
|
112
|
-
equal(file_exists__waitfor__path, '/cwd/dist1/server/metafile.json')
|
|
113
102
|
equal(readFile_path, '/cwd/dist1/server/metafile.json')
|
|
114
103
|
dist_path__set(app_ctx, '/cwd/dist0')
|
|
115
104
|
await rmemo__wait(
|
|
@@ -118,7 +107,6 @@ test('server__metafile', async ()=>{
|
|
|
118
107
|
100)
|
|
119
108
|
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
120
109
|
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
121
|
-
equal(file_exists__waitfor__path, '/cwd/dist0/server/metafile.json')
|
|
122
110
|
equal(readFile_path, '/cwd/dist0/server/metafile.json')
|
|
123
111
|
_server__metafile__set(app_ctx, server__metafile2)
|
|
124
112
|
equal(_server__metafile$_(app_ctx)._, server__metafile2)
|