Skip to content

Commit 720832a

Browse files
committed
✨ Adding hacky SSR
1 parent 9a06a54 commit 720832a

File tree

3 files changed

+24
-30
lines changed

3 files changed

+24
-30
lines changed

playground/pnpm-lock.yaml

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-lock.yaml

+4-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.ts

+14-10
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,7 @@ import { transformAsync, TransformOptions } from '@babel/core';
44

55
interface Options {
66
dev: boolean;
7-
moduleName: string;
8-
builtIns: string[];
9-
delegateEvents: boolean;
10-
contextToCustomElements: boolean;
11-
wrapConditionals: boolean;
12-
wrapSpreads: boolean;
13-
hydratable: boolean;
14-
async: boolean;
15-
generate: 'dom' | 'ssr';
7+
ssr: boolean;
168
}
179

1810
export default function solidPlugin(options: Partial<Options> = {}): Plugin {
@@ -52,9 +44,21 @@ export default function solidPlugin(options: Partial<Options> = {}): Plugin {
5244
async transform(source, id) {
5345
if (!/\.[jt]sx/.test(id)) return null;
5446

47+
let solidOptions;
48+
49+
if (options.ssr) {
50+
if (globalThis._SOLID_SSR) {
51+
solidOptions = { generate: 'dom', hydratable: true };
52+
} else {
53+
solidOptions = { generate: 'ssr', hydratable: true };
54+
}
55+
} else {
56+
solidOptions = { generate: 'dom', hydratable: false };
57+
}
58+
5559
const opts: TransformOptions = {
5660
filename: id,
57-
presets: [[solid, options]],
61+
presets: [[solid, solidOptions]],
5862
};
5963

6064
if (id.includes('tsx')) {

0 commit comments

Comments
 (0)