Skip to content

Commit e6e3e8f

Browse files
committed
Add layout and global client tsx/jsx support
- Also fixed a bug where jsx files were getting copied over to the build directory. - Also enabled ts support on client bundles regardless if node supports it or not.
1 parent 8c8bfbe commit e6e3e8f

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

lib/build-static/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const copy = cpx.copy
2020
*/
2121
export function getCopyGlob (src) {
2222
// Always ignore files we typically process. Otherwise it gets really confusing.
23-
return `${src}/**/!(*.ts|*.mts|*.cts|*.js|*.cjs|*.mjs|*.css|*.html|*.md)`
23+
return `${src}/**/!(*.ts|*.tsx|*.mts|*.cts|*.js|*.jsx|*.cjs|*.mjs|*.css|*.html|*.md)`
2424
}
2525

2626
/**

lib/helpers/has-ts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const hasTS = [true, 'strip', 'transform'].includes(process?.features?.typescript)
1+
export const nodeHasTS = [true, 'strip', 'transform'].includes(process?.features?.typescript)

lib/identify-pages.js

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import assert from 'node:assert'
33
import { resolve, relative, join, basename } from 'path'
44
import { pageBuilders } from './build-pages/index.js'
55
import { TopBunDuplicatePageError } from './helpers/top-bun-error.js'
6-
import { hasTS } from './helpers/has-ts.js'
6+
import { nodeHasTS } from './helpers/has-ts.js'
77

88
/**
99
* @import { FWStats } from 'async-folder-walker'
@@ -22,57 +22,58 @@ const getFirstMatch = (/** @type {{ [basename: string]: WalkerFile }} */ files,
2222
}
2323
}
2424

25-
const jsPageNames = hasTS
25+
const jsPageNames = nodeHasTS
2626
? ['page.ts', 'page.mts', 'page.cts', 'page.js', 'page.mjs', 'page.cjs']
2727
: ['page.js', 'page.mjs', 'page.cjs']
2828

29-
const jsPageDraftNames = hasTS
29+
const jsPageDraftNames = nodeHasTS
3030
? ['page.draft.ts', 'page.draft.mts', 'page.draft.cts', 'page.draft.js', 'page.draft.mjs', 'page.draft.cjs']
3131
: ['page.draft.js', 'page.draft.mjs', 'page.draft.cjs']
3232

33-
const pageClientNames = hasTS
34-
? ['client.tsx', 'client.ts', 'client.mts', 'client.cts', 'client.jsx', 'client.js', 'client.mjs', 'client.cjs']
35-
: ['client.jsx', 'client.js', 'client.mjs', 'client.cjs']
33+
const pageClientNames = [
34+
'client.tsx', 'client.ts', 'client.mts', 'client.cts',
35+
'client.jsx', 'client.js', 'client.mjs', 'client.cjs'
36+
]
3637

37-
const pageVarsNames = hasTS
38+
const pageVarsNames = nodeHasTS
3839
? ['page.vars.ts', 'page.vars.mts', 'page.vars.cts',
3940
'page.vars.js', 'page.vars.mjs', 'page.vars.cjs']
4041
: ['page.vars.js', 'page.vars.mjs', 'page.vars.cjs']
4142

42-
const layoutSuffixs = hasTS
43+
const layoutSuffixs = nodeHasTS
4344
? ['.layout.ts', '.layout.mts', '.layout.cts', '.layout.js', '.layout.mjs', '.layout.cjs']
4445
: ['.layout.js', '.layout.mjs', '.layout.cjs']
4546

46-
const layoutClientSuffixs = hasTS
47-
? [
48-
'.layout.client.ts', '.layout.client.mts', '.layout.client.cts',
49-
'.layout.client.js', '.layout.client.mjs', '.layout.client.cjs'
50-
]
51-
: ['.layout.client.js', '.layout.client.mjs', '.layout.client.cjs']
47+
const layoutClientSuffixs = [
48+
'.layout.client.tsx', '.layout.client.ts',
49+
'.layout.client.mts', '.layout.client.cts',
50+
'.layout.client.jsx', '.layout.client.js',
51+
'.layout.client.mjs', '.layout.client.cjs'
52+
]
5253

53-
const layoutStyleSuffix = '.layout.css' // unchanged
54+
const layoutStyleSuffix = '.layout.css'
5455

55-
const templateSuffixs = hasTS
56+
const templateSuffixs = nodeHasTS
5657
? ['.template.ts', '.template.mts', '.template.cts', '.template.js', '.template.mjs', '.template.cjs']
5758
: ['.template.js', '.template.mjs', '.template.cjs']
5859

59-
const globalStyleNames = ['global.css', 'global.style.css'] // unchanged
60+
const globalStyleNames = ['global.css', 'global.style.css']
6061

61-
const globalClientNames = hasTS
62-
? [
63-
'global.client.ts', 'global.client.mts', 'global.client.cts',
64-
'global.client.js', 'global.client.mjs', 'global.client.cjs'
65-
]
66-
: ['global.client.js', 'global.client.mjs', 'global.client.cjs']
62+
const globalClientNames = [
63+
'global.client.tsx', 'global.client.ts',
64+
'global.client.mts', 'global.client.cts',
65+
'global.client.jsx', 'global.client.js',
66+
'global.client.mjs', 'global.client.cjs'
67+
]
6768

68-
const globalVarsNames = hasTS
69+
const globalVarsNames = nodeHasTS
6970
? [
7071
'global.vars.ts', 'global.vars.mts', 'global.vars.cts',
7172
'global.vars.js', 'global.vars.mjs', 'global.vars.cjs'
7273
]
7374
: ['global.vars.js', 'global.vars.mjs', 'global.vars.cjs']
7475

75-
const esbuildSettingsNames = hasTS
76+
const esbuildSettingsNames = nodeHasTS
7677
? [
7778
'esbuild.settings.ts', 'esbuild.settings.mts', 'esbuild.settings.cts',
7879
'esbuild.settings.js', 'esbuild.settings.mjs', 'esbuild.settings.cjs'

0 commit comments

Comments
 (0)