@tanstack/solid-start 1.167.37 → 1.167.38

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.
@@ -0,0 +1,3 @@
1
+ import { TanStackStartRsbuildInputConfig } from '@tanstack/start-plugin-core';
2
+ import { RsbuildPlugin } from '@rsbuild/core';
3
+ export declare function tanstackStart(options?: TanStackStartRsbuildInputConfig): RsbuildPlugin;
@@ -0,0 +1,44 @@
1
+ import { solidStartDefaultEntryPaths } from "./shared.js";
2
+ import { START_ENVIRONMENT_NAMES, tanStackStartRsbuild } from "@tanstack/start-plugin-core";
3
+ //#region src/plugin/rsbuild.ts
4
+ function tanstackStart(options) {
5
+ const basePlugin = tanStackStartRsbuild({
6
+ framework: "solid",
7
+ defaultEntryPaths: solidStartDefaultEntryPaths,
8
+ providerEnvironmentName: START_ENVIRONMENT_NAMES.server,
9
+ ssrIsProvider: true,
10
+ rsbuild: { environments: { all: { resolve: { conditionNames: ["solid", "..."] } } } }
11
+ }, options);
12
+ return {
13
+ name: "tanstack-solid-start-rsbuild",
14
+ setup(api) {
15
+ basePlugin.setup(api);
16
+ api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {
17
+ for (const ruleId of [
18
+ CHAIN_ID.RULE.JS,
19
+ CHAIN_ID.RULE.JS_DATA_URI,
20
+ "babel-js"
21
+ ]) {
22
+ if (!chain.module.rules.has(ruleId)) continue;
23
+ const rule = chain.module.rule(ruleId);
24
+ if (!rule.uses.has(CHAIN_ID.USE.BABEL)) continue;
25
+ rule.use(CHAIN_ID.USE.BABEL).tap((babelOptions) => {
26
+ babelOptions.presets = (babelOptions.presets ?? []).map((preset) => {
27
+ if (Array.isArray(preset) && typeof preset[0] === "string" && preset[0].includes("babel-preset-solid")) return [preset[0], {
28
+ ...preset[1] ?? {},
29
+ hydratable: true,
30
+ generate: target === "node" ? "ssr" : "dom"
31
+ }];
32
+ return preset;
33
+ });
34
+ return babelOptions;
35
+ });
36
+ }
37
+ });
38
+ }
39
+ };
40
+ }
41
+ //#endregion
42
+ export { tanstackStart };
43
+
44
+ //# sourceMappingURL=rsbuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsbuild.js","names":[],"sources":["../../../src/plugin/rsbuild.ts"],"sourcesContent":["import {\n START_ENVIRONMENT_NAMES,\n tanStackStartRsbuild,\n} from '@tanstack/start-plugin-core'\nimport { solidStartDefaultEntryPaths } from './shared'\nimport type { TanStackStartRsbuildPluginCoreOptions } from '@tanstack/start-plugin-core/rsbuild/types'\nimport type { TanStackStartRsbuildInputConfig } from '@tanstack/start-plugin-core'\nimport type { RsbuildPlugin } from '@rsbuild/core'\n\nexport function tanstackStart(\n options?: TanStackStartRsbuildInputConfig,\n): RsbuildPlugin {\n const corePluginOpts: TanStackStartRsbuildPluginCoreOptions = {\n framework: 'solid',\n defaultEntryPaths: solidStartDefaultEntryPaths,\n providerEnvironmentName: START_ENVIRONMENT_NAMES.server,\n ssrIsProvider: true,\n rsbuild: {\n environments: {\n all: {\n resolve: {\n conditionNames: ['solid', '...'],\n },\n },\n },\n },\n }\n\n const basePlugin = tanStackStartRsbuild(corePluginOpts, options)\n\n return {\n name: 'tanstack-solid-start-rsbuild',\n setup(api) {\n basePlugin.setup(api)\n\n api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {\n for (const ruleId of [\n CHAIN_ID.RULE.JS,\n CHAIN_ID.RULE.JS_DATA_URI,\n 'babel-js',\n ]) {\n if (!chain.module.rules.has(ruleId)) {\n continue\n }\n\n const rule = chain.module.rule(ruleId)\n if (!rule.uses.has(CHAIN_ID.USE.BABEL)) {\n continue\n }\n\n rule.use(CHAIN_ID.USE.BABEL).tap((babelOptions) => {\n babelOptions.presets = (babelOptions.presets ?? []).map(\n (preset: unknown) => {\n if (\n Array.isArray(preset) &&\n typeof preset[0] === 'string' &&\n preset[0].includes('babel-preset-solid')\n ) {\n return [\n preset[0],\n {\n ...(preset[1] ?? {}),\n hydratable: true,\n generate: target === 'node' ? 'ssr' : 'dom',\n },\n ]\n }\n\n return preset\n },\n )\n\n return babelOptions\n })\n }\n })\n },\n }\n}\n"],"mappings":";;;AASA,SAAgB,cACd,SACe;CAiBf,MAAM,aAAa,qBAhB2C;EAC5D,WAAW;EACX,mBAAmB;EACnB,yBAAyB,wBAAwB;EACjD,eAAe;EACf,SAAS,EACP,cAAc,EACZ,KAAK,EACH,SAAS,EACP,gBAAgB,CAAC,SAAS,MAAM,EACjC,EACF,EACF,EACF;EACF,EAEuD,QAAQ;AAEhE,QAAO;EACL,MAAM;EACN,MAAM,KAAK;AACT,cAAW,MAAM,IAAI;AAErB,OAAI,mBAAmB,OAAO,OAAO,EAAE,UAAU,aAAa;AAC5D,SAAK,MAAM,UAAU;KACnB,SAAS,KAAK;KACd,SAAS,KAAK;KACd;KACD,EAAE;AACD,SAAI,CAAC,MAAM,OAAO,MAAM,IAAI,OAAO,CACjC;KAGF,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO;AACtC,SAAI,CAAC,KAAK,KAAK,IAAI,SAAS,IAAI,MAAM,CACpC;AAGF,UAAK,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,iBAAiB;AACjD,mBAAa,WAAW,aAAa,WAAW,EAAE,EAAE,KACjD,WAAoB;AACnB,WACE,MAAM,QAAQ,OAAO,IACrB,OAAO,OAAO,OAAO,YACrB,OAAO,GAAG,SAAS,qBAAqB,CAExC,QAAO,CACL,OAAO,IACP;QACE,GAAI,OAAO,MAAM,EAAE;QACnB,YAAY;QACZ,UAAU,WAAW,SAAS,QAAQ;QACvC,CACF;AAGH,cAAO;QAEV;AAED,aAAO;OACP;;KAEJ;;EAEL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-start",
3
- "version": "1.167.37",
3
+ "version": "1.167.38",
4
4
  "description": "Modern and scalable routing for Solid applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -68,6 +68,12 @@
68
68
  "default": "./dist/esm/plugin/vite.js"
69
69
  }
70
70
  },
71
+ "./plugin/rsbuild": {
72
+ "import": {
73
+ "types": "./dist/esm/plugin/rsbuild.d.ts",
74
+ "default": "./dist/esm/plugin/rsbuild.js"
75
+ }
76
+ },
71
77
  "./server-entry": {
72
78
  "import": {
73
79
  "types": "./dist/default-entry/esm/server.d.ts",
@@ -101,23 +107,30 @@
101
107
  },
102
108
  "dependencies": {
103
109
  "pathe": "^2.0.3",
110
+ "@tanstack/solid-router": "1.168.20",
104
111
  "@tanstack/solid-start-client": "1.166.36",
105
112
  "@tanstack/solid-start-server": "1.166.37",
106
- "@tanstack/start-plugin-core": "1.167.35",
107
- "@tanstack/solid-router": "1.168.20",
108
- "@tanstack/start-server-core": "1.167.19",
109
- "@tanstack/start-client-core": "1.167.17"
113
+ "@tanstack/start-client-core": "1.167.17",
114
+ "@tanstack/start-plugin-core": "1.168.0",
115
+ "@tanstack/start-server-core": "1.167.19"
110
116
  },
111
117
  "devDependencies": {
118
+ "@rsbuild/core": "^2.0.0",
112
119
  "@tanstack/intent": "^0.0.14",
113
- "vite": "*",
114
120
  "@types/node": ">=20",
115
- "@tanstack/router-utils": "1.161.6"
121
+ "vite": "*",
122
+ "@tanstack/router-utils": "1.161.7"
116
123
  },
117
124
  "peerDependencies": {
125
+ "@rsbuild/core": "^2.0.0",
118
126
  "solid-js": ">=1.0.0",
119
127
  "vite": ">=7.0.0"
120
128
  },
129
+ "peerDependenciesMeta": {
130
+ "@rsbuild/core": {
131
+ "optional": true
132
+ }
133
+ },
121
134
  "bin": {
122
135
  "intent": "./bin/intent.js"
123
136
  },
@@ -0,0 +1,79 @@
1
+ import {
2
+ START_ENVIRONMENT_NAMES,
3
+ tanStackStartRsbuild,
4
+ } from '@tanstack/start-plugin-core'
5
+ import { solidStartDefaultEntryPaths } from './shared'
6
+ import type { TanStackStartRsbuildPluginCoreOptions } from '@tanstack/start-plugin-core/rsbuild/types'
7
+ import type { TanStackStartRsbuildInputConfig } from '@tanstack/start-plugin-core'
8
+ import type { RsbuildPlugin } from '@rsbuild/core'
9
+
10
+ export function tanstackStart(
11
+ options?: TanStackStartRsbuildInputConfig,
12
+ ): RsbuildPlugin {
13
+ const corePluginOpts: TanStackStartRsbuildPluginCoreOptions = {
14
+ framework: 'solid',
15
+ defaultEntryPaths: solidStartDefaultEntryPaths,
16
+ providerEnvironmentName: START_ENVIRONMENT_NAMES.server,
17
+ ssrIsProvider: true,
18
+ rsbuild: {
19
+ environments: {
20
+ all: {
21
+ resolve: {
22
+ conditionNames: ['solid', '...'],
23
+ },
24
+ },
25
+ },
26
+ },
27
+ }
28
+
29
+ const basePlugin = tanStackStartRsbuild(corePluginOpts, options)
30
+
31
+ return {
32
+ name: 'tanstack-solid-start-rsbuild',
33
+ setup(api) {
34
+ basePlugin.setup(api)
35
+
36
+ api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {
37
+ for (const ruleId of [
38
+ CHAIN_ID.RULE.JS,
39
+ CHAIN_ID.RULE.JS_DATA_URI,
40
+ 'babel-js',
41
+ ]) {
42
+ if (!chain.module.rules.has(ruleId)) {
43
+ continue
44
+ }
45
+
46
+ const rule = chain.module.rule(ruleId)
47
+ if (!rule.uses.has(CHAIN_ID.USE.BABEL)) {
48
+ continue
49
+ }
50
+
51
+ rule.use(CHAIN_ID.USE.BABEL).tap((babelOptions) => {
52
+ babelOptions.presets = (babelOptions.presets ?? []).map(
53
+ (preset: unknown) => {
54
+ if (
55
+ Array.isArray(preset) &&
56
+ typeof preset[0] === 'string' &&
57
+ preset[0].includes('babel-preset-solid')
58
+ ) {
59
+ return [
60
+ preset[0],
61
+ {
62
+ ...(preset[1] ?? {}),
63
+ hydratable: true,
64
+ generate: target === 'node' ? 'ssr' : 'dom',
65
+ },
66
+ ]
67
+ }
68
+
69
+ return preset
70
+ },
71
+ )
72
+
73
+ return babelOptions
74
+ })
75
+ }
76
+ })
77
+ },
78
+ }
79
+ }