@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.7.4",
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.55.1",
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
- rebuildjs__build_id_,
27
+ rebuildjs__esbuild__build_id_,
29
28
  rebuildjs__ready__add,
30
- rebuildjs_core__ready_,
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
- && rebuildjs_core__ready_(ctx)
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(rebuildjs_tailwind__ready_)
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 new Error(`Build errors: ${result.errors.length} errors`)
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 (!rebuildjs_core__ready_(app_ctx)) return
87
+ if (!rebuildjs__esbuild__done_(app_ctx)) return
88
88
  nullish__none_(tup(
89
89
  build_id_(app_ctx),
90
- rebuildjs__build_id_(app_ctx),
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: JSON.parse(await cmd(readFile(esbuild_cssBundle_path + '.map')))
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
- if (result.map) {
184
- const map_json = JSON.stringify(result.map)
185
- await cmd(writeFile(annotated_cssBundle_path + '.map', map_json))
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(annotated_cssBundle_path + '.map')
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
- || rebuildjs__build_id_(app_ctx) !== rebuildjs__build_id
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
- rebuildjs__build_id__set,
13
- rebuildjs_core__ready_,
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, rebuildjs__ready__add__ready__a1_
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(rebuildjs_core__ready_(app_ctx), false)
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(rebuildjs_core__ready_(app_ctx), false)
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(rebuildjs_core__ready_(app_ctx), false)
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
- rebuildjs__build_id__set(app_ctx, build_id)
63
- equal(rebuildjs_core__ready_(app_ctx), true)
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(rebuildjs_core__ready_(app_ctx), true)
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(rebuildjs__ready__add__ready__a1_(app_ctx), [rebuildjs_tailwind__ready_])
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(rebuildjs__ready__add__ready__a1_(app_ctx), [rebuildjs_tailwind__ready_])
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()