vite-plugin-solid 2.11.0-beta.0 → 2.11.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/dist/cjs/index.cjs +34 -31
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.mjs +34 -31
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/index.d.ts +8 -14
- package/package.json +10 -11
package/dist/cjs/index.cjs
CHANGED
|
@@ -29,10 +29,11 @@ function _interopNamespaceDefault(e) {
|
|
|
29
29
|
|
|
30
30
|
var babel__namespace = /*#__PURE__*/_interopNamespaceDefault(babel);
|
|
31
31
|
|
|
32
|
-
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
|
|
32
|
+
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
|
|
33
33
|
const runtimePublicPath = '/@solid-refresh';
|
|
34
34
|
const runtimeFilePath = require$1.resolve('solid-refresh/dist/solid-refresh.mjs');
|
|
35
35
|
const runtimeCode = fs.readFileSync(runtimeFilePath, 'utf-8');
|
|
36
|
+
const isVite6 = vite.version.startsWith('6.');
|
|
36
37
|
|
|
37
38
|
/** Possible options for the extensions property */
|
|
38
39
|
|
|
@@ -74,7 +75,7 @@ function solidPlugin(options = {}) {
|
|
|
74
75
|
}) {
|
|
75
76
|
// We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode
|
|
76
77
|
replaceDev = options.dev === true || options.dev !== false && command === 'serve';
|
|
77
|
-
projectRoot = userConfig.root
|
|
78
|
+
projectRoot = userConfig.root;
|
|
78
79
|
if (!userConfig.resolve) userConfig.resolve = {};
|
|
79
80
|
userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);
|
|
80
81
|
const solidPkgsConfig = await vitefu.crawlFrameworkPkgs({
|
|
@@ -97,8 +98,8 @@ function solidPlugin(options = {}) {
|
|
|
97
98
|
}
|
|
98
99
|
test.server = test.server || {};
|
|
99
100
|
test.server.deps = test.server.deps || {};
|
|
100
|
-
if (!test.server.deps.
|
|
101
|
-
test.server.deps.
|
|
101
|
+
if (!test.server.deps.external?.find(item => /solid-js/.test(item.toString()))) {
|
|
102
|
+
test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];
|
|
102
103
|
}
|
|
103
104
|
const jestDomImport = getJestDomExport(userSetupFiles);
|
|
104
105
|
if (jestDomImport) {
|
|
@@ -112,7 +113,7 @@ function solidPlugin(options = {}) {
|
|
|
112
113
|
*/
|
|
113
114
|
// esbuild: { include: /\.ts$/ },
|
|
114
115
|
resolve: {
|
|
115
|
-
conditions: ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
|
|
116
|
+
conditions: isVite6 ? undefined : ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
|
|
116
117
|
dedupe: nestedDeps,
|
|
117
118
|
alias: [{
|
|
118
119
|
find: /^solid-refresh$/,
|
|
@@ -129,8 +130,26 @@ function solidPlugin(options = {}) {
|
|
|
129
130
|
} : {})
|
|
130
131
|
};
|
|
131
132
|
},
|
|
133
|
+
// @ts-ignore This hook only works in Vite 6
|
|
134
|
+
async configEnvironment(name, config, opts) {
|
|
135
|
+
config.resolve ??= {};
|
|
136
|
+
// Emulate Vite default fallback for `resolve.conditions` if not set
|
|
137
|
+
if (config.resolve.conditions == null) {
|
|
138
|
+
// @ts-ignore These exports only exist in Vite 6
|
|
139
|
+
const {
|
|
140
|
+
defaultClientConditions,
|
|
141
|
+
defaultServerConditions
|
|
142
|
+
} = await import('vite');
|
|
143
|
+
if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {
|
|
144
|
+
config.resolve.conditions = [...defaultClientConditions];
|
|
145
|
+
} else {
|
|
146
|
+
config.resolve.conditions = [...defaultServerConditions];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
config.resolve.conditions.push('solid');
|
|
150
|
+
},
|
|
132
151
|
configResolved(config) {
|
|
133
|
-
needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false
|
|
152
|
+
needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;
|
|
134
153
|
},
|
|
135
154
|
resolveId(id) {
|
|
136
155
|
if (id === runtimePublicPath) return id;
|
|
@@ -179,17 +198,7 @@ function solidPlugin(options = {}) {
|
|
|
179
198
|
if (extensionName !== currentFileExtension) return false;
|
|
180
199
|
return extensionOptions.typescript;
|
|
181
200
|
});
|
|
182
|
-
const plugins = ['jsx'
|
|
183
|
-
// import { example } from 'example' with { example: true };
|
|
184
|
-
'importAttributes',
|
|
185
|
-
// () => throw example
|
|
186
|
-
'throwExpressions',
|
|
187
|
-
// You know what this is
|
|
188
|
-
'decorators',
|
|
189
|
-
// const { #example: example } = this;
|
|
190
|
-
'destructuringPrivate',
|
|
191
|
-
// using example = myExample()
|
|
192
|
-
'explicitResourceManagement'];
|
|
201
|
+
const plugins = ['jsx'];
|
|
193
202
|
if (shouldBeProcessedWithTypescript) {
|
|
194
203
|
plugins.push('typescript');
|
|
195
204
|
}
|
|
@@ -202,13 +211,7 @@ function solidPlugin(options = {}) {
|
|
|
202
211
|
...(options.solid || {})
|
|
203
212
|
}]],
|
|
204
213
|
plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {
|
|
205
|
-
|
|
206
|
-
bundler: 'vite',
|
|
207
|
-
fixRender: true,
|
|
208
|
-
// TODO unfortunately, even with SSR enabled for refresh
|
|
209
|
-
// it still doesn't work, so now we have to disable
|
|
210
|
-
// this config
|
|
211
|
-
jsx: false
|
|
214
|
+
bundler: 'vite'
|
|
212
215
|
}]] : [],
|
|
213
216
|
ast: false,
|
|
214
217
|
sourceMaps: true,
|
|
@@ -223,20 +226,20 @@ function solidPlugin(options = {}) {
|
|
|
223
226
|
let babelUserOptions = {};
|
|
224
227
|
if (options.babel) {
|
|
225
228
|
if (typeof options.babel === 'function') {
|
|
226
|
-
const babelOptions = options.babel(source, id,
|
|
229
|
+
const babelOptions = options.babel(source, id, isSsr);
|
|
227
230
|
babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;
|
|
228
231
|
} else {
|
|
229
232
|
babelUserOptions = options.babel;
|
|
230
233
|
}
|
|
231
234
|
}
|
|
232
235
|
const babelOptions = mergeAnything.mergeAndConcat(babelUserOptions, opts);
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
236
|
+
const {
|
|
237
|
+
code,
|
|
238
|
+
map
|
|
239
|
+
} = await babel__namespace.transformAsync(source, babelOptions);
|
|
237
240
|
return {
|
|
238
|
-
code
|
|
239
|
-
map
|
|
241
|
+
code,
|
|
242
|
+
map
|
|
240
243
|
};
|
|
241
244
|
}
|
|
242
245
|
};
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\n// @ts-ignore\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\n// TODO use proper path\nimport type { Options as RefreshOptions } from 'solid-refresh/babel';\nimport type { Alias, AliasOptions, FilterPattern, Plugin } from 'vite';\nimport { createFilter } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev: boolean;\n /**\n * This will force SSR code in the produced files. This is experiemental\n * and mostly not working yet.\n *\n * @default false\n */\n ssr: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @deprecated use `refresh` instead\n * @default true\n */\n hot: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n\n refresh: Omit<RefreshOptions & { disabled: boolean }, 'bundler' | 'fixRender' | 'jsx'>;\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root || projectRoot;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.inline?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && (options.hot !== false && !options.refresh?.disabled);\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = [\n 'jsx',\n // import { example } from 'example' with { example: true };\n 'importAttributes',\n // () => throw example\n 'throwExpressions',\n // You know what this is\n 'decorators',\n // const { #example: example } = this;\n 'destructuringPrivate',\n // using example = myExample()\n 'explicitResourceManagement',\n ];\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {\n ...(options.refresh || {}),\n bundler: 'vite',\n fixRender: true,\n // TODO unfortunately, even with SSR enabled for refresh\n // it still doesn't work, so now we have to disable\n // this config\n jsx: false,\n }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, !!isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const result = await babel.transformAsync(source, babelOptions);\n if (!result) {\n return undefined;\n }\n return { code: result.code || '', map: result.map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}"],"names":["require","createRequire","import","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","inline","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configResolved","hot","refresh","disabled","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","opts","sourceFileName","presets","solid","solidRefresh","bundler","fixRender","jsx","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","result","transformAsync","code","Array","isArray","entries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\nimport { createFilter, version } from 'vite';\nimport type { Alias, AliasOptions, Plugin, FilterPattern } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\nconst isVite6 = version.startsWith('6.');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev?: boolean;\n /**\n * This will force SSR code in the produced files.\n *\n * @default false\n */\n ssr?: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @default true\n */\n hot?: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel?:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid?: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags?: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.external?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: isVite6\n ? undefined\n : [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n // @ts-ignore This hook only works in Vite 6\n async configEnvironment(name, config, opts) {\n config.resolve ??= {};\n // Emulate Vite default fallback for `resolve.conditions` if not set\n if (config.resolve.conditions == null) {\n // @ts-ignore These exports only exist in Vite 6\n const { defaultClientConditions, defaultServerConditions } = await import('vite');\n if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {\n config.resolve.conditions = [...defaultClientConditions];\n } else {\n config.resolve.conditions = [...defaultServerConditions];\n }\n }\n config.resolve.conditions.push('solid');\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = ['jsx']\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const { code, map } = await babel.transformAsync(source, babelOptions);\n\n return { code, map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}\n"],"names":["require","createRequire","import","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","isVite6","version","startsWith","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","external","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configEnvironment","opts","defaultClientConditions","defaultServerConditions","consumer","isSsrTargetWebworker","push","configResolved","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","sourceFileName","presets","solid","solidRefresh","bundler","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -4,13 +4,14 @@ import { readFileSync } from 'fs';
|
|
|
4
4
|
import { mergeAndConcat } from 'merge-anything';
|
|
5
5
|
import { createRequire } from 'module';
|
|
6
6
|
import solidRefresh from 'solid-refresh/babel';
|
|
7
|
-
import { createFilter } from 'vite';
|
|
7
|
+
import { version, createFilter } from 'vite';
|
|
8
8
|
import { crawlFrameworkPkgs } from 'vitefu';
|
|
9
9
|
|
|
10
10
|
const require = createRequire(import.meta.url);
|
|
11
11
|
const runtimePublicPath = '/@solid-refresh';
|
|
12
12
|
const runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');
|
|
13
13
|
const runtimeCode = readFileSync(runtimeFilePath, 'utf-8');
|
|
14
|
+
const isVite6 = version.startsWith('6.');
|
|
14
15
|
|
|
15
16
|
/** Possible options for the extensions property */
|
|
16
17
|
|
|
@@ -52,7 +53,7 @@ function solidPlugin(options = {}) {
|
|
|
52
53
|
}) {
|
|
53
54
|
// We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode
|
|
54
55
|
replaceDev = options.dev === true || options.dev !== false && command === 'serve';
|
|
55
|
-
projectRoot = userConfig.root
|
|
56
|
+
projectRoot = userConfig.root;
|
|
56
57
|
if (!userConfig.resolve) userConfig.resolve = {};
|
|
57
58
|
userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);
|
|
58
59
|
const solidPkgsConfig = await crawlFrameworkPkgs({
|
|
@@ -75,8 +76,8 @@ function solidPlugin(options = {}) {
|
|
|
75
76
|
}
|
|
76
77
|
test.server = test.server || {};
|
|
77
78
|
test.server.deps = test.server.deps || {};
|
|
78
|
-
if (!test.server.deps.
|
|
79
|
-
test.server.deps.
|
|
79
|
+
if (!test.server.deps.external?.find(item => /solid-js/.test(item.toString()))) {
|
|
80
|
+
test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];
|
|
80
81
|
}
|
|
81
82
|
const jestDomImport = getJestDomExport(userSetupFiles);
|
|
82
83
|
if (jestDomImport) {
|
|
@@ -90,7 +91,7 @@ function solidPlugin(options = {}) {
|
|
|
90
91
|
*/
|
|
91
92
|
// esbuild: { include: /\.ts$/ },
|
|
92
93
|
resolve: {
|
|
93
|
-
conditions: ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
|
|
94
|
+
conditions: isVite6 ? undefined : ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
|
|
94
95
|
dedupe: nestedDeps,
|
|
95
96
|
alias: [{
|
|
96
97
|
find: /^solid-refresh$/,
|
|
@@ -107,8 +108,26 @@ function solidPlugin(options = {}) {
|
|
|
107
108
|
} : {})
|
|
108
109
|
};
|
|
109
110
|
},
|
|
111
|
+
// @ts-ignore This hook only works in Vite 6
|
|
112
|
+
async configEnvironment(name, config, opts) {
|
|
113
|
+
config.resolve ??= {};
|
|
114
|
+
// Emulate Vite default fallback for `resolve.conditions` if not set
|
|
115
|
+
if (config.resolve.conditions == null) {
|
|
116
|
+
// @ts-ignore These exports only exist in Vite 6
|
|
117
|
+
const {
|
|
118
|
+
defaultClientConditions,
|
|
119
|
+
defaultServerConditions
|
|
120
|
+
} = await import('vite');
|
|
121
|
+
if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {
|
|
122
|
+
config.resolve.conditions = [...defaultClientConditions];
|
|
123
|
+
} else {
|
|
124
|
+
config.resolve.conditions = [...defaultServerConditions];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
config.resolve.conditions.push('solid');
|
|
128
|
+
},
|
|
110
129
|
configResolved(config) {
|
|
111
|
-
needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false
|
|
130
|
+
needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;
|
|
112
131
|
},
|
|
113
132
|
resolveId(id) {
|
|
114
133
|
if (id === runtimePublicPath) return id;
|
|
@@ -157,17 +176,7 @@ function solidPlugin(options = {}) {
|
|
|
157
176
|
if (extensionName !== currentFileExtension) return false;
|
|
158
177
|
return extensionOptions.typescript;
|
|
159
178
|
});
|
|
160
|
-
const plugins = ['jsx'
|
|
161
|
-
// import { example } from 'example' with { example: true };
|
|
162
|
-
'importAttributes',
|
|
163
|
-
// () => throw example
|
|
164
|
-
'throwExpressions',
|
|
165
|
-
// You know what this is
|
|
166
|
-
'decorators',
|
|
167
|
-
// const { #example: example } = this;
|
|
168
|
-
'destructuringPrivate',
|
|
169
|
-
// using example = myExample()
|
|
170
|
-
'explicitResourceManagement'];
|
|
179
|
+
const plugins = ['jsx'];
|
|
171
180
|
if (shouldBeProcessedWithTypescript) {
|
|
172
181
|
plugins.push('typescript');
|
|
173
182
|
}
|
|
@@ -180,13 +189,7 @@ function solidPlugin(options = {}) {
|
|
|
180
189
|
...(options.solid || {})
|
|
181
190
|
}]],
|
|
182
191
|
plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {
|
|
183
|
-
|
|
184
|
-
bundler: 'vite',
|
|
185
|
-
fixRender: true,
|
|
186
|
-
// TODO unfortunately, even with SSR enabled for refresh
|
|
187
|
-
// it still doesn't work, so now we have to disable
|
|
188
|
-
// this config
|
|
189
|
-
jsx: false
|
|
192
|
+
bundler: 'vite'
|
|
190
193
|
}]] : [],
|
|
191
194
|
ast: false,
|
|
192
195
|
sourceMaps: true,
|
|
@@ -201,20 +204,20 @@ function solidPlugin(options = {}) {
|
|
|
201
204
|
let babelUserOptions = {};
|
|
202
205
|
if (options.babel) {
|
|
203
206
|
if (typeof options.babel === 'function') {
|
|
204
|
-
const babelOptions = options.babel(source, id,
|
|
207
|
+
const babelOptions = options.babel(source, id, isSsr);
|
|
205
208
|
babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;
|
|
206
209
|
} else {
|
|
207
210
|
babelUserOptions = options.babel;
|
|
208
211
|
}
|
|
209
212
|
}
|
|
210
213
|
const babelOptions = mergeAndConcat(babelUserOptions, opts);
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
214
|
+
const {
|
|
215
|
+
code,
|
|
216
|
+
map
|
|
217
|
+
} = await babel.transformAsync(source, babelOptions);
|
|
215
218
|
return {
|
|
216
|
-
code
|
|
217
|
-
map
|
|
219
|
+
code,
|
|
220
|
+
map
|
|
218
221
|
};
|
|
219
222
|
}
|
|
220
223
|
};
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\n// @ts-ignore\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\n// TODO use proper path\nimport type { Options as RefreshOptions } from 'solid-refresh/babel';\nimport type { Alias, AliasOptions, FilterPattern, Plugin } from 'vite';\nimport { createFilter } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev: boolean;\n /**\n * This will force SSR code in the produced files. This is experiemental\n * and mostly not working yet.\n *\n * @default false\n */\n ssr: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @deprecated use `refresh` instead\n * @default true\n */\n hot: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n\n refresh: Omit<RefreshOptions & { disabled: boolean }, 'bundler' | 'fixRender' | 'jsx'>;\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root || projectRoot;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.inline?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && (options.hot !== false && !options.refresh?.disabled);\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = [\n 'jsx',\n // import { example } from 'example' with { example: true };\n 'importAttributes',\n // () => throw example\n 'throwExpressions',\n // You know what this is\n 'decorators',\n // const { #example: example } = this;\n 'destructuringPrivate',\n // using example = myExample()\n 'explicitResourceManagement',\n ];\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {\n ...(options.refresh || {}),\n bundler: 'vite',\n fixRender: true,\n // TODO unfortunately, even with SSR enabled for refresh\n // it still doesn't work, so now we have to disable\n // this config\n jsx: false,\n }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, !!isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const result = await babel.transformAsync(source, babelOptions);\n if (!result) {\n return undefined;\n }\n return { code: result.code || '', map: result.map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}"],"names":["require","createRequire","import","meta","url","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","inline","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configResolved","hot","refresh","disabled","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","opts","sourceFileName","presets","solid","solidRefresh","bundler","fixRender","jsx","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","result","transformAsync","code","Array","isArray","entries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\nimport { createFilter, version } from 'vite';\nimport type { Alias, AliasOptions, Plugin, FilterPattern } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\nconst isVite6 = version.startsWith('6.');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev?: boolean;\n /**\n * This will force SSR code in the produced files.\n *\n * @default false\n */\n ssr?: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @default true\n */\n hot?: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel?:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid?: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags?: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.external?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: isVite6\n ? undefined\n : [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n // @ts-ignore This hook only works in Vite 6\n async configEnvironment(name, config, opts) {\n config.resolve ??= {};\n // Emulate Vite default fallback for `resolve.conditions` if not set\n if (config.resolve.conditions == null) {\n // @ts-ignore These exports only exist in Vite 6\n const { defaultClientConditions, defaultServerConditions } = await import('vite');\n if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {\n config.resolve.conditions = [...defaultClientConditions];\n } else {\n config.resolve.conditions = [...defaultServerConditions];\n }\n }\n config.resolve.conditions.push('solid');\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = ['jsx']\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const { code, map } = await babel.transformAsync(source, babelOptions);\n\n return { code, map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}\n"],"names":["require","createRequire","import","meta","url","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","isVite6","version","startsWith","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","external","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configEnvironment","opts","defaultClientConditions","defaultServerConditions","consumer","isSsrTargetWebworker","push","configResolved","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","sourceFileName","presets","solid","solidRefresh","bundler","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as babel from '@babel/core';
|
|
2
|
-
import type {
|
|
3
|
-
import type { FilterPattern, Plugin } from 'vite';
|
|
2
|
+
import type { Plugin, FilterPattern } from 'vite';
|
|
4
3
|
/** Possible options for the extensions property */
|
|
5
4
|
export interface ExtensionOptions {
|
|
6
5
|
typescript?: boolean;
|
|
@@ -24,22 +23,20 @@ export interface Options {
|
|
|
24
23
|
*
|
|
25
24
|
* @default true
|
|
26
25
|
*/
|
|
27
|
-
dev
|
|
26
|
+
dev?: boolean;
|
|
28
27
|
/**
|
|
29
|
-
* This will force SSR code in the produced files.
|
|
30
|
-
* and mostly not working yet.
|
|
28
|
+
* This will force SSR code in the produced files.
|
|
31
29
|
*
|
|
32
30
|
* @default false
|
|
33
31
|
*/
|
|
34
|
-
ssr
|
|
32
|
+
ssr?: boolean;
|
|
35
33
|
/**
|
|
36
34
|
* This will inject HMR runtime in dev mode. Has no effect in prod. If
|
|
37
35
|
* set to `false`, it won't inject the runtime in dev.
|
|
38
36
|
*
|
|
39
|
-
* @deprecated use `refresh` instead
|
|
40
37
|
* @default true
|
|
41
38
|
*/
|
|
42
|
-
hot
|
|
39
|
+
hot?: boolean;
|
|
43
40
|
/**
|
|
44
41
|
* This registers additional extensions that should be processed by
|
|
45
42
|
* vite-plugin-solid.
|
|
@@ -53,21 +50,21 @@ export interface Options {
|
|
|
53
50
|
*
|
|
54
51
|
* @default {}
|
|
55
52
|
*/
|
|
56
|
-
babel
|
|
53
|
+
babel?: babel.TransformOptions | ((source: string, id: string, ssr: boolean) => babel.TransformOptions) | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);
|
|
57
54
|
/**
|
|
58
55
|
* Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).
|
|
59
56
|
* They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).
|
|
60
57
|
*
|
|
61
58
|
* @default {}
|
|
62
59
|
*/
|
|
63
|
-
solid
|
|
60
|
+
solid?: {
|
|
64
61
|
/**
|
|
65
62
|
* Removed unnecessary closing tags from template strings. More info here:
|
|
66
63
|
* https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates
|
|
67
64
|
*
|
|
68
65
|
* @default false
|
|
69
66
|
*/
|
|
70
|
-
omitNestedClosingTags
|
|
67
|
+
omitNestedClosingTags?: boolean;
|
|
71
68
|
/**
|
|
72
69
|
* The name of the runtime module to import the methods from.
|
|
73
70
|
*
|
|
@@ -118,8 +115,5 @@ export interface Options {
|
|
|
118
115
|
*/
|
|
119
116
|
builtIns?: string[];
|
|
120
117
|
};
|
|
121
|
-
refresh: Omit<RefreshOptions & {
|
|
122
|
-
disabled: boolean;
|
|
123
|
-
}, 'bundler' | 'fixRender' | 'jsx'>;
|
|
124
118
|
}
|
|
125
119
|
export default function solidPlugin(options?: Partial<Options>): Plugin;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-solid",
|
|
3
|
-
"version": "2.11.0
|
|
4
|
-
"description": "solid-js integration plugin for vite 3/4/5",
|
|
3
|
+
"version": "2.11.0",
|
|
4
|
+
"description": "solid-js integration plugin for vite 3/4/5/6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"types": "./dist/types/index.d.ts",
|
|
14
14
|
"import": "./dist/esm/index.mjs",
|
|
15
15
|
"node": "./dist/cjs/index.cjs",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
16
|
+
"require": "./dist/cjs/index.cjs",
|
|
17
|
+
"default": "./dist/cjs/index.cjs"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"author": "Alexandre Mouton-Brady <amoutonbrady@gmail.com>",
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"bugs": {
|
|
34
|
-
"url": "https://github.com/
|
|
34
|
+
"url": "https://github.com/solidjs/vite-plugin-solid/issues"
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://github.com/solidjs/vite-plugin-solid#readme",
|
|
37
37
|
"dependencies": {
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"@types/babel__core": "^7.20.4",
|
|
40
40
|
"babel-preset-solid": "^1.8.4",
|
|
41
41
|
"merge-anything": "^5.1.7",
|
|
42
|
-
"solid-refresh": "^0.
|
|
43
|
-
"vitefu": "^0.
|
|
42
|
+
"solid-refresh": "^0.6.3",
|
|
43
|
+
"vitefu": "^1.0.4"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@babel/preset-env": "^7.23.3",
|
|
@@ -54,21 +54,20 @@
|
|
|
54
54
|
"prettier": "^3.1.0",
|
|
55
55
|
"rollup": "^4.5.0",
|
|
56
56
|
"rollup-plugin-cleaner": "^1.0.0",
|
|
57
|
-
"solid-js": "^1.
|
|
57
|
+
"solid-js": "^1.9.3",
|
|
58
58
|
"typescript": "^5.2.2",
|
|
59
|
-
"vite": "^
|
|
59
|
+
"vite": "^6.0.0"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*",
|
|
63
63
|
"solid-js": "^1.7.2",
|
|
64
|
-
"vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
|
|
64
|
+
"vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependenciesMeta": {
|
|
67
67
|
"@testing-library/jest-dom": {
|
|
68
68
|
"optional": true
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
-
"packageManager": "pnpm@7.18.1",
|
|
72
71
|
"scripts": {
|
|
73
72
|
"build": "rollup -c && tsc --emitDeclarationOnly",
|
|
74
73
|
"dev": "rollup -c -w",
|