rebuildjs 0.20.1 → 0.20.2
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/browser/index.js +13 -6
- package/browser/index.test.ts +19 -5
- package/package.json +2 -2
- package/server/index.js +14 -6
package/browser/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { file_exists_ } from 'ctx-core/fs'
|
|
2
|
-
import { nullish__none_,
|
|
2
|
+
import { nullish__none_, waitfor } from 'ctx-core/function'
|
|
3
3
|
import { be_lock_memosig_triple_, be_memo_pair_ } from 'ctx-core/rmemo'
|
|
4
4
|
import { readFile } from 'node:fs/promises'
|
|
5
5
|
import { join, relative } from 'path'
|
|
@@ -11,6 +11,7 @@ export const [
|
|
|
11
11
|
] = be_memo_pair_(ctx=>
|
|
12
12
|
join(browser_path_(ctx), 'metafile.json'),
|
|
13
13
|
{ ns: 'app', id: 'browser__metafile_path' })
|
|
14
|
+
let browser__metafile__waitfor_promise
|
|
14
15
|
export const [
|
|
15
16
|
browser__metafile$_,
|
|
16
17
|
browser__metafile_,
|
|
@@ -18,12 +19,18 @@ export const [
|
|
|
18
19
|
] = be_lock_memosig_triple_(()=>
|
|
19
20
|
undefined,
|
|
20
21
|
async (ctx, browser__metafile$)=>{
|
|
22
|
+
browser__metafile$() // ensure the subscriber is run when browser__metafile$ changes
|
|
21
23
|
let metafile_path
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
browser__metafile__waitfor_promise?.cancel?.()
|
|
25
|
+
if (!browser__metafile$.lock) {
|
|
26
|
+
metafile_path = browser__metafile_path_(ctx)
|
|
27
|
+
browser__metafile__waitfor_promise = waitfor(
|
|
28
|
+
()=>file_exists_(browser__metafile_path_(ctx)),
|
|
29
|
+
200
|
|
30
|
+
).catch(()=>false)
|
|
31
|
+
if (await browser__metafile__waitfor_promise && metafile_path === browser__metafile_path_(ctx)) {
|
|
32
|
+
browser__metafile$._ = await readFile(metafile_path).then(buf=>JSON.parse(buf + ''))
|
|
33
|
+
}
|
|
27
34
|
}
|
|
28
35
|
}, { ns: 'app', id: 'browser__metafile' })
|
|
29
36
|
export const [
|
package/browser/index.test.ts
CHANGED
|
@@ -55,7 +55,7 @@ test('browser__metafile', async ()=>{
|
|
|
55
55
|
browser__metafile$_: _browser__metafile$_,
|
|
56
56
|
browser__metafile_: _browser__metafile_,
|
|
57
57
|
browser__metafile__set: _browser__metafile__set,
|
|
58
|
-
} = await esmock('./index.js', {}, {
|
|
58
|
+
} = await esmock.p('./index.js', import.meta.url, {}, {
|
|
59
59
|
'ctx-core/rmemo': rmemo,
|
|
60
60
|
'ctx-core/fs': {
|
|
61
61
|
file_exists_: async (path:string)=>{
|
|
@@ -64,6 +64,8 @@ test('browser__metafile', async ()=>{
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
'node:fs/promises': {
|
|
67
|
+
// TODO: use this when https://github.com/iambumblehead/esmock/issues/281 is addressed
|
|
68
|
+
// access: async ()=>{},
|
|
67
69
|
readFile: async (path:string)=>{
|
|
68
70
|
readFile_path = path
|
|
69
71
|
switch (path) {
|
|
@@ -78,7 +80,10 @@ test('browser__metafile', async ()=>{
|
|
|
78
80
|
}
|
|
79
81
|
equal(_browser__metafile$_(app_ctx)._, undefined)
|
|
80
82
|
equal(_browser__metafile_(app_ctx), undefined)
|
|
81
|
-
await rmemo__wait(
|
|
83
|
+
await rmemo__wait(
|
|
84
|
+
_browser__metafile$_(app_ctx),
|
|
85
|
+
m=>m,
|
|
86
|
+
100)
|
|
82
87
|
equal(_browser__metafile$_(app_ctx)._, browser_metafile0)
|
|
83
88
|
equal(_browser__metafile_(app_ctx), browser_metafile0)
|
|
84
89
|
equal(file_exists__path, '/cwd/dist0/browser/metafile.json')
|
|
@@ -86,13 +91,19 @@ test('browser__metafile', async ()=>{
|
|
|
86
91
|
equal(_browser__metafile$_(app_ctx)._, browser_metafile0)
|
|
87
92
|
equal(_browser__metafile_(app_ctx), browser_metafile0)
|
|
88
93
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
89
|
-
await rmemo__wait(
|
|
94
|
+
await rmemo__wait(
|
|
95
|
+
_browser__metafile$_(app_ctx),
|
|
96
|
+
m=>deep_equal(m, browser_metafile1),
|
|
97
|
+
100)
|
|
90
98
|
equal(_browser__metafile$_(app_ctx)._, browser_metafile1)
|
|
91
99
|
equal(_browser__metafile_(app_ctx), browser_metafile1)
|
|
92
100
|
equal(file_exists__path, '/cwd/dist1/browser/metafile.json')
|
|
93
101
|
equal(readFile_path, '/cwd/dist1/browser/metafile.json')
|
|
94
102
|
dist_path__set(app_ctx, '/cwd/dist0')
|
|
95
|
-
await rmemo__wait(
|
|
103
|
+
await rmemo__wait(
|
|
104
|
+
_browser__metafile$_(app_ctx),
|
|
105
|
+
m=>deep_equal(m, browser_metafile0),
|
|
106
|
+
100)
|
|
96
107
|
equal(_browser__metafile$_(app_ctx)._, browser_metafile0)
|
|
97
108
|
equal(_browser__metafile_(app_ctx), browser_metafile0)
|
|
98
109
|
equal(file_exists__path, '/cwd/dist0/browser/metafile.json')
|
|
@@ -103,7 +114,10 @@ test('browser__metafile', async ()=>{
|
|
|
103
114
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
104
115
|
let error_msg:string|undefined = undefined
|
|
105
116
|
try {
|
|
106
|
-
await rmemo__wait(
|
|
117
|
+
await rmemo__wait(
|
|
118
|
+
_browser__metafile$_(app_ctx),
|
|
119
|
+
m=>deep_equal(m, browser_metafile1),
|
|
120
|
+
100)
|
|
107
121
|
} catch (e) {
|
|
108
122
|
error_msg = (e as Error).message
|
|
109
123
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rebuildjs",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.2",
|
|
4
4
|
"description": "Reactive esbuild...simple hackable alternative to vite for Multi Page Apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"reactive",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"./package.json": "./package.json"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"ctx-core": "^5.
|
|
54
|
+
"ctx-core": "^5.4.0",
|
|
55
55
|
"elysia": "^0.7.30",
|
|
56
56
|
"esbuild": "^0.19.10",
|
|
57
57
|
"fdir": "^6.1.1",
|
package/server/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { file_exists_ } from 'ctx-core/fs'
|
|
2
|
-
import { nullish__none_,
|
|
2
|
+
import { nullish__none_, tup, waitfor } from 'ctx-core/function'
|
|
3
3
|
import { be_lock_memosig_triple_, be_memo_pair_, be_sig_triple_ } from 'ctx-core/rmemo'
|
|
4
4
|
import { readFile } from 'fs/promises'
|
|
5
5
|
import { join, relative } from 'path'
|
|
@@ -10,6 +10,7 @@ export const [
|
|
|
10
10
|
] = be_memo_pair_(ctx=>
|
|
11
11
|
join(server_path_(ctx), 'metafile.json'),
|
|
12
12
|
{ ns: 'app', id: 'server__metafile_path' })
|
|
13
|
+
let server__metafile__waitfor_promise
|
|
13
14
|
export const [
|
|
14
15
|
server__metafile$_,
|
|
15
16
|
server__metafile_,
|
|
@@ -17,12 +18,19 @@ export const [
|
|
|
17
18
|
] = be_lock_memosig_triple_(()=>
|
|
18
19
|
undefined,
|
|
19
20
|
async (ctx, server__metafile$)=>{
|
|
21
|
+
server__metafile$() // ensure the subscriber is run when server__metafile$ changes
|
|
22
|
+
server__metafile__waitfor_promise?.cancel?.()
|
|
20
23
|
let metafile_path
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
if (!server__metafile$.lock) {
|
|
25
|
+
metafile_path = server__metafile_path_(ctx)
|
|
26
|
+
server__metafile__waitfor_promise = waitfor(
|
|
27
|
+
()=>file_exists_(server__metafile_path_(ctx)),
|
|
28
|
+
200
|
|
29
|
+
).catch(()=>false)
|
|
30
|
+
if (await server__metafile__waitfor_promise && metafile_path === server__metafile_path_(ctx)) {
|
|
31
|
+
// server__metafile$._ = JSON.parse(await readFile(metafile_path).then(buf=>buf.toString()))
|
|
32
|
+
server__metafile$._ = await readFile(metafile_path).then(buf=>JSON.parse(buf+''))
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
}, { ns: 'app', id: 'server__metafile' })
|
|
28
36
|
export const [
|