@rebuildjs/tailwindcss 0.4.0 → 0.5.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.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Tailwindcss integration with rebuildjs",
5
5
  "keywords": [
6
6
  "tailwindcss",
@@ -4,7 +4,7 @@ import type { Config } from 'tailwindcss'
4
4
  export declare const rebuild_tailwind_plugin__build_id$_:ctx__be_T<sig_T<string|undefined>, 'app'>
5
5
  export declare const rebuild_tailwind_plugin__build_id_:ctx__get_T<string|undefined, 'app'>
6
6
  export declare const rebuild_tailwind_plugin__build_id__set:ctx__set_T<string|undefined, 'app'>
7
- export declare const rebuild_tailwind_plugin__ready$_:ctx__be_T<sig_T<boolean>, 'app'>
8
- export declare const rebuild_tailwind_plugin__ready_:ctx__get_T<boolean, 'app'>
9
- export declare function rebuild_tailwind_plugin__ready(timeout?:number):Promise<boolean>
7
+ export declare const rebuildjs_tailwind__ready$_:ctx__be_T<sig_T<boolean>, 'app'>
8
+ export declare const rebuildjs_tailwind__ready_:ctx__get_T<boolean, 'app'>
9
+ export declare function rebuildjs_tailwind__ready(timeout?:number):Promise<boolean>
10
10
  export declare function rebuild_tailwind_plugin_(config?:Config):Plugin
@@ -41,17 +41,17 @@ export const [
41
41
  ()=>undefined,
42
42
  { id: 'rebuild_tailwind_plugin__build_id', ns: 'app' })
43
43
  export const [
44
- rebuild_tailwind_plugin__ready$_,
45
- rebuild_tailwind_plugin__ready_,
44
+ rebuildjs_tailwind__ready$_,
45
+ rebuildjs_tailwind__ready_,
46
46
  ] = be_memo_pair_(ctx=>
47
47
  !!(
48
48
  build_id_(ctx)
49
49
  && rebuildjs__ready_(ctx)
50
50
  && build_id_(ctx) === rebuild_tailwind_plugin__build_id_(ctx)),
51
- { id: 'rebuild_tailwind_plugin__ready', ns: 'app' })
52
- export function rebuild_tailwind_plugin__ready(timeout) {
51
+ { id: 'rebuildjs_tailwind__ready', ns: 'app' })
52
+ export function rebuildjs_tailwind__ready__wait(timeout) {
53
53
  return rmemo__wait(
54
- rebuild_tailwind_plugin__ready$_(app_ctx),
54
+ rebuildjs_tailwind__ready$_(app_ctx),
55
55
  ready=>ready,
56
56
  timeout ?? 10_000)
57
57
  }
@@ -87,19 +87,27 @@ export function rebuild_tailwind_plugin_(config) {
87
87
  server__output__relative_path_M_middleware_ctx,
88
88
  )=>{
89
89
  try {
90
+ let server__metafile_updated
91
+ let browser_metafile_updated
90
92
  for (const middleware_ctx of server__output__relative_path_M_middleware_ctx.values()) {
91
- await output__process(
93
+ server__metafile_updated = await output__process(
92
94
  server__metafile_(middleware_ctx),
93
95
  server__output__relative_path_(middleware_ctx),
94
96
  server__output_(middleware_ctx))
95
- await output__process(
97
+ browser_metafile_updated = await output__process(
96
98
  browser__metafile_(middleware_ctx),
97
99
  browser__output__relative_path_(middleware_ctx),
98
100
  browser__output_(middleware_ctx))
99
101
  }
100
- await server__metafile__update(server__metafile_(app_ctx))
101
- await browser__metafile__update(browser__metafile_(app_ctx))
102
- rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
102
+ if (server__metafile_updated) {
103
+ await cmd(server__metafile__update(server__metafile_(app_ctx)))
104
+ }
105
+ if (browser_metafile_updated) {
106
+ await cmd(browser__metafile__update(browser__metafile_(app_ctx)))
107
+ }
108
+ if (!server__metafile_updated && !browser_metafile_updated) {
109
+ rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
110
+ }
103
111
  } catch (err) {
104
112
  if (err instanceof Cancel) return
105
113
  throw err
@@ -113,25 +121,30 @@ export function rebuild_tailwind_plugin_(config) {
113
121
  output__relative_path,
114
122
  output,
115
123
  ) {
124
+ let metafile_updated = false
116
125
  const cssBundle = output?.cssBundle
117
- if (!cssBundle) return
126
+ if (!cssBundle) return metafile_updated
118
127
  const esbuild_cssBundle = output.esbuild_cssBundle ?? cssBundle
119
128
  const esbuild_cssBundle_path = join(cwd_(app_ctx), esbuild_cssBundle)
120
- await file_exists__waitfor(
129
+ await cmd(file_exists__waitfor(
121
130
  esbuild_cssBundle_path,
122
131
  1000,
123
- ()=>cmd(sleep(0)))
132
+ ()=>cmd(sleep(0))))
124
133
  const esbuild_cssBundle_map_path = esbuild_cssBundle_path + '.map'
125
134
  const esbuild_cssBundle_map_exists = await cmd(file_exists_(esbuild_cssBundle_map_path))
126
135
  const output_hash =
127
136
  basename(output__relative_path, '.js')
128
137
  .split('-')
129
138
  .slice(-1)[0]
139
+ metafile_updated = !cssBundle.includes('_' + output_hash)
130
140
  const annotated_cssBundle =
131
- cssBundle.includes('_' + output_hash)
132
- ? cssBundle
133
- : cssBundle__annotate(cssBundle, '_' + output_hash)
141
+ metafile_updated
142
+ ? cssBundle__annotate(cssBundle, '_' + output_hash)
143
+ : cssBundle
134
144
  output.cssBundle = annotated_cssBundle
145
+ if (metafile_updated) {
146
+ metafile.outputs[annotated_cssBundle] = metafile.outputs[cssBundle]
147
+ }
135
148
  const annotated_cssBundle_path = join(cwd_(app_ctx), annotated_cssBundle)
136
149
  const result = await cmd(postcss([
137
150
  tailwind({
@@ -155,8 +168,18 @@ export function rebuild_tailwind_plugin_(config) {
155
168
  }))
156
169
  await cmd(writeFile(annotated_cssBundle_path, result.css))
157
170
  if (result.map) {
158
- await cmd(writeFile(annotated_cssBundle_path + '.map', JSON.stringify(result.map)))
171
+ const map_json = JSON.stringify(result.map)
172
+ await cmd(writeFile(annotated_cssBundle_path + '.map', map_json))
173
+ await cmd(file_exists__waitfor(()=>
174
+ readFile(annotated_cssBundle_path + '.map')
175
+ .then(buf=>'' + buf === map_json),
176
+ 5_000))
159
177
  }
178
+ await cmd(file_exists__waitfor(()=>
179
+ readFile(annotated_cssBundle_path)
180
+ .then(buf=>'' + buf === result.css),
181
+ 5_000))
182
+ return metafile_updated
160
183
  }
161
184
  async function cmd(promise) {
162
185
  if (cancel_()) promise__cancel__throw(promise)
@@ -26,8 +26,8 @@ import {
26
26
  rebuild_tailwind_plugin__build_id$_,
27
27
  rebuild_tailwind_plugin__build_id_,
28
28
  rebuild_tailwind_plugin__build_id__set,
29
- rebuild_tailwind_plugin__ready$_,
30
- rebuild_tailwind_plugin__ready_
29
+ rebuildjs_tailwind__ready$_,
30
+ rebuildjs_tailwind__ready_
31
31
  } from './index.js'
32
32
  test.after.each(()=>{
33
33
  app_ctx.s.app.clear()
@@ -44,29 +44,29 @@ test('rebuild_tailwind_plugin__build_id', ()=>{
44
44
  throws(()=>rebuild_tailwind_plugin__build_id_(ctx_()))
45
45
  })
46
46
  test('rebuild_tailwind_plugin__ready', ()=>{
47
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), false)
48
- equal(rebuild_tailwind_plugin__ready_(app_ctx), false)
47
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
48
+ equal(rebuildjs_tailwind__ready_(app_ctx), false)
49
49
  const build_id = server__metafile0.build_id!
50
50
  build_id__set(app_ctx, build_id)
51
51
  equal(rebuildjs__ready_(app_ctx), false)
52
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), false)
53
- equal(rebuild_tailwind_plugin__ready_(app_ctx), false)
52
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
53
+ equal(rebuildjs_tailwind__ready_(app_ctx), false)
54
54
  server__metafile__set(app_ctx, server__metafile0)
55
55
  equal(rebuildjs__ready_(app_ctx), false)
56
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), false)
57
- equal(rebuild_tailwind_plugin__ready_(app_ctx), false)
56
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
57
+ equal(rebuildjs_tailwind__ready_(app_ctx), false)
58
58
  browser__metafile__set(app_ctx, browser__metafile0)
59
59
  equal(rebuildjs__ready_(app_ctx), false)
60
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), false)
61
- equal(rebuild_tailwind_plugin__ready_(app_ctx), false)
60
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
61
+ equal(rebuildjs_tailwind__ready_(app_ctx), false)
62
62
  rebuildjs__build_id__set(app_ctx, build_id)
63
63
  equal(rebuildjs__ready_(app_ctx), true)
64
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), false)
65
- equal(rebuild_tailwind_plugin__ready_(app_ctx), false)
64
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), false)
65
+ equal(rebuildjs_tailwind__ready_(app_ctx), false)
66
66
  rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
67
67
  equal(rebuildjs__ready_(app_ctx), true)
68
- equal(rebuild_tailwind_plugin__ready$_(app_ctx)(), true)
69
- equal(rebuild_tailwind_plugin__ready_(app_ctx), true)
68
+ equal(rebuildjs_tailwind__ready$_(app_ctx)(), true)
69
+ equal(rebuildjs_tailwind__ready_(app_ctx), true)
70
70
  })
71
71
  test('rebuild_tailwind_plugin_', async ()=>{
72
72
  const test_dir = dirname(new URL(import.meta.url).pathname)
@@ -100,7 +100,7 @@ test('rebuild_tailwind_plugin_', async ()=>{
100
100
  equal(typeof browser__entryPoint__output.esbuild_cssBundle, 'string')
101
101
  equal(server__entryPoint__output.cssBundle !== server__entryPoint__output.esbuild_cssBundle, true)
102
102
  equal(browser__entryPoint__output.cssBundle !== browser__entryPoint__output.esbuild_cssBundle, true)
103
- await rmemo__wait(rebuild_tailwind_plugin__ready$_(app_ctx), $=>$, 2000)
103
+ await rmemo__wait(rebuildjs_tailwind__ready$_(app_ctx), $=>$, 2000)
104
104
  const cssBundle_text =
105
105
  await readFile(join(cwd_(app_ctx), server__entryPoint__output.cssBundle!))
106
106
  .then(buf=>buf + '')