rebuildjs 0.23.0 → 0.24.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.d.ts +5 -4
- package/browser/index.js +27 -16
- package/browser/index.test.ts +31 -26
- package/build/index.d.ts +13 -6
- package/build/index.js +180 -38
- package/build/index.test.ts +86 -4
- package/ctx/index.js +1 -1
- package/metafile/index.d.ts +5 -0
- package/metafile/index.js +20 -6
- package/metafile/index.test.ts +4 -4
- package/metafile_l0/index.d.ts +12 -0
- package/metafile_l0/index.js +1 -0
- package/package.json +9 -7
- package/server/index.d.ts +10 -7
- package/server/index.js +47 -16
- package/server/index.test.ts +93 -43
package/browser/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ctx__be_T, ctx__get_T, ctx__set_T, lock_memosig_T, memo_T } from 'ctx-core/rmemo'
|
|
2
|
-
import type { Metafile } from 'esbuild'
|
|
3
2
|
import type { has_app_T, has_middleware_T } from '../ctx/index.js'
|
|
3
|
+
import type { rebuildjs_metafile_T } from '../metafile_l0/index.js'
|
|
4
4
|
export declare const browser__metafile_path$_:ctx__be_T<has_app_T, memo_T<string>, 'app'>
|
|
5
5
|
export declare const browser__metafile_path_:ctx__get_T<has_app_T, string>
|
|
6
|
-
export declare const browser__metafile$_:ctx__be_T<has_app_T, lock_memosig_T<
|
|
7
|
-
export declare const browser__metafile_:ctx__get_T<has_app_T,
|
|
8
|
-
export declare const browser__metafile__set:ctx__set_T<has_app_T,
|
|
6
|
+
export declare const browser__metafile$_:ctx__be_T<has_app_T, lock_memosig_T<rebuildjs_metafile_T|undefined>, 'app'>
|
|
7
|
+
export declare const browser__metafile_:ctx__get_T<has_app_T, rebuildjs_metafile_T|undefined>
|
|
8
|
+
export declare const browser__metafile__set:ctx__set_T<has_app_T, rebuildjs_metafile_T|undefined>
|
|
9
|
+
export declare function browser__metafile__persist():Promise<void>
|
|
9
10
|
export declare const browser__output__relative_path$_:ctx__be_T<has_middleware_T, memo_T<string>, 'middleware'>
|
|
10
11
|
export declare const browser__output__relative_path_:ctx__get_T<has_middleware_T, string>
|
|
11
12
|
export declare const browser__script$_:ctx__be_T<has_middleware_T, memo_T<string>, 'middleware'>
|
package/browser/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { file_exists_ } from 'ctx-core/fs'
|
|
2
2
|
import { nullish__none_, waitfor } from 'ctx-core/function'
|
|
3
3
|
import { be_lock_memosig_triple_, be_memo_pair_ } from 'ctx-core/rmemo'
|
|
4
|
-
import { readFile } from 'node:fs/promises'
|
|
4
|
+
import { readFile, writeFile } from 'node:fs/promises'
|
|
5
5
|
import { join, relative } from 'path'
|
|
6
6
|
import { browser__relative_path_, browser_path_ } from '../app/index.js'
|
|
7
|
+
import { app_ctx } from '../ctx/index.js'
|
|
7
8
|
import { server__output_ } from '../server/index.js'
|
|
8
9
|
export const [
|
|
9
10
|
browser__metafile_path$_,
|
|
@@ -16,22 +17,32 @@ export const [
|
|
|
16
17
|
browser__metafile$_,
|
|
17
18
|
browser__metafile_,
|
|
18
19
|
browser__metafile__set
|
|
19
|
-
] =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
] = /** @type {be_lock_memosig_triple_T<rebuildjs_metafile_T>} */
|
|
21
|
+
be_lock_memosig_triple_(()=>
|
|
22
|
+
undefined,
|
|
23
|
+
async (ctx, browser__metafile$)=>{
|
|
24
|
+
browser__metafile__waitfor_promise?.cancel?.()
|
|
25
|
+
let metafile_path
|
|
26
|
+
if (!browser__metafile$.lock) {
|
|
27
|
+
metafile_path = browser__metafile_path_(ctx)
|
|
28
|
+
browser__metafile__waitfor_promise = waitfor(
|
|
29
|
+
()=>file_exists_(metafile_path),
|
|
30
|
+
200
|
|
31
|
+
).catch(()=>false)
|
|
32
|
+
if (await browser__metafile__waitfor_promise && metafile_path === browser__metafile_path_(ctx)) {
|
|
33
|
+
browser__metafile$._ = await readFile(metafile_path).then(buf=>JSON.parse(buf + ''))
|
|
34
|
+
}
|
|
32
35
|
}
|
|
33
|
-
}
|
|
34
|
-
|
|
36
|
+
}, { ns: 'app', id: 'browser__metafile' })
|
|
37
|
+
export function browser__metafile__persist() {
|
|
38
|
+
return nullish__none_([
|
|
39
|
+
browser__metafile_path_(app_ctx),
|
|
40
|
+
browser__metafile_(app_ctx)
|
|
41
|
+
], (browser__metafile_path, browser__metafile)=>
|
|
42
|
+
writeFile(
|
|
43
|
+
browser__metafile_path,
|
|
44
|
+
JSON.stringify(browser__metafile, null, '\t')))
|
|
45
|
+
}
|
|
35
46
|
export const [
|
|
36
47
|
browser__output__relative_path$_,
|
|
37
48
|
browser__output__relative_path_
|
package/browser/index.test.ts
CHANGED
|
@@ -5,7 +5,12 @@ import { rmemo__wait } from 'ctx-core/rmemo'
|
|
|
5
5
|
import esmock from 'esmock'
|
|
6
6
|
import { test } from 'uvu'
|
|
7
7
|
import { equal, throws } from 'uvu/assert'
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
browser__metafile0,
|
|
10
|
+
browser__metafile1,
|
|
11
|
+
browser__metafile2,
|
|
12
|
+
server__metafile0
|
|
13
|
+
} from '../_fixtures/metafiles.js'
|
|
9
14
|
import { dist_path__set, is_prod__set } from '../app/index.js'
|
|
10
15
|
import { app_ctx, middleware_ctx_ } from '../ctx/index.js'
|
|
11
16
|
import { server__metafile__set, server__output_, server__output__relative_path__set } from '../server/index.js'
|
|
@@ -70,9 +75,9 @@ test('browser__metafile', async ()=>{
|
|
|
70
75
|
readFile_path = path
|
|
71
76
|
switch (path) {
|
|
72
77
|
case '/cwd/dist0/browser/metafile.json':
|
|
73
|
-
return Buffer.from(JSON.stringify(
|
|
78
|
+
return Buffer.from(JSON.stringify(browser__metafile0), 'utf-8')
|
|
74
79
|
case '/cwd/dist1/browser/metafile.json':
|
|
75
|
-
return Buffer.from(JSON.stringify(
|
|
80
|
+
return Buffer.from(JSON.stringify(browser__metafile1), 'utf-8')
|
|
76
81
|
}
|
|
77
82
|
}
|
|
78
83
|
},
|
|
@@ -84,65 +89,65 @@ test('browser__metafile', async ()=>{
|
|
|
84
89
|
_browser__metafile$_(app_ctx),
|
|
85
90
|
m=>m,
|
|
86
91
|
100)
|
|
87
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
88
|
-
equal(_browser__metafile_(app_ctx),
|
|
92
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
93
|
+
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
89
94
|
equal(file_exists__path, '/cwd/dist0/browser/metafile.json')
|
|
90
95
|
equal(readFile_path, '/cwd/dist0/browser/metafile.json')
|
|
91
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
92
|
-
equal(_browser__metafile_(app_ctx),
|
|
96
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
97
|
+
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
93
98
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
94
99
|
await rmemo__wait(
|
|
95
100
|
_browser__metafile$_(app_ctx),
|
|
96
|
-
m=>deep_equal(m,
|
|
101
|
+
m=>deep_equal(m, browser__metafile1),
|
|
97
102
|
100)
|
|
98
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
99
|
-
equal(_browser__metafile_(app_ctx),
|
|
103
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile1)
|
|
104
|
+
equal(_browser__metafile_(app_ctx), browser__metafile1)
|
|
100
105
|
equal(file_exists__path, '/cwd/dist1/browser/metafile.json')
|
|
101
106
|
equal(readFile_path, '/cwd/dist1/browser/metafile.json')
|
|
102
107
|
dist_path__set(app_ctx, '/cwd/dist0')
|
|
103
108
|
await rmemo__wait(
|
|
104
109
|
_browser__metafile$_(app_ctx),
|
|
105
|
-
m=>deep_equal(m,
|
|
110
|
+
m=>deep_equal(m, browser__metafile0),
|
|
106
111
|
100)
|
|
107
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
108
|
-
equal(_browser__metafile_(app_ctx),
|
|
112
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile0)
|
|
113
|
+
equal(_browser__metafile_(app_ctx), browser__metafile0)
|
|
109
114
|
equal(file_exists__path, '/cwd/dist0/browser/metafile.json')
|
|
110
115
|
equal(readFile_path, '/cwd/dist0/browser/metafile.json')
|
|
111
|
-
_browser__metafile__set(app_ctx,
|
|
112
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
113
|
-
equal(_browser__metafile_(app_ctx),
|
|
116
|
+
_browser__metafile__set(app_ctx, browser__metafile2)
|
|
117
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile2)
|
|
118
|
+
equal(_browser__metafile_(app_ctx), browser__metafile2)
|
|
114
119
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
115
120
|
let error_msg:string|undefined = undefined
|
|
116
121
|
try {
|
|
117
122
|
await rmemo__wait(
|
|
118
123
|
_browser__metafile$_(app_ctx),
|
|
119
|
-
m=>deep_equal(m,
|
|
124
|
+
m=>deep_equal(m, browser__metafile1),
|
|
120
125
|
100)
|
|
121
126
|
} catch (e) {
|
|
122
127
|
error_msg = (e as Error).message
|
|
123
128
|
}
|
|
124
|
-
equal(_browser__metafile$_(app_ctx)._,
|
|
125
|
-
equal(_browser__metafile_(app_ctx),
|
|
129
|
+
equal(_browser__metafile$_(app_ctx)._, browser__metafile2)
|
|
130
|
+
equal(_browser__metafile_(app_ctx), browser__metafile2)
|
|
126
131
|
equal(error_msg, `Timeout 100ms`)
|
|
127
132
|
// @ts-expect-error TS2345
|
|
128
133
|
throws(()=>_browser__metafile$_(ctx_()))
|
|
129
134
|
// @ts-expect-error TS2345
|
|
130
135
|
throws(()=>_browser__metafile_(ctx_()))
|
|
131
136
|
// @ts-expect-error TS2345
|
|
132
|
-
throws(()=>_browser__metafile__set(ctx_(),
|
|
137
|
+
throws(()=>_browser__metafile__set(ctx_(), browser__metafile0))
|
|
133
138
|
})
|
|
134
139
|
test('browser__output__relative_path', ()=>{
|
|
135
140
|
const middleware_ctx = middleware_ctx_()
|
|
136
141
|
equal(browser__output__relative_path$_(middleware_ctx)._, undefined)
|
|
137
142
|
equal(browser__output__relative_path_(middleware_ctx), undefined)
|
|
138
|
-
server__metafile__set(middleware_ctx,
|
|
143
|
+
server__metafile__set(middleware_ctx, server__metafile0)
|
|
139
144
|
equal(browser__output__relative_path$_(middleware_ctx)._, undefined)
|
|
140
145
|
equal(browser__output__relative_path_(middleware_ctx), undefined)
|
|
141
|
-
browser__metafile__set(middleware_ctx,
|
|
146
|
+
browser__metafile__set(middleware_ctx, browser__metafile0)
|
|
142
147
|
equal(browser__output__relative_path$_(middleware_ctx)._, undefined)
|
|
143
148
|
equal(browser__output__relative_path_(middleware_ctx), undefined)
|
|
144
149
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
|
145
|
-
equal(
|
|
150
|
+
equal(server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'], {
|
|
146
151
|
'imports': [],
|
|
147
152
|
'exports': [],
|
|
148
153
|
'entryPoint': 'src/app/index.server.ts',
|
|
@@ -154,7 +159,7 @@ test('browser__output__relative_path', ()=>{
|
|
|
154
159
|
},
|
|
155
160
|
'bytes': 98
|
|
156
161
|
})
|
|
157
|
-
equal(server__output_(middleware_ctx),
|
|
162
|
+
equal(server__output_(middleware_ctx), server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'])
|
|
158
163
|
equal(browser__output__relative_path$_(middleware_ctx)._, 'dist/browser--dev/index.browser-BRS0BRS0.js')
|
|
159
164
|
equal(browser__output__relative_path$_(middleware_ctx)._, 'dist/browser--dev/index.browser-BRS0BRS0.js')
|
|
160
165
|
// @ts-expect-error TS2345
|
|
@@ -166,10 +171,10 @@ test('browser__script', ()=>{
|
|
|
166
171
|
const middleware_ctx = middleware_ctx_()
|
|
167
172
|
equal(browser__script$_(middleware_ctx)._, undefined)
|
|
168
173
|
equal(browser__script_(middleware_ctx), undefined)
|
|
169
|
-
server__metafile__set(middleware_ctx,
|
|
174
|
+
server__metafile__set(middleware_ctx, server__metafile0)
|
|
170
175
|
equal(browser__script$_(middleware_ctx)._, undefined)
|
|
171
176
|
equal(browser__script_(middleware_ctx), undefined)
|
|
172
|
-
browser__metafile__set(middleware_ctx,
|
|
177
|
+
browser__metafile__set(middleware_ctx, browser__metafile0)
|
|
173
178
|
equal(browser__script$_(middleware_ctx)._, undefined)
|
|
174
179
|
equal(browser__script_(middleware_ctx), undefined)
|
|
175
180
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
package/build/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { ctx__be_T, ctx__get_T, ctx__set_T, sig_T } from 'ctx-core/rmemo'
|
|
2
|
+
import type { BuildContext, BuildOptions, Plugin } from 'esbuild'
|
|
3
|
+
import type { has_app_T } from '../ctx/index.js'
|
|
4
|
+
export declare const build_id$_:ctx__be_T<has_app_T, sig_T<string|undefined>, 'app'>
|
|
5
|
+
export declare const build_id_:ctx__get_T<has_app_T, string|undefined>
|
|
6
|
+
export declare const build_id__set:ctx__set_T<has_app_T, string|undefined>
|
|
7
|
+
export declare function build_id__refresh():string
|
|
8
|
+
export declare function browser__build(config?:rebuildjs_build_config_T):Promise<BuildContext>
|
|
9
|
+
export declare function server__build(config?:rebuildjs_build_config_T):Promise<BuildContext>
|
|
4
10
|
export declare function server__external_(config?:Partial<BuildOptions>):Promise<string[]>
|
|
5
|
-
export declare function
|
|
6
|
-
export type
|
|
7
|
-
|
|
11
|
+
export declare function rebuildjs_plugin_():Plugin
|
|
12
|
+
export type rebuildjs_build_config_T =
|
|
13
|
+
Partial<BuildOptions>&{ rebuildjs?:rebuildjs_plugin_config_T }
|
|
14
|
+
export type rebuildjs_plugin_config_T = {
|
|
8
15
|
watch?:boolean
|
|
9
16
|
}
|
package/build/index.js
CHANGED
|
@@ -1,16 +1,42 @@
|
|
|
1
|
+
/// <reference types="../metafile_l0/index.d.ts" />
|
|
1
2
|
/// <reference types="./index.d.ts" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
import { file_exists__waitfor } from 'ctx-core/fs'
|
|
4
|
+
import { nullish__none_, run } from 'ctx-core/function'
|
|
5
|
+
import { be, be_sig_triple_, memo_ } from 'ctx-core/rmemo'
|
|
6
|
+
import { short_uuid_ } from 'ctx-core/uuid'
|
|
7
|
+
import { context } from 'esbuild'
|
|
5
8
|
import { fdir } from 'fdir'
|
|
6
|
-
import { link, mkdir, rm
|
|
9
|
+
import { link, mkdir, rm } from 'node:fs/promises'
|
|
7
10
|
import { join, relative, resolve } from 'path'
|
|
8
11
|
import { app_path_, browser_path_, cwd_, is_prod_, server__relative_path_, server_path_ } from '../app/index.js'
|
|
9
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
browser__metafile_,
|
|
14
|
+
browser__metafile__persist,
|
|
15
|
+
browser__metafile__set,
|
|
16
|
+
browser__output__relative_path_
|
|
17
|
+
} from '../browser/index.js'
|
|
10
18
|
import { app_ctx } from '../ctx/index.js'
|
|
11
|
-
import {
|
|
19
|
+
import { metafile__build_id_ } from '../metafile/index.js'
|
|
20
|
+
import {
|
|
21
|
+
server__metafile_,
|
|
22
|
+
server__metafile__persist,
|
|
23
|
+
server__metafile__set,
|
|
24
|
+
server__output__relative_path_M_middleware_ctx_
|
|
25
|
+
} from '../server/index.js'
|
|
26
|
+
export const [
|
|
27
|
+
build_id$_,
|
|
28
|
+
build_id_,
|
|
29
|
+
build_id__set,
|
|
30
|
+
] = be_sig_triple_(()=>
|
|
31
|
+
undefined,
|
|
32
|
+
{ id: 'build_id', ns: 'app' })
|
|
33
|
+
export function build_id__refresh() {
|
|
34
|
+
const build_id = Date.now() + '-' + short_uuid_()
|
|
35
|
+
build_id__set(app_ctx, build_id)
|
|
36
|
+
return build_id
|
|
37
|
+
}
|
|
12
38
|
/**
|
|
13
|
-
* @param {Plugin}config
|
|
39
|
+
* @param {import('esbuild').Plugin}config
|
|
14
40
|
* @returns {Promise<void>}
|
|
15
41
|
* @private
|
|
16
42
|
*/
|
|
@@ -31,8 +57,8 @@ export async function browser__build(config) {
|
|
|
31
57
|
for (const path of path_a) {
|
|
32
58
|
entryPoints.push(path)
|
|
33
59
|
}
|
|
34
|
-
const plugins = [
|
|
35
|
-
/** @type {BuildOptions} */
|
|
60
|
+
const plugins = [rebuildjs_plugin_(), ...(esbuild__config.plugins || [])]
|
|
61
|
+
/** @type {import('esbuild').BuildOptions} */
|
|
36
62
|
const esbuild_config = {
|
|
37
63
|
entryNames: '[name]-[hash]',
|
|
38
64
|
assetNames: '[name]-[hash]',
|
|
@@ -51,16 +77,17 @@ export async function browser__build(config) {
|
|
|
51
77
|
outdir: browser_path_(app_ctx),
|
|
52
78
|
plugins,
|
|
53
79
|
}
|
|
80
|
+
const esbuild_ctx = await context(esbuild_config)
|
|
54
81
|
if (rebuildjs?.watch ?? !is_prod_(app_ctx)) {
|
|
55
|
-
const esbuild_ctx = await context(esbuild_config)
|
|
56
82
|
await esbuild_ctx.watch()
|
|
57
83
|
console.log('browser__build|watch')
|
|
58
84
|
} else {
|
|
59
|
-
await
|
|
85
|
+
await esbuild_ctx.rebuild()
|
|
60
86
|
}
|
|
87
|
+
return esbuild_ctx
|
|
61
88
|
}
|
|
62
89
|
/**
|
|
63
|
-
* @param {
|
|
90
|
+
* @param {rebuildjs_build_config_T}[config]
|
|
64
91
|
* @returns {Promise<void>}
|
|
65
92
|
*/
|
|
66
93
|
export async function server__build(config) {
|
|
@@ -79,7 +106,7 @@ export async function server__build(config) {
|
|
|
79
106
|
for (const path of path_a) {
|
|
80
107
|
entryPoints.push(path)
|
|
81
108
|
}
|
|
82
|
-
const plugins = [
|
|
109
|
+
const plugins = [rebuildjs_plugin_(), ...(esbuild__config.plugins || [])]
|
|
83
110
|
const esbuild_config = {
|
|
84
111
|
entryNames: '[name]-[hash]',
|
|
85
112
|
assetNames: '[name]-[hash]',
|
|
@@ -98,54 +125,169 @@ export async function server__build(config) {
|
|
|
98
125
|
external: server__external_(esbuild__config),
|
|
99
126
|
plugins,
|
|
100
127
|
}
|
|
128
|
+
const esbuild_ctx = await context(esbuild_config)
|
|
101
129
|
if (rebuildjs?.watch ?? !is_prod_(app_ctx)) {
|
|
102
|
-
const esbuild_ctx = await context(esbuild_config)
|
|
103
130
|
await esbuild_ctx.watch()
|
|
104
131
|
console.log('server__build|watch')
|
|
105
132
|
} else {
|
|
106
|
-
await
|
|
133
|
+
await esbuild_ctx.rebuild()
|
|
107
134
|
}
|
|
135
|
+
return esbuild_ctx
|
|
108
136
|
}
|
|
109
137
|
/**
|
|
110
|
-
* @param {
|
|
138
|
+
* @param {rebuildjs_build_config_T}[config]
|
|
111
139
|
* @returns {Promise<string[]>}
|
|
112
140
|
*/
|
|
113
141
|
export function server__external_(config) {
|
|
114
142
|
return ['bun', 'node_modules/*', ...(config.external || [])]
|
|
115
143
|
}
|
|
116
144
|
/**
|
|
117
|
-
* @returns {Plugin}
|
|
145
|
+
* @returns {import('esbuild').Plugin}
|
|
118
146
|
* @private
|
|
147
|
+
*
|
|
119
148
|
*/
|
|
120
|
-
export function
|
|
121
|
-
return {
|
|
122
|
-
|
|
123
|
-
|
|
149
|
+
export function rebuildjs_plugin_() {
|
|
150
|
+
return { name: 'rebuildjs_plugin', setup: setup_() }
|
|
151
|
+
function setup_() {
|
|
152
|
+
/**
|
|
153
|
+
* @param {import('esbuild').PluginBuild}build
|
|
154
|
+
*/
|
|
155
|
+
const setup = build=>{
|
|
124
156
|
build.onEnd(async result=>{
|
|
125
|
-
|
|
157
|
+
const {
|
|
158
|
+
/** @type {rebuildjs_metafile_T} */
|
|
159
|
+
metafile
|
|
160
|
+
} = result
|
|
161
|
+
if (metafile) {
|
|
126
162
|
const { outdir } = build.initialOptions
|
|
127
163
|
const resolve_outdir = resolve(outdir)
|
|
128
164
|
if (resolve_outdir === server_path_(app_ctx)) {
|
|
129
|
-
|
|
165
|
+
const build_id = build_id__refresh()
|
|
166
|
+
await server__metafile__update(metafile, build_id)
|
|
167
|
+
if (build_id_(app_ctx) === build_id) {
|
|
168
|
+
await browser__metafile__update(browser__metafile_(app_ctx), build_id)
|
|
169
|
+
}
|
|
130
170
|
} else if (resolve_outdir === browser_path_(app_ctx)) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
JSON.stringify(result.metafile, null, 2))
|
|
171
|
+
const build_id = build_id__refresh()
|
|
172
|
+
await browser__metafile__update(metafile, build_id)
|
|
173
|
+
if (build_id_(app_ctx) === build_id) {
|
|
174
|
+
await server__metafile__update(server__metafile_(app_ctx), build_id)
|
|
175
|
+
}
|
|
137
176
|
}
|
|
138
177
|
}
|
|
139
|
-
const outputs = server__metafile_(app_ctx)?.outputs ?? {}
|
|
140
|
-
for (let output__relative_path in outputs) {
|
|
141
|
-
if (/(\.js|\.mjs)(\.map)?$/.test(output__relative_path)) continue
|
|
142
|
-
const asset_path = join(cwd_(app_ctx), output__relative_path)
|
|
143
|
-
const link_path =
|
|
144
|
-
join(browser_path_(app_ctx), relative(server__relative_path_(app_ctx), output__relative_path))
|
|
145
|
-
await rm(link_path, { force: true })
|
|
146
|
-
await link(asset_path, link_path)
|
|
147
|
-
}
|
|
148
178
|
})
|
|
149
179
|
}
|
|
180
|
+
// Prevent GC
|
|
181
|
+
setup.rebuildjs__assets__link$ = rebuildjs__assets__link$_()
|
|
182
|
+
return setup
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
* @returns {memo_T<void>}
|
|
186
|
+
* @private
|
|
187
|
+
*/
|
|
188
|
+
function rebuildjs__assets__link$_() {
|
|
189
|
+
return (
|
|
190
|
+
be(app_ctx, ctx=>
|
|
191
|
+
run(memo_(assets__link$=>{
|
|
192
|
+
r()
|
|
193
|
+
return assets__link$
|
|
194
|
+
function r() {
|
|
195
|
+
nullish__none_([
|
|
196
|
+
build_id_(ctx),
|
|
197
|
+
metafile__build_id_(ctx),
|
|
198
|
+
server__metafile_(ctx),
|
|
199
|
+
cwd_(ctx),
|
|
200
|
+
browser_path_(ctx),
|
|
201
|
+
server__relative_path_(ctx),
|
|
202
|
+
], (
|
|
203
|
+
build_id,
|
|
204
|
+
metafile__build_id,
|
|
205
|
+
server__metafile,
|
|
206
|
+
cwd,
|
|
207
|
+
browser_path,
|
|
208
|
+
server__relative_path,
|
|
209
|
+
)=>{
|
|
210
|
+
if (build_id === metafile__build_id) {
|
|
211
|
+
run(async ()=>{
|
|
212
|
+
const outputs = server__metafile.outputs ?? {}
|
|
213
|
+
for (let output__relative_path in outputs) {
|
|
214
|
+
if (/(\.js|\.mjs)(\.map)?$/.test(output__relative_path)) continue
|
|
215
|
+
const server_asset_path = join(cwd, output__relative_path)
|
|
216
|
+
const browser_asset_path = join(
|
|
217
|
+
browser_path,
|
|
218
|
+
relative(server__relative_path, output__relative_path))
|
|
219
|
+
if (cancel_()) return
|
|
220
|
+
await rm(browser_asset_path, { force: true })
|
|
221
|
+
if (cancel_()) return
|
|
222
|
+
await file_exists__waitfor(server_asset_path)
|
|
223
|
+
if (cancel_()) return
|
|
224
|
+
await link(server_asset_path, browser_asset_path)
|
|
225
|
+
}
|
|
226
|
+
})
|
|
227
|
+
}
|
|
228
|
+
function cancel_() {
|
|
229
|
+
return (
|
|
230
|
+
build_id_(ctx) !== build_id
|
|
231
|
+
|| metafile__build_id_(ctx) !== metafile__build_id
|
|
232
|
+
|| server__metafile_(ctx) !== server__metafile
|
|
233
|
+
|| cwd_(ctx) !== cwd
|
|
234
|
+
|| browser_path_(ctx) !== browser_path
|
|
235
|
+
|| server__relative_path_(ctx) !== server__relative_path
|
|
236
|
+
)
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
}
|
|
240
|
+
})),
|
|
241
|
+
{ id: 'rebuildjs__assets__link$', ns: 'app' })
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async function server__metafile__update(server__metafile, build_id) {
|
|
247
|
+
if (!server__metafile) return
|
|
248
|
+
server__metafile = {
|
|
249
|
+
...server__metafile,
|
|
250
|
+
build_id,
|
|
251
|
+
rebuildjs_target: 'server'
|
|
252
|
+
}
|
|
253
|
+
server__metafile__set(app_ctx, server__metafile)
|
|
254
|
+
for (const [
|
|
255
|
+
server__output__relative_path,
|
|
256
|
+
middleware_ctx
|
|
257
|
+
] of server__output__relative_path_M_middleware_ctx_(app_ctx).entries()) {
|
|
258
|
+
const output = server__metafile.outputs[server__output__relative_path]
|
|
259
|
+
const { cssBundle } = output
|
|
260
|
+
if (cssBundle) {
|
|
261
|
+
output.esbuild_cssBundle = cssBundle
|
|
262
|
+
output.cssBundle_content = [
|
|
263
|
+
server__output__relative_path,
|
|
264
|
+
...(
|
|
265
|
+
browser__output__relative_path_(middleware_ctx)
|
|
266
|
+
? [browser__output__relative_path_(middleware_ctx)]
|
|
267
|
+
: [])
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
await server__metafile__persist()
|
|
272
|
+
}
|
|
273
|
+
async function browser__metafile__update(browser__metafile, build_id) {
|
|
274
|
+
if (!browser__metafile) return
|
|
275
|
+
browser__metafile = {
|
|
276
|
+
...browser__metafile,
|
|
277
|
+
build_id,
|
|
278
|
+
rebuildjs_target: 'browser'
|
|
279
|
+
}
|
|
280
|
+
browser__metafile__set(app_ctx, browser__metafile)
|
|
281
|
+
for (const middleware_ctx of server__output__relative_path_M_middleware_ctx_(app_ctx)?.values?.() ?? []) {
|
|
282
|
+
const browser__output__relative_path = browser__output__relative_path_(middleware_ctx)
|
|
283
|
+
if (browser__output__relative_path) {
|
|
284
|
+
const output = browser__metafile.outputs[browser__output__relative_path]
|
|
285
|
+
const { cssBundle } = output
|
|
286
|
+
if (cssBundle) {
|
|
287
|
+
output.esbuild_cssBundle = cssBundle
|
|
288
|
+
output.cssBundle_content = [browser__output__relative_path]
|
|
289
|
+
}
|
|
290
|
+
}
|
|
150
291
|
}
|
|
292
|
+
await browser__metafile__persist()
|
|
151
293
|
}
|
package/build/index.test.ts
CHANGED
|
@@ -1,11 +1,93 @@
|
|
|
1
|
+
import { ctx_ } from 'ctx-core/be'
|
|
2
|
+
import { file_exists_ } from 'ctx-core/fs'
|
|
3
|
+
import { sleep } from 'ctx-core/function'
|
|
4
|
+
import { BuildContext } from 'esbuild'
|
|
5
|
+
import { rm } from 'node:fs/promises'
|
|
6
|
+
import { dirname, join } from 'path'
|
|
1
7
|
import { test } from 'uvu'
|
|
2
|
-
import { equal } from 'uvu/assert'
|
|
3
|
-
import '
|
|
8
|
+
import { equal, throws } from 'uvu/assert'
|
|
9
|
+
import { cwd__set } from '../app/index.js'
|
|
10
|
+
import { browser__metafile_ } from '../browser/index.js'
|
|
4
11
|
import { app_ctx } from '../ctx/index.js'
|
|
12
|
+
import { metafile__wait } from '../metafile/index.js'
|
|
13
|
+
import { server__metafile_ } from '../server/index.js'
|
|
14
|
+
import { browser__build, build_id$_, build_id_, build_id__refresh, build_id__set, server__build } from './index.js'
|
|
5
15
|
test.after.each(()=>{
|
|
6
16
|
app_ctx.s.app.clear()
|
|
7
17
|
})
|
|
8
|
-
test('
|
|
9
|
-
equal(
|
|
18
|
+
test('build_id', ()=>{
|
|
19
|
+
equal(build_id$_(app_ctx)(), undefined)
|
|
20
|
+
equal(build_id_(app_ctx), undefined)
|
|
21
|
+
build_id__set(app_ctx, 'test_build_id')
|
|
22
|
+
equal(build_id$_(app_ctx)(), 'test_build_id')
|
|
23
|
+
equal(build_id_(app_ctx), 'test_build_id')
|
|
24
|
+
// @ts-expect-error TS2345
|
|
25
|
+
throws(()=>build_id$_(ctx_()))
|
|
26
|
+
// @ts-expect-error TS2345
|
|
27
|
+
throws(()=>build_id_(ctx_()))
|
|
28
|
+
})
|
|
29
|
+
test('build_id__refresh', ()=>{
|
|
30
|
+
equal(build_id_(app_ctx), undefined)
|
|
31
|
+
const build_id = build_id__refresh()
|
|
32
|
+
equal(build_id_(app_ctx), build_id)
|
|
33
|
+
equal(
|
|
34
|
+
parseInt(build_id.split('-')[0]) <= Date.now(),
|
|
35
|
+
true)
|
|
36
|
+
equal(
|
|
37
|
+
parseInt(build_id.split('-')[0]) > Date.now() - 1000,
|
|
38
|
+
true)
|
|
39
|
+
})
|
|
40
|
+
test('browser__build|server__build|rebuildjs_plugin_|metafile', async ()=>{
|
|
41
|
+
const test_dir = dirname(new URL(import.meta.url).pathname)
|
|
42
|
+
const cwd = join(test_dir, '../_fixtures')
|
|
43
|
+
cwd__set(app_ctx, cwd)
|
|
44
|
+
await rm(join(cwd, 'dist'), { recursive: true, force: true })
|
|
45
|
+
let server__build_context:BuildContext|undefined = undefined
|
|
46
|
+
let browser__build_context:BuildContext|undefined = undefined
|
|
47
|
+
try {
|
|
48
|
+
server__build_context = await server__build()
|
|
49
|
+
browser__build_context = await browser__build()
|
|
50
|
+
await metafile__wait()
|
|
51
|
+
equal(await file_exists_(join(cwd, 'dist')), true)
|
|
52
|
+
equal(await file_exists_(join(cwd, 'dist', 'browser--dev')), true)
|
|
53
|
+
equal(await file_exists_(join(cwd, 'dist', 'server--dev')), true)
|
|
54
|
+
const server__metafile = server__metafile_(app_ctx)!
|
|
55
|
+
equal(server__metafile.rebuildjs_target, 'server')
|
|
56
|
+
const browser__metafile = browser__metafile_(app_ctx)!
|
|
57
|
+
equal(browser__metafile.rebuildjs_target, 'browser')
|
|
58
|
+
equal(server__metafile.build_id != null, true)
|
|
59
|
+
equal(server__metafile.build_id, browser__metafile.build_id)
|
|
60
|
+
const server__output__relative_path =
|
|
61
|
+
Object.keys(server__metafile.outputs)
|
|
62
|
+
.find(server__output__relative_path=>
|
|
63
|
+
server__metafile.outputs[server__output__relative_path].entryPoint)!
|
|
64
|
+
equal(typeof server__output__relative_path, 'string')
|
|
65
|
+
const server__entryPoint__output =
|
|
66
|
+
server__metafile.outputs[server__output__relative_path]
|
|
67
|
+
equal(server__entryPoint__output != null, true)
|
|
68
|
+
equal(server__entryPoint__output.cssBundle != null, true)
|
|
69
|
+
equal(server__entryPoint__output.esbuild_cssBundle, server__entryPoint__output.cssBundle)
|
|
70
|
+
const browser__output__relative_path =
|
|
71
|
+
Object.keys(browser__metafile.outputs)
|
|
72
|
+
.find(browser__output__relative_path=>
|
|
73
|
+
browser__metafile.outputs[browser__output__relative_path].entryPoint)!
|
|
74
|
+
equal(typeof browser__output__relative_path, 'string')
|
|
75
|
+
const browser__entryPoint__output =
|
|
76
|
+
browser__metafile.outputs[browser__output__relative_path]
|
|
77
|
+
equal(browser__entryPoint__output != null, true)
|
|
78
|
+
equal(browser__entryPoint__output.cssBundle != null, true)
|
|
79
|
+
equal(browser__entryPoint__output.esbuild_cssBundle, browser__entryPoint__output.cssBundle)
|
|
80
|
+
equal(server__entryPoint__output.cssBundle_content, [
|
|
81
|
+
server__output__relative_path,
|
|
82
|
+
browser__output__relative_path
|
|
83
|
+
])
|
|
84
|
+
equal(browser__entryPoint__output.cssBundle_content, [
|
|
85
|
+
browser__output__relative_path
|
|
86
|
+
])
|
|
87
|
+
} finally {
|
|
88
|
+
await sleep(100)
|
|
89
|
+
server__build_context?.dispose?.()
|
|
90
|
+
browser__build_context?.dispose?.()
|
|
91
|
+
}
|
|
10
92
|
})
|
|
11
93
|
test.run()
|
package/ctx/index.js
CHANGED
package/metafile/index.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
+
import type { ctx__be_T, ctx__get_T, memo_T } from 'ctx-core/rmemo'
|
|
2
|
+
import type { has_app_T } from '../ctx/index.js'
|
|
3
|
+
export * from '../metafile_l0/index.js'
|
|
4
|
+
export declare const metafile__build_id$_:ctx__be_T<has_app_T, memo_T<string>, 'app'>
|
|
5
|
+
export declare const metafile__build_id_:ctx__get_T<has_app_T, string>
|
|
1
6
|
export declare function metafile__wait(timeout?:number):Promise<void>
|
package/metafile/index.js
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { nullish__none_ } from 'ctx-core/function'
|
|
2
|
+
import { be_memo_pair_, rmemo__wait } from 'ctx-core/rmemo'
|
|
2
3
|
import { browser__metafile_ } from '../browser/index.js'
|
|
3
4
|
import { app_ctx } from '../ctx/index.js'
|
|
4
5
|
import { server__metafile_ } from '../server/index.js'
|
|
6
|
+
export const [
|
|
7
|
+
metafile__build_id$_,
|
|
8
|
+
metafile__build_id_,
|
|
9
|
+
] = be_memo_pair_((ctx, build_id$)=>
|
|
10
|
+
nullish__none_([server__metafile_(ctx), browser__metafile_(ctx)],
|
|
11
|
+
(server__metafile, browser__metafile)=>
|
|
12
|
+
server__metafile.build_id === browser__metafile.build_id
|
|
13
|
+
? server__metafile.build_id
|
|
14
|
+
: build_id$.val),
|
|
15
|
+
{ id: 'metafile__build_id', ns: 'app' })
|
|
5
16
|
export async function metafile__wait(timeout = 5000) {
|
|
6
|
-
await rmemo__wait(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
17
|
+
await rmemo__wait(
|
|
18
|
+
metafile__build_id$_(app_ctx),
|
|
19
|
+
metafile__build_id=>
|
|
20
|
+
metafile__build_id != null,
|
|
21
|
+
timeout
|
|
10
22
|
).catch(err=>{
|
|
11
|
-
throw Error(
|
|
23
|
+
throw Error(
|
|
24
|
+
'metafile__wait|browser__metafile & server__metafile timeout',
|
|
25
|
+
{ cause: err })
|
|
12
26
|
})
|
|
13
27
|
}
|
package/metafile/index.test.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { sleep } from 'ctx-core/function'
|
|
3
3
|
import { test } from 'uvu'
|
|
4
4
|
import { equal } from 'uvu/assert'
|
|
5
|
-
import {
|
|
5
|
+
import { browser__metafile0, server__metafile0 } from '../_fixtures/metafiles.js'
|
|
6
6
|
import { browser__metafile__set } from '../browser/index.js'
|
|
7
7
|
import { app_ctx } from '../ctx/index.js'
|
|
8
8
|
import { server__metafile__set } from '../server/index.js'
|
|
@@ -16,9 +16,9 @@ test('metafile__wait|success', async ()=>{
|
|
|
16
16
|
let promise0_resolved = false
|
|
17
17
|
metafile__wait(200).then(()=>promise0_resolved = true)
|
|
18
18
|
equal(promise0_resolved, false)
|
|
19
|
-
server__metafile__set(app_ctx,
|
|
19
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
20
20
|
equal(promise0_resolved, false)
|
|
21
|
-
browser__metafile__set(app_ctx,
|
|
21
|
+
browser__metafile__set(app_ctx, browser__metafile0)
|
|
22
22
|
await sleep(0)
|
|
23
23
|
equal(promise0_resolved, true)
|
|
24
24
|
})
|
|
@@ -31,7 +31,7 @@ test('metafile__wait|failure', async ()=>{
|
|
|
31
31
|
} catch (_err) {
|
|
32
32
|
err = _err as Error
|
|
33
33
|
}
|
|
34
|
-
equal(err?.message, 'metafile__wait|
|
|
34
|
+
equal(err?.message, 'metafile__wait|browser__metafile & server__metafile timeout')
|
|
35
35
|
equal((err?.cause as Error)?.message, 'Timeout 0ms')
|
|
36
36
|
})
|
|
37
37
|
test.run()
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Metafile } from 'esbuild'
|
|
2
|
+
export type rebuildjs_metafile_T = Metafile&{
|
|
3
|
+
inputs:Metafile['inputs']
|
|
4
|
+
outputs:{
|
|
5
|
+
[path:string]:Metafile['outputs'][string]&{
|
|
6
|
+
esbuild_cssBundle?:string
|
|
7
|
+
cssBundle_content?:string[]
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
rebuildjs_target?:'browser'|'server'
|
|
11
|
+
build_id?:string
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rebuildjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"description": "Reactive esbuild...simple hackable alternative to vite for Multi Page Apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"reactive",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"build",
|
|
33
33
|
"ctx",
|
|
34
34
|
"metafile",
|
|
35
|
+
"metafile_l0",
|
|
35
36
|
"middleware",
|
|
36
37
|
"server",
|
|
37
38
|
"types"
|
|
@@ -51,9 +52,9 @@
|
|
|
51
52
|
"./package.json": "./package.json"
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
|
-
"ctx-core": "^5.
|
|
55
|
-
"elysia": "^0.8.
|
|
56
|
-
"esbuild": "^0.19.
|
|
55
|
+
"ctx-core": "^5.6.1",
|
|
56
|
+
"elysia": "^0.8.6",
|
|
57
|
+
"esbuild": "^0.19.11",
|
|
57
58
|
"fdir": "^6.1.1",
|
|
58
59
|
"picomatch": "^3.0.1"
|
|
59
60
|
},
|
|
@@ -74,8 +75,9 @@
|
|
|
74
75
|
"build": ":",
|
|
75
76
|
"clean": ":",
|
|
76
77
|
"exec": "$@",
|
|
77
|
-
"test": "pnpm test
|
|
78
|
-
"test
|
|
79
|
-
"test
|
|
78
|
+
"test": "pnpm test:unit && pnpm test:types",
|
|
79
|
+
"test:types": "check-dts",
|
|
80
|
+
"test:unit": "NODE_OPTIONS=--loader=esmock tsx node_modules/uvu/bin.js . '\\.test\\.(ts|js)$'",
|
|
81
|
+
"test:unit:coverage": "c8 pnpm test:unit"
|
|
80
82
|
}
|
|
81
83
|
}
|
package/server/index.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import type { ctx__be_T, ctx__get_T, ctx__set_T, lock_memosig_T, memo_T, sig_T } from 'ctx-core/rmemo'
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { has_app_T, has_middleware_T, middleware_ctx_T } from '../ctx/index.js'
|
|
3
|
+
import type { rebuildjs_metafile_T } from '../metafile_l0/index.js'
|
|
4
4
|
export const server__metafile_path$_:ctx__be_T<has_app_T, memo_T<string>, 'app'>
|
|
5
5
|
export const server__metafile_path_:ctx__get_T<has_app_T, string>
|
|
6
|
-
export const server__metafile$_:ctx__be_T<has_app_T, lock_memosig_T<
|
|
7
|
-
export const server__metafile_:ctx__get_T<has_app_T,
|
|
8
|
-
export const server__metafile__set:ctx__set_T<has_app_T,
|
|
6
|
+
export const server__metafile$_:ctx__be_T<has_app_T, lock_memosig_T<rebuildjs_metafile_T|undefined>, 'app'>
|
|
7
|
+
export const server__metafile_:ctx__get_T<has_app_T, rebuildjs_metafile_T|undefined>
|
|
8
|
+
export const server__metafile__set:ctx__set_T<has_app_T, rebuildjs_metafile_T|undefined>
|
|
9
|
+
export declare function server__metafile__persist():Promise<void>
|
|
10
|
+
export const server__output__relative_path_M_middleware_ctx$_:ctx__be_T<has_app_T, memo_T<Map<string, middleware_ctx_T>>, 'app'>
|
|
11
|
+
export const server__output__relative_path_M_middleware_ctx_:ctx__get_T<has_app_T, Map<string, middleware_ctx_T>>
|
|
9
12
|
export const server__output__relative_path$_:ctx__be_T<has_middleware_T, sig_T<string>, 'middleware'>
|
|
10
13
|
export const server__output__relative_path_:ctx__get_T<has_middleware_T, string>
|
|
11
14
|
export const server__output__relative_path__set:ctx__set_T<has_middleware_T, string>
|
|
12
|
-
export const server__output$_:ctx__be_T<has_middleware_T, memo_T<
|
|
13
|
-
export const server__output_:ctx__get_T<has_middleware_T,
|
|
15
|
+
export const server__output$_:ctx__be_T<has_middleware_T, memo_T<rebuildjs_metafile_T['outputs'][string]|undefined>, 'middleware'>
|
|
16
|
+
export const server__output_:ctx__get_T<has_middleware_T, rebuildjs_metafile_T['outputs'][string]|undefined>
|
|
14
17
|
export const server__cssBundle__relative_path$_:ctx__be_T<has_middleware_T, memo_T<string|undefined>, 'middleware'>
|
|
15
18
|
export const server__cssBundle__relative_path_:ctx__get_T<has_middleware_T, string|undefined>
|
|
16
19
|
export const server__cssBundle$_:ctx__be_T<has_middleware_T, memo_T<string|undefined>, 'middleware'>
|
package/server/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { file_exists_ } from 'ctx-core/fs'
|
|
2
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
|
-
import { readFile } from 'node:fs/promises'
|
|
4
|
+
import { readFile, writeFile } from 'node:fs/promises'
|
|
5
5
|
import { join, relative } from 'path'
|
|
6
6
|
import { cwd_, server__relative_path_, server_path_ } from '../app/index.js'
|
|
7
|
+
import { app_ctx, middleware_ctx_ } from '../ctx/index.js'
|
|
7
8
|
export const [
|
|
8
9
|
server__metafile_path$_,
|
|
9
10
|
server__metafile_path_,
|
|
@@ -15,22 +16,52 @@ export const [
|
|
|
15
16
|
server__metafile$_,
|
|
16
17
|
server__metafile_,
|
|
17
18
|
server__metafile__set
|
|
18
|
-
] =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
] = /** @type {be_lock_memosig_triple_T<rebuildjs_metafile_T>} */
|
|
20
|
+
be_lock_memosig_triple_(()=>
|
|
21
|
+
undefined,
|
|
22
|
+
async (ctx, server__metafile$)=>{
|
|
23
|
+
server__metafile__waitfor_promise?.cancel?.()
|
|
24
|
+
let metafile_path
|
|
25
|
+
if (!server__metafile$.lock) {
|
|
26
|
+
metafile_path = server__metafile_path_(ctx)
|
|
27
|
+
server__metafile__waitfor_promise = waitfor(
|
|
28
|
+
()=>file_exists_(metafile_path),
|
|
29
|
+
200
|
|
30
|
+
).catch(()=>false)
|
|
31
|
+
if (await server__metafile__waitfor_promise && metafile_path === server__metafile_path_(ctx)) {
|
|
32
|
+
server__metafile$._ = await readFile(metafile_path).then(buf=>JSON.parse(buf + ''))
|
|
33
|
+
}
|
|
31
34
|
}
|
|
32
|
-
}
|
|
33
|
-
|
|
35
|
+
}, { ns: 'app', id: 'server__metafile' })
|
|
36
|
+
export function server__metafile__persist() {
|
|
37
|
+
return nullish__none_([
|
|
38
|
+
server__metafile_path_(app_ctx),
|
|
39
|
+
server__metafile_(app_ctx)
|
|
40
|
+
], (server__metafile_path, server__metafile)=>
|
|
41
|
+
writeFile(
|
|
42
|
+
server__metafile_path,
|
|
43
|
+
JSON.stringify(server__metafile, null, '\t')))
|
|
44
|
+
}
|
|
45
|
+
export const [
|
|
46
|
+
server__output__relative_path_M_middleware_ctx$_,
|
|
47
|
+
server__output__relative_path_M_middleware_ctx_,
|
|
48
|
+
] = be_memo_pair_(ctx=>
|
|
49
|
+
nullish__none_([server__metafile_(ctx)],
|
|
50
|
+
server__metafile=>
|
|
51
|
+
new Map(
|
|
52
|
+
Object.keys(server__metafile.outputs)
|
|
53
|
+
.filter(server__output__relative_path=>
|
|
54
|
+
server__metafile.outputs[server__output__relative_path].entryPoint)
|
|
55
|
+
.map(
|
|
56
|
+
server__output__relative_path=>{
|
|
57
|
+
const middleware_ctx = middleware_ctx_()
|
|
58
|
+
server__output__relative_path__set(middleware_ctx, server__output__relative_path)
|
|
59
|
+
return [server__output__relative_path, middleware_ctx]
|
|
60
|
+
}))),
|
|
61
|
+
{
|
|
62
|
+
id: 'server__output__relative_path_M_middleware_ctx',
|
|
63
|
+
ns: 'app'
|
|
64
|
+
})
|
|
34
65
|
export const [
|
|
35
66
|
server__output__relative_path$_,
|
|
36
67
|
server__output__relative_path_,
|
package/server/index.test.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { rmemo__wait } from 'ctx-core/rmemo'
|
|
|
5
5
|
import esmock from 'esmock'
|
|
6
6
|
import { test } from 'uvu'
|
|
7
7
|
import { equal, throws } from 'uvu/assert'
|
|
8
|
-
import {
|
|
8
|
+
import { server__metafile0, server__metafile1, server__metafile2 } from '../_fixtures/metafiles.js'
|
|
9
9
|
import { cwd__set, dist_path_, dist_path__set, is_prod__set, server_path_ } from '../app/index.js'
|
|
10
10
|
import { app_ctx, middleware_ctx_ } from '../ctx/index.js'
|
|
11
11
|
import {
|
|
@@ -24,7 +24,9 @@ import {
|
|
|
24
24
|
server__output_,
|
|
25
25
|
server__output__relative_path$_,
|
|
26
26
|
server__output__relative_path_,
|
|
27
|
-
server__output__relative_path__set
|
|
27
|
+
server__output__relative_path__set,
|
|
28
|
+
server__output__relative_path_M_middleware_ctx$_,
|
|
29
|
+
server__output__relative_path_M_middleware_ctx_
|
|
28
30
|
} from './index.js'
|
|
29
31
|
test.after.each(()=>{
|
|
30
32
|
app_ctx.s.app.clear()
|
|
@@ -74,9 +76,9 @@ test('server__metafile', async ()=>{
|
|
|
74
76
|
readFile_path = path
|
|
75
77
|
switch (path) {
|
|
76
78
|
case '/cwd/dist0/server/metafile.json':
|
|
77
|
-
return Buffer.from(JSON.stringify(
|
|
79
|
+
return Buffer.from(JSON.stringify(server__metafile0), 'utf-8')
|
|
78
80
|
case '/cwd/dist1/server/metafile.json':
|
|
79
|
-
return Buffer.from(JSON.stringify(
|
|
81
|
+
return Buffer.from(JSON.stringify(server__metafile1), 'utf-8')
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
}
|
|
@@ -85,43 +87,85 @@ test('server__metafile', async ()=>{
|
|
|
85
87
|
equal(_server__metafile$_(app_ctx)._, undefined)
|
|
86
88
|
equal(_server__metafile_(app_ctx), undefined)
|
|
87
89
|
await rmemo__wait(_server__metafile$_(app_ctx), m=>m, 100)
|
|
88
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
89
|
-
equal(_server__metafile_(app_ctx),
|
|
90
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
91
|
+
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
90
92
|
equal(file_exists__path, '/cwd/dist0/server/metafile.json')
|
|
91
93
|
equal(readFile_path, '/cwd/dist0/server/metafile.json')
|
|
92
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
93
|
-
equal(_server__metafile_(app_ctx),
|
|
94
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
95
|
+
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
94
96
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
95
|
-
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m,
|
|
96
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
97
|
-
equal(_server__metafile_(app_ctx),
|
|
97
|
+
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m, server__metafile1), 100)
|
|
98
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile1)
|
|
99
|
+
equal(_server__metafile_(app_ctx), server__metafile1)
|
|
98
100
|
equal(file_exists__path, '/cwd/dist1/server/metafile.json')
|
|
99
101
|
equal(readFile_path, '/cwd/dist1/server/metafile.json')
|
|
100
102
|
dist_path__set(app_ctx, '/cwd/dist0')
|
|
101
|
-
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m,
|
|
102
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
103
|
-
equal(_server__metafile_(app_ctx),
|
|
103
|
+
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m, server__metafile0), 100)
|
|
104
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile0)
|
|
105
|
+
equal(_server__metafile_(app_ctx), server__metafile0)
|
|
104
106
|
equal(file_exists__path, '/cwd/dist0/server/metafile.json')
|
|
105
107
|
equal(readFile_path, '/cwd/dist0/server/metafile.json')
|
|
106
|
-
_server__metafile__set(app_ctx,
|
|
107
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
108
|
-
equal(_server__metafile_(app_ctx),
|
|
108
|
+
_server__metafile__set(app_ctx, server__metafile2)
|
|
109
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile2)
|
|
110
|
+
equal(_server__metafile_(app_ctx), server__metafile2)
|
|
109
111
|
dist_path__set(app_ctx, '/cwd/dist1')
|
|
110
112
|
let error_msg:string|undefined = undefined
|
|
111
113
|
try {
|
|
112
|
-
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m,
|
|
114
|
+
await rmemo__wait(_server__metafile$_(app_ctx), m=>deep_equal(m, server__metafile1), 100)
|
|
113
115
|
} catch (e) {
|
|
114
116
|
error_msg = (e as Error).message
|
|
115
117
|
}
|
|
116
|
-
equal(_server__metafile$_(app_ctx)._,
|
|
117
|
-
equal(_server__metafile_(app_ctx),
|
|
118
|
+
equal(_server__metafile$_(app_ctx)._, server__metafile2)
|
|
119
|
+
equal(_server__metafile_(app_ctx), server__metafile2)
|
|
118
120
|
equal(error_msg, `Timeout 100ms`)
|
|
119
121
|
// @ts-expect-error TS2345
|
|
120
122
|
throws(()=>_server__metafile$_(ctx_()))
|
|
121
123
|
// @ts-expect-error TS2345
|
|
122
124
|
throws(()=>_server__metafile_(ctx_()))
|
|
123
125
|
// @ts-expect-error TS2345
|
|
124
|
-
throws(()=>_server__metafile__set(ctx_(),
|
|
126
|
+
throws(()=>_server__metafile__set(ctx_(), server__metafile0))
|
|
127
|
+
})
|
|
128
|
+
test('server__output__relative_path_M_middleware_ctx', ()=>{
|
|
129
|
+
equal(server__output__relative_path_M_middleware_ctx$_(app_ctx)._, undefined)
|
|
130
|
+
equal(server__output__relative_path_M_middleware_ctx_(app_ctx), undefined)
|
|
131
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
132
|
+
equal(
|
|
133
|
+
server__output__relative_path_M_middleware_ctx$_(app_ctx)
|
|
134
|
+
._
|
|
135
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js')
|
|
136
|
+
?.is_ctx,
|
|
137
|
+
true)
|
|
138
|
+
equal(
|
|
139
|
+
server__output__relative_path_(
|
|
140
|
+
server__output__relative_path_M_middleware_ctx$_(app_ctx)
|
|
141
|
+
._
|
|
142
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js')!),
|
|
143
|
+
'dist/server--dev/index.server-SVR0SVR0.js')
|
|
144
|
+
equal(
|
|
145
|
+
server__output__relative_path_M_middleware_ctx$_(app_ctx)
|
|
146
|
+
._
|
|
147
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js.map')
|
|
148
|
+
?.is_ctx,
|
|
149
|
+
undefined)
|
|
150
|
+
equal(
|
|
151
|
+
server__output__relative_path_M_middleware_ctx_(app_ctx)
|
|
152
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js')
|
|
153
|
+
?.is_ctx,
|
|
154
|
+
true)
|
|
155
|
+
equal(
|
|
156
|
+
server__output__relative_path_(
|
|
157
|
+
server__output__relative_path_M_middleware_ctx_(app_ctx)
|
|
158
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js')!),
|
|
159
|
+
'dist/server--dev/index.server-SVR0SVR0.js')
|
|
160
|
+
equal(
|
|
161
|
+
server__output__relative_path_M_middleware_ctx_(app_ctx)
|
|
162
|
+
.get('dist/server--dev/index.server-SVR0SVR0.js.map')
|
|
163
|
+
?.is_ctx,
|
|
164
|
+
undefined)
|
|
165
|
+
// @ts-expect-error TS2345
|
|
166
|
+
throws(()=>server__output__relative_path_M_middleware_ctx$_(ctx_()))
|
|
167
|
+
// @ts-expect-error TS2345
|
|
168
|
+
throws(()=>server__output__relative_path_M_middleware_ctx_(ctx_()))
|
|
125
169
|
})
|
|
126
170
|
test('server__output__relative_path', ()=>{
|
|
127
171
|
const middleware_ctx = middleware_ctx_()
|
|
@@ -142,11 +186,11 @@ test('server__output', ()=>{
|
|
|
142
186
|
is_prod__set(app_ctx, false)
|
|
143
187
|
equal(server__output$_(middleware_ctx)._, undefined)
|
|
144
188
|
equal(server__output_(middleware_ctx), undefined)
|
|
145
|
-
server__metafile__set(app_ctx,
|
|
189
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
146
190
|
equal(server__output$_(middleware_ctx)._, undefined)
|
|
147
191
|
equal(server__output_(middleware_ctx), undefined)
|
|
148
192
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
|
149
|
-
equal(
|
|
193
|
+
equal(server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'], {
|
|
150
194
|
'imports': [],
|
|
151
195
|
'exports': [],
|
|
152
196
|
'entryPoint': 'src/app/index.server.ts',
|
|
@@ -158,8 +202,8 @@ test('server__output', ()=>{
|
|
|
158
202
|
},
|
|
159
203
|
'bytes': 98
|
|
160
204
|
})
|
|
161
|
-
equal(server__output$_(middleware_ctx)._,
|
|
162
|
-
equal(server__output_(middleware_ctx),
|
|
205
|
+
equal(server__output$_(middleware_ctx)._, server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'])
|
|
206
|
+
equal(server__output_(middleware_ctx), server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'])
|
|
163
207
|
// @ts-expect-error TS2345
|
|
164
208
|
throws(()=>server__output$_(app_ctx))
|
|
165
209
|
// @ts-expect-error TS2345
|
|
@@ -170,25 +214,27 @@ test('server__cssBundle__relative_path', ()=>{
|
|
|
170
214
|
is_prod__set(app_ctx, false)
|
|
171
215
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, undefined)
|
|
172
216
|
equal(server__cssBundle__relative_path_(middleware_ctx), undefined)
|
|
173
|
-
server__metafile__set(app_ctx,
|
|
217
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
174
218
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, undefined)
|
|
175
219
|
equal(server__cssBundle__relative_path_(middleware_ctx), undefined)
|
|
176
220
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
|
177
|
-
equal(
|
|
221
|
+
equal(server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'].cssBundle,
|
|
222
|
+
'dist/server--dev/index.server-SVR0SVR0.css')
|
|
178
223
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, 'dist/server--dev/index.server-SVR0SVR0.css')
|
|
179
224
|
equal(server__cssBundle__relative_path_(middleware_ctx), 'dist/server--dev/index.server-SVR0SVR0.css')
|
|
180
|
-
server__metafile__set(app_ctx,
|
|
225
|
+
server__metafile__set(app_ctx, server__metafile1)
|
|
181
226
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, undefined)
|
|
182
227
|
equal(server__cssBundle__relative_path_(middleware_ctx), undefined)
|
|
183
228
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR1SVR1.js')
|
|
184
|
-
equal(
|
|
229
|
+
equal(server__metafile1.outputs['dist/server--dev/index.server-SVR1SVR1.js'].cssBundle,
|
|
230
|
+
'dist/server--dev/index.server-SVR1SVR1.css')
|
|
185
231
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, 'dist/server--dev/index.server-SVR1SVR1.css')
|
|
186
232
|
equal(server__cssBundle__relative_path_(middleware_ctx), 'dist/server--dev/index.server-SVR1SVR1.css')
|
|
187
|
-
server__metafile__set(app_ctx,
|
|
233
|
+
server__metafile__set(app_ctx, server__metafile2)
|
|
188
234
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, undefined)
|
|
189
235
|
equal(server__cssBundle__relative_path_(middleware_ctx), undefined)
|
|
190
236
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR2SVR2.js')
|
|
191
|
-
equal(
|
|
237
|
+
equal(server__metafile2.outputs['dist/server--dev/index.server-SVR2SVR2.js'].cssBundle, undefined)
|
|
192
238
|
equal(server__cssBundle__relative_path$_(middleware_ctx)._, undefined)
|
|
193
239
|
equal(server__cssBundle__relative_path_(middleware_ctx), undefined)
|
|
194
240
|
// @ts-expect-error TS2345
|
|
@@ -204,25 +250,27 @@ test('server__cssBundle', ()=>{
|
|
|
204
250
|
equal(server_path_(app_ctx), '/cwd/dist/server--dev')
|
|
205
251
|
equal(server__cssBundle$_(middleware_ctx)._, undefined)
|
|
206
252
|
equal(server__cssBundle_(middleware_ctx), undefined)
|
|
207
|
-
server__metafile__set(app_ctx,
|
|
253
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
208
254
|
equal(server__cssBundle$_(middleware_ctx)._, undefined)
|
|
209
255
|
equal(server__cssBundle_(middleware_ctx), undefined)
|
|
210
256
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
|
211
|
-
equal(
|
|
257
|
+
equal(server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'].cssBundle,
|
|
258
|
+
'dist/server--dev/index.server-SVR0SVR0.css')
|
|
212
259
|
equal(server__cssBundle$_(middleware_ctx)._, '/cwd/dist/server--dev/index.server-SVR0SVR0.css')
|
|
213
260
|
equal(server__cssBundle_(middleware_ctx), '/cwd/dist/server--dev/index.server-SVR0SVR0.css')
|
|
214
|
-
server__metafile__set(app_ctx,
|
|
261
|
+
server__metafile__set(app_ctx, server__metafile1)
|
|
215
262
|
equal(server__cssBundle$_(middleware_ctx)._, undefined)
|
|
216
263
|
equal(server__cssBundle_(middleware_ctx), undefined)
|
|
217
264
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR1SVR1.js')
|
|
218
|
-
equal(
|
|
265
|
+
equal(server__metafile1.outputs['dist/server--dev/index.server-SVR1SVR1.js'].cssBundle,
|
|
266
|
+
'dist/server--dev/index.server-SVR1SVR1.css')
|
|
219
267
|
equal(server__cssBundle$_(middleware_ctx)._, '/cwd/dist/server--dev/index.server-SVR1SVR1.css')
|
|
220
268
|
equal(server__cssBundle_(middleware_ctx), '/cwd/dist/server--dev/index.server-SVR1SVR1.css')
|
|
221
|
-
server__metafile__set(app_ctx,
|
|
269
|
+
server__metafile__set(app_ctx, server__metafile2)
|
|
222
270
|
equal(server__cssBundle$_(middleware_ctx)._, undefined)
|
|
223
271
|
equal(server__cssBundle_(middleware_ctx), undefined)
|
|
224
272
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR2SVR2.js')
|
|
225
|
-
equal(
|
|
273
|
+
equal(server__metafile2.outputs['dist/server--dev/index.server-SVR2SVR2.js'].cssBundle, undefined)
|
|
226
274
|
equal(server__cssBundle$_(middleware_ctx)._, undefined)
|
|
227
275
|
equal(server__cssBundle_(middleware_ctx), undefined)
|
|
228
276
|
// @ts-expect-error TS2345
|
|
@@ -238,25 +286,27 @@ test('server__css', ()=>{
|
|
|
238
286
|
equal(server_path_(app_ctx), '/cwd/dist/server--dev')
|
|
239
287
|
equal(server__css$_(middleware_ctx)._, undefined)
|
|
240
288
|
equal(server__css_(middleware_ctx), undefined)
|
|
241
|
-
server__metafile__set(app_ctx,
|
|
289
|
+
server__metafile__set(app_ctx, server__metafile0)
|
|
242
290
|
equal(server__css$_(middleware_ctx)._, undefined)
|
|
243
291
|
equal(server__css_(middleware_ctx), undefined)
|
|
244
292
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR0SVR0.js')
|
|
245
|
-
equal(
|
|
293
|
+
equal(server__metafile0.outputs['dist/server--dev/index.server-SVR0SVR0.js'].cssBundle,
|
|
294
|
+
'dist/server--dev/index.server-SVR0SVR0.css')
|
|
246
295
|
equal(server__css$_(middleware_ctx)._, '/index.server-SVR0SVR0.css')
|
|
247
296
|
equal(server__css_(middleware_ctx), '/index.server-SVR0SVR0.css')
|
|
248
|
-
server__metafile__set(app_ctx,
|
|
297
|
+
server__metafile__set(app_ctx, server__metafile1)
|
|
249
298
|
equal(server__css$_(middleware_ctx)._, undefined)
|
|
250
299
|
equal(server__css_(middleware_ctx), undefined)
|
|
251
300
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR1SVR1.js')
|
|
252
|
-
equal(
|
|
301
|
+
equal(server__metafile1.outputs['dist/server--dev/index.server-SVR1SVR1.js'].cssBundle,
|
|
302
|
+
'dist/server--dev/index.server-SVR1SVR1.css')
|
|
253
303
|
equal(server__css$_(middleware_ctx)._, '/index.server-SVR1SVR1.css')
|
|
254
304
|
equal(server__css_(middleware_ctx), '/index.server-SVR1SVR1.css')
|
|
255
|
-
server__metafile__set(app_ctx,
|
|
305
|
+
server__metafile__set(app_ctx, server__metafile2)
|
|
256
306
|
equal(server__css$_(middleware_ctx)._, undefined)
|
|
257
307
|
equal(server__css_(middleware_ctx), undefined)
|
|
258
308
|
server__output__relative_path__set(middleware_ctx, 'dist/server--dev/index.server-SVR2SVR2.js')
|
|
259
|
-
equal(
|
|
309
|
+
equal(server__metafile2.outputs['dist/server--dev/index.server-SVR2SVR2.js'].cssBundle, undefined)
|
|
260
310
|
equal(server__css$_(middleware_ctx)._, undefined)
|
|
261
311
|
equal(server__css_(middleware_ctx), undefined)
|
|
262
312
|
// @ts-expect-error TS2345
|