@rebuildjs/tailwindcss 0.7.4 → 0.8.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rebuildjs/tailwindcss",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Tailwindcss integration with rebuildjs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tailwindcss",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"ctx-core": "^5.38.1",
|
|
39
39
|
"esbuild": "^0.20.0",
|
|
40
40
|
"postcss": "^8.4.34",
|
|
41
|
-
"rebuildjs": "^0.
|
|
41
|
+
"rebuildjs": "^0.56.0",
|
|
42
42
|
"tailwindcss": "^3.4.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
browser__metafile__update,
|
|
22
22
|
browser__output_,
|
|
23
23
|
browser__output__relative_path_,
|
|
24
|
-
browser__relative_path_,
|
|
25
24
|
build_id_,
|
|
26
25
|
cssBundle__annotate,
|
|
27
26
|
cwd_,
|
|
28
|
-
|
|
27
|
+
rebuildjs__esbuild__build_id_,
|
|
29
28
|
rebuildjs__ready__add,
|
|
30
|
-
|
|
29
|
+
rebuildjs__esbuild__done_,
|
|
30
|
+
rebuildjs__esbuild__done__wait,
|
|
31
31
|
server__metafile_,
|
|
32
32
|
server__metafile__update,
|
|
33
33
|
server__output_,
|
|
@@ -48,7 +48,7 @@ export const [
|
|
|
48
48
|
] = be_memo_pair_(ctx=>
|
|
49
49
|
!!(
|
|
50
50
|
build_id_(ctx)
|
|
51
|
-
&&
|
|
51
|
+
&& rebuildjs__esbuild__done_(ctx)
|
|
52
52
|
&& build_id_(ctx) === rebuild_tailwind_plugin__build_id_(ctx)),
|
|
53
53
|
{ id: 'rebuildjs_tailwind__ready', ns: 'app' })
|
|
54
54
|
export function rebuildjs_tailwind__ready__wait(timeout) {
|
|
@@ -65,14 +65,14 @@ export function rebuildjs_tailwind__ready__wait(timeout) {
|
|
|
65
65
|
export function rebuild_tailwind_plugin_(config) {
|
|
66
66
|
return { name: 'rebuild_tailwind_plugin', setup: setup_() }
|
|
67
67
|
function setup_() {
|
|
68
|
-
rebuildjs__ready__add(
|
|
68
|
+
rebuildjs__ready__add(rebuildjs_tailwind__ready$_)
|
|
69
69
|
/**
|
|
70
70
|
* @param {import('esbuild').PluginBuild}build
|
|
71
71
|
*/
|
|
72
72
|
const setup = (build)=>{
|
|
73
73
|
build.onEnd(result=>{
|
|
74
74
|
if (result.errors.length) {
|
|
75
|
-
throw
|
|
75
|
+
throw Error('Build errors: ' + result.errors.length + ' errors')
|
|
76
76
|
}
|
|
77
77
|
})
|
|
78
78
|
}
|
|
@@ -84,20 +84,20 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
84
84
|
r()
|
|
85
85
|
return tailwind__build$
|
|
86
86
|
function r() {
|
|
87
|
-
if (!
|
|
87
|
+
if (!rebuildjs__esbuild__done_(app_ctx)) return
|
|
88
88
|
nullish__none_(tup(
|
|
89
89
|
build_id_(app_ctx),
|
|
90
|
-
|
|
90
|
+
rebuildjs__esbuild__build_id_(app_ctx),
|
|
91
91
|
server__output__relative_path_M_middleware_ctx_(app_ctx),
|
|
92
92
|
), async (
|
|
93
93
|
build_id,
|
|
94
94
|
rebuildjs__build_id,
|
|
95
95
|
server__output__relative_path_M_middleware_ctx,
|
|
96
96
|
)=>{
|
|
97
|
-
let promise_a1 = []
|
|
98
97
|
try {
|
|
99
98
|
let server__metafile_updated
|
|
100
99
|
let browser_metafile_updated
|
|
100
|
+
await rebuildjs__esbuild__done__wait()
|
|
101
101
|
for (const middleware_ctx of server__output__relative_path_M_middleware_ctx.values()) {
|
|
102
102
|
server__metafile_updated = await output__process(
|
|
103
103
|
server__metafile_(middleware_ctx),
|
|
@@ -114,7 +114,6 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
114
114
|
if (browser_metafile_updated) {
|
|
115
115
|
await cmd(browser__metafile__update(browser__metafile_(app_ctx)))
|
|
116
116
|
}
|
|
117
|
-
await Promise.all(promise_a1)
|
|
118
117
|
if (!server__metafile_updated && !browser_metafile_updated) {
|
|
119
118
|
rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
|
|
120
119
|
}
|
|
@@ -154,8 +153,10 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
154
153
|
output.cssBundle = annotated_cssBundle
|
|
155
154
|
if (metafile_updated) {
|
|
156
155
|
metafile.outputs[annotated_cssBundle] = metafile.outputs[cssBundle]
|
|
156
|
+
metafile.outputs[annotated_cssBundle + '.map'] = metafile.outputs[cssBundle + '.map']
|
|
157
157
|
}
|
|
158
158
|
const annotated_cssBundle_path = join(cwd_(app_ctx), annotated_cssBundle)
|
|
159
|
+
const annotated_cssBundle_map_path = join(cwd_(app_ctx), annotated_cssBundle) + '.map'
|
|
159
160
|
const tailwind_instance = tailwind({
|
|
160
161
|
...config?.tailwindcss_config,
|
|
161
162
|
content: [
|
|
@@ -175,16 +176,16 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
175
176
|
to: join(cwd_(app_ctx), cssBundle),
|
|
176
177
|
map: esbuild_cssBundle_map_exists
|
|
177
178
|
? {
|
|
178
|
-
prev:
|
|
179
|
+
prev: await file_json__parse__wait(esbuild_cssBundle_map_path)
|
|
179
180
|
}
|
|
180
181
|
: false,
|
|
181
182
|
}))
|
|
182
183
|
await cmd(writeFile(annotated_cssBundle_path, result.css))
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
await cmd(writeFile(
|
|
184
|
+
const map_json = result.map ? JSON.stringify(result.map) : null
|
|
185
|
+
if (map_json) {
|
|
186
|
+
await cmd(writeFile(annotated_cssBundle_map_path, map_json))
|
|
186
187
|
await cmd(file_exists__waitfor(()=>
|
|
187
|
-
readFile(
|
|
188
|
+
readFile(annotated_cssBundle_map_path)
|
|
188
189
|
.then(buf=>'' + buf === map_json),
|
|
189
190
|
5_000))
|
|
190
191
|
}
|
|
@@ -192,11 +193,21 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
192
193
|
readFile(annotated_cssBundle_path)
|
|
193
194
|
.then(buf=>'' + buf === result.css),
|
|
194
195
|
5_000))
|
|
195
|
-
promise_a1.push(file_exists__waitfor(
|
|
196
|
-
join(cwd_(app_ctx), browser__relative_path_(app_ctx), basename(annotated_cssBundle_path))
|
|
197
|
-
))
|
|
198
196
|
return metafile_updated
|
|
199
197
|
}
|
|
198
|
+
async function file_json__parse__wait(path) {
|
|
199
|
+
// eslint-disable-next-line no-constant-condition
|
|
200
|
+
while (1) {
|
|
201
|
+
try {
|
|
202
|
+
return JSON.parse(
|
|
203
|
+
await file_exists__waitfor(()=>
|
|
204
|
+
cmd(readFile(path))))
|
|
205
|
+
} catch (err) {
|
|
206
|
+
if (err.name === 'SyntaxError') continue
|
|
207
|
+
throw err
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
200
211
|
async function cmd(promise) {
|
|
201
212
|
if (cancel_()) promise__cancel__throw(promise)
|
|
202
213
|
const rv = await promise
|
|
@@ -206,7 +217,7 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
206
217
|
function cancel_() {
|
|
207
218
|
return (
|
|
208
219
|
build_id_(app_ctx) !== build_id
|
|
209
|
-
||
|
|
220
|
+
|| rebuildjs__esbuild__build_id_(app_ctx) !== rebuildjs__build_id
|
|
210
221
|
|| server__output__relative_path_M_middleware_ctx_(
|
|
211
222
|
app_ctx) !== server__output__relative_path_M_middleware_ctx
|
|
212
223
|
)
|
|
@@ -9,14 +9,15 @@ import {
|
|
|
9
9
|
ctx_,
|
|
10
10
|
cwd_,
|
|
11
11
|
cwd__set,
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
rebuildjs__esbuild__build_id__set,
|
|
13
|
+
rebuildjs__esbuild__done_,
|
|
14
|
+
rebuildjs__ready__add__ready$__a1_,
|
|
14
15
|
rebuildjs__ready__wait,
|
|
15
16
|
rebuildjs_browser__build,
|
|
16
17
|
rebuildjs_server__build,
|
|
17
18
|
rmemo__wait,
|
|
18
19
|
server__metafile_,
|
|
19
|
-
server__metafile__set
|
|
20
|
+
server__metafile__set
|
|
20
21
|
} from 'rebuildjs/server'
|
|
21
22
|
import { test } from 'uvu'
|
|
22
23
|
import { equal, throws } from 'uvu/assert'
|
|
@@ -48,23 +49,23 @@ test('rebuild_tailwind_plugin__ready', ()=>{
|
|
|
48
49
|
equal(rebuildjs_tailwind__ready_(app_ctx), false)
|
|
49
50
|
const build_id = server__metafile0.build_id!
|
|
50
51
|
build_id__set(app_ctx, build_id)
|
|
51
|
-
equal(
|
|
52
|
+
equal(rebuildjs__esbuild__done_(app_ctx), false)
|
|
52
53
|
equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
|
|
53
54
|
equal(rebuildjs_tailwind__ready_(app_ctx), false)
|
|
54
55
|
server__metafile__set(app_ctx, server__metafile0)
|
|
55
|
-
equal(
|
|
56
|
+
equal(rebuildjs__esbuild__done_(app_ctx), false)
|
|
56
57
|
equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
|
|
57
58
|
equal(rebuildjs_tailwind__ready_(app_ctx), false)
|
|
58
59
|
browser__metafile__set(app_ctx, browser__metafile0)
|
|
59
|
-
equal(
|
|
60
|
+
equal(rebuildjs__esbuild__done_(app_ctx), false)
|
|
60
61
|
equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
|
|
61
62
|
equal(rebuildjs_tailwind__ready_(app_ctx), false)
|
|
62
|
-
|
|
63
|
-
equal(
|
|
63
|
+
rebuildjs__esbuild__build_id__set(app_ctx, build_id)
|
|
64
|
+
equal(rebuildjs__esbuild__done_(app_ctx), true)
|
|
64
65
|
equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
|
|
65
66
|
equal(rebuildjs_tailwind__ready_(app_ctx), false)
|
|
66
67
|
rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
|
|
67
|
-
equal(
|
|
68
|
+
equal(rebuildjs__esbuild__done_(app_ctx), true)
|
|
68
69
|
equal(rebuildjs_tailwind__ready$_(app_ctx)(), true)
|
|
69
70
|
equal(rebuildjs_tailwind__ready_(app_ctx), true)
|
|
70
71
|
})
|
|
@@ -77,7 +78,7 @@ test('rebuild_tailwind_plugin_|default', async ()=>{
|
|
|
77
78
|
let browser__build_context:BuildContext|undefined = undefined
|
|
78
79
|
try {
|
|
79
80
|
const rebuild_tailwind_plugin = rebuild_tailwind_plugin_()
|
|
80
|
-
equal(
|
|
81
|
+
equal(rebuildjs__ready__add__ready$__a1_(app_ctx), [rebuildjs_tailwind__ready$_])
|
|
81
82
|
server__build_context = await rebuildjs_server__build({ plugins: [rebuild_tailwind_plugin] })
|
|
82
83
|
browser__build_context = await rebuildjs_browser__build({ plugins: [rebuild_tailwind_plugin] })
|
|
83
84
|
await rebuildjs__ready__wait()
|
|
@@ -141,7 +142,7 @@ test('rebuild_tailwind_plugin_|tailwindcss_config', async ()=>{
|
|
|
141
142
|
content: []
|
|
142
143
|
}
|
|
143
144
|
})
|
|
144
|
-
equal(
|
|
145
|
+
equal(rebuildjs__ready__add__ready$__a1_(app_ctx), [rebuildjs_tailwind__ready$_])
|
|
145
146
|
server__build_context = await rebuildjs_server__build({ plugins: [rebuild_tailwind_plugin] })
|
|
146
147
|
browser__build_context = await rebuildjs_browser__build({ plugins: [rebuild_tailwind_plugin] })
|
|
147
148
|
await rebuildjs__ready__wait()
|