vite-plugin-solid 2.3.6 → 2.3.8

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.
@@ -121,7 +121,6 @@ function solidPlugin(options = {}) {
121
121
  }]
122
122
  },
123
123
  optimizeDeps: {
124
- extensions: ['jsx', 'tsx'],
125
124
  include: nestedDeps,
126
125
  exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]
127
126
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import { transformAsync, TransformOptions } from '@babel/core';\nimport ts from '@babel/preset-typescript';\nimport solid from 'babel-preset-solid';\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel.js';\nimport type { Alias, AliasOptions, Plugin, UserConfig } from 'vite';\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 * 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 * 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 | TransformOptions\n | ((source: string, id: string, ssr: boolean) => TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<TransformOptions>);\n typescript: {\n /**\n * Forcibly enables jsx parsing. Otherwise angle brackets will be treated as\n * typescript's legacy type assertion var foo = <string>bar;. Also, isTSX:\n * true requires allExtensions: true.\n *\n * @default false\n */\n isTSX?: boolean;\n\n /**\n * Replace the function used when compiling JSX expressions. This is so that\n * we know that the import is not a type import, and should not be removed.\n *\n * @default React\n */\n jsxPragma?: string;\n\n /**\n * Replace the function used when compiling JSX fragment expressions. This\n * is so that we know that the import is not a type import, and should not\n * be removed.\n *\n * @default React.Fragment\n */\n jsxPragmaFrag?: string;\n\n /**\n * Indicates that every file should be parsed as TS or TSX (depending on the\n * isTSX option).\n *\n * @default false\n */\n allExtensions?: boolean;\n\n /**\n * Enables compilation of TypeScript namespaces.\n *\n * @default uses the default set by @babel/plugin-transform-typescript.\n */\n allowNamespaces?: boolean;\n\n /**\n * When enabled, type-only class fields are only removed if they are\n * prefixed with the declare modifier:\n *\n * > NOTE: This will be enabled by default in Babel 8\n *\n * @default false\n *\n * @example\n * ```ts\n * class A {\n * declare foo: string; // Removed\n * bar: string; // Initialized to undefined\n * prop?: string; // Initialized to undefined\n * prop1!: string // Initialized to undefined\n * }\n * ```\n */\n allowDeclareFields?: boolean;\n\n /**\n * When set to true, the transform will only remove type-only imports\n * (introduced in TypeScript 3.8). This should only be used if you are using\n * TypeScript >= 3.8.\n *\n * @default false\n */\n onlyRemoveTypeImports?: boolean;\n\n /**\n * When set to true, Babel will inline enum values rather than using the\n * usual enum output:\n *\n * This option differs from TypeScript's --isolatedModules behavior, which\n * ignores the const modifier and compiles them as normal enums, and aligns\n * Babel's behavior with TypeScript's default behavior.\n *\n * ```ts\n * // Input\n * const enum Animals {\n * Fish\n * }\n * console.log(Animals.Fish);\n *\n * // Default output\n * var Animals;\n *\n * (function (Animals) {\n * Animals[Animals[\"Fish\"] = 0] = \"Fish\";\n * })(Animals || (Animals = {}));\n *\n * console.log(Animals.Fish);\n *\n * // `optimizeConstEnums` output\n * console.log(0);\n * ```\n *\n * However, when exporting a const enum Babel will compile it to a plain\n * object literal so that it doesn't need to rely on cross-file analysis\n * when compiling it:\n *\n * ```ts\n * // Input\n * export const enum Animals {\n * Fish,\n * }\n *\n * // `optimizeConstEnums` output\n * export var Animals = {\n * Fish: 0,\n * };\n * ```\n *\n * @default false\n */\n optimizeConstEnums?: boolean;\n };\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 * 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) {\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' && containsSolidField(fields[key])) return true;\n }\n return false;\n}\n\nfunction getSolidDeps(root) {\n const pkgPath = join(root, 'package.json');\n if (!existsSync(pkgPath)) {\n console.log('No package.json found at project root');\n return [];\n }\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n const deps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})];\n const pkgs = deps.map((dep) => {\n try {\n return require(`${dep}/package.json`);\n } catch (e) {\n try {\n let dir = dirname(require.resolve(dep));\n while (dir) {\n const pkgPath = join(dir, 'package.json');\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n if (pkg && pkg.name === dep) return pkg;\n }\n const parent = dirname(dir);\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n } catch (e) {\n console.log(\"Couldn't find package.json for\", dep, e);\n }\n }\n });\n return deps.reduce((acc, dep, i) => {\n if (pkgs[i] && pkgs[i].exports && containsSolidField(pkgs[i].exports)) acc.push(dep);\n return acc;\n }, []);\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n config(userConfig, { command }): UserConfig {\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 solidDeps = getSolidDeps(projectRoot || process.cwd());\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 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: ['solid', ...(replaceDev ? ['development'] : [])],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n extensions: ['jsx', 'tsx'],\n include: nestedDeps,\n exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]\n },\n ssr: {\n ...userConfig.ssr,\n noExternal: [\n ...(((userConfig.ssr && userConfig.ssr.noExternal) || []) as string[]),\n ...solidDeps,\n ],\n },\n } as UserConfig;\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 || []), '.tsx', '.jsx'];\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 (!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 const opts: TransformOptions = {\n babelrc: false,\n configFile: false,\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n sourceMaps: true,\n // Vite handles sourcemap flattening\n inputSourceMap: false as any,\n };\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = 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\n if (shouldBeProcessedWithTypescript) {\n opts.presets.push([ts, options.typescript || {}]);\n }\n\n // Default value for babel user options\n let babelUserOptions: 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 TransformOptions;\n\n const { code, map } = await 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","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getSolidDeps","root","pkgPath","join","existsSync","console","log","pkg","JSON","parse","deps","dependencies","devDependencies","pkgs","map","dep","e","dir","dirname","name","parent","reduce","acc","exports","push","solidPlugin","options","needHmr","replaceDev","projectRoot","process","cwd","enforce","config","userConfig","command","dev","alias","normalizeAliases","solidDeps","nestedDeps","esbuild","include","conditions","dedupe","find","replacement","optimizeDeps","extensions","exclude","ssr","noExternal","configResolved","mode","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","allExtensions","extension","includes","inNodeModules","test","solidOptions","generate","hydratable","opts","babelrc","configFile","sourceFileName","presets","solid","plugins","solidRefresh","bundler","sourceMaps","inputSourceMap","shouldBeProcessedWithTypescript","some","extensionName","extensionOptions","typescript","ts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import { transformAsync, TransformOptions } from '@babel/core';\nimport ts from '@babel/preset-typescript';\nimport solid from 'babel-preset-solid';\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel.js';\nimport type { Alias, AliasOptions, Plugin, UserConfig } from 'vite';\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 * 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 * 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 | TransformOptions\n | ((source: string, id: string, ssr: boolean) => TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<TransformOptions>);\n typescript: {\n /**\n * Forcibly enables jsx parsing. Otherwise angle brackets will be treated as\n * typescript's legacy type assertion var foo = <string>bar;. Also, isTSX:\n * true requires allExtensions: true.\n *\n * @default false\n */\n isTSX?: boolean;\n\n /**\n * Replace the function used when compiling JSX expressions. This is so that\n * we know that the import is not a type import, and should not be removed.\n *\n * @default React\n */\n jsxPragma?: string;\n\n /**\n * Replace the function used when compiling JSX fragment expressions. This\n * is so that we know that the import is not a type import, and should not\n * be removed.\n *\n * @default React.Fragment\n */\n jsxPragmaFrag?: string;\n\n /**\n * Indicates that every file should be parsed as TS or TSX (depending on the\n * isTSX option).\n *\n * @default false\n */\n allExtensions?: boolean;\n\n /**\n * Enables compilation of TypeScript namespaces.\n *\n * @default uses the default set by @babel/plugin-transform-typescript.\n */\n allowNamespaces?: boolean;\n\n /**\n * When enabled, type-only class fields are only removed if they are\n * prefixed with the declare modifier:\n *\n * > NOTE: This will be enabled by default in Babel 8\n *\n * @default false\n *\n * @example\n * ```ts\n * class A {\n * declare foo: string; // Removed\n * bar: string; // Initialized to undefined\n * prop?: string; // Initialized to undefined\n * prop1!: string // Initialized to undefined\n * }\n * ```\n */\n allowDeclareFields?: boolean;\n\n /**\n * When set to true, the transform will only remove type-only imports\n * (introduced in TypeScript 3.8). This should only be used if you are using\n * TypeScript >= 3.8.\n *\n * @default false\n */\n onlyRemoveTypeImports?: boolean;\n\n /**\n * When set to true, Babel will inline enum values rather than using the\n * usual enum output:\n *\n * This option differs from TypeScript's --isolatedModules behavior, which\n * ignores the const modifier and compiles them as normal enums, and aligns\n * Babel's behavior with TypeScript's default behavior.\n *\n * ```ts\n * // Input\n * const enum Animals {\n * Fish\n * }\n * console.log(Animals.Fish);\n *\n * // Default output\n * var Animals;\n *\n * (function (Animals) {\n * Animals[Animals[\"Fish\"] = 0] = \"Fish\";\n * })(Animals || (Animals = {}));\n *\n * console.log(Animals.Fish);\n *\n * // `optimizeConstEnums` output\n * console.log(0);\n * ```\n *\n * However, when exporting a const enum Babel will compile it to a plain\n * object literal so that it doesn't need to rely on cross-file analysis\n * when compiling it:\n *\n * ```ts\n * // Input\n * export const enum Animals {\n * Fish,\n * }\n *\n * // `optimizeConstEnums` output\n * export var Animals = {\n * Fish: 0,\n * };\n * ```\n *\n * @default false\n */\n optimizeConstEnums?: boolean;\n };\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 * 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) {\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' && containsSolidField(fields[key])) return true;\n }\n return false;\n}\n\nfunction getSolidDeps(root) {\n const pkgPath = join(root, 'package.json');\n if (!existsSync(pkgPath)) {\n console.log('No package.json found at project root');\n return [];\n }\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n const deps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})];\n const pkgs = deps.map((dep) => {\n try {\n return require(`${dep}/package.json`);\n } catch (e) {\n try {\n let dir = dirname(require.resolve(dep));\n while (dir) {\n const pkgPath = join(dir, 'package.json');\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n if (pkg && pkg.name === dep) return pkg;\n }\n const parent = dirname(dir);\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n } catch (e) {\n console.log(\"Couldn't find package.json for\", dep, e);\n }\n }\n });\n return deps.reduce((acc, dep, i) => {\n if (pkgs[i] && pkgs[i].exports && containsSolidField(pkgs[i].exports)) acc.push(dep);\n return acc;\n }, []);\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n config(userConfig, { command }): UserConfig {\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 solidDeps = getSolidDeps(projectRoot || process.cwd());\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 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: ['solid', ...(replaceDev ? ['development'] : [])],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: nestedDeps,\n exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]\n },\n ssr: {\n ...userConfig.ssr,\n noExternal: [\n ...(((userConfig.ssr && userConfig.ssr.noExternal) || []) as string[]),\n ...solidDeps,\n ],\n },\n } as UserConfig;\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 || []), '.tsx', '.jsx'];\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 (!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 const opts: TransformOptions = {\n babelrc: false,\n configFile: false,\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n sourceMaps: true,\n // Vite handles sourcemap flattening\n inputSourceMap: false as any,\n };\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = 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\n if (shouldBeProcessedWithTypescript) {\n opts.presets.push([ts, options.typescript || {}]);\n }\n\n // Default value for babel user options\n let babelUserOptions: 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 TransformOptions;\n\n const { code, map } = await 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","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getSolidDeps","root","pkgPath","join","existsSync","console","log","pkg","JSON","parse","deps","dependencies","devDependencies","pkgs","map","dep","e","dir","dirname","name","parent","reduce","acc","exports","push","solidPlugin","options","needHmr","replaceDev","projectRoot","process","cwd","enforce","config","userConfig","command","dev","alias","normalizeAliases","solidDeps","nestedDeps","esbuild","include","conditions","dedupe","find","replacement","optimizeDeps","exclude","ssr","noExternal","configResolved","mode","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","extension","includes","inNodeModules","test","solidOptions","generate","hydratable","opts","babelrc","configFile","sourceFileName","presets","solid","plugins","solidRefresh","bundler","sourceMaps","inputSourceMap","shouldBeProcessedWithTypescript","some","extensionName","extensionOptions","typescript","ts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
@@ -113,7 +113,6 @@ function solidPlugin(options = {}) {
113
113
  }]
114
114
  },
115
115
  optimizeDeps: {
116
- extensions: ['jsx', 'tsx'],
117
116
  include: nestedDeps,
118
117
  exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]
119
118
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import { transformAsync, TransformOptions } from '@babel/core';\nimport ts from '@babel/preset-typescript';\nimport solid from 'babel-preset-solid';\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel.js';\nimport type { Alias, AliasOptions, Plugin, UserConfig } from 'vite';\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 * 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 * 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 | TransformOptions\n | ((source: string, id: string, ssr: boolean) => TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<TransformOptions>);\n typescript: {\n /**\n * Forcibly enables jsx parsing. Otherwise angle brackets will be treated as\n * typescript's legacy type assertion var foo = <string>bar;. Also, isTSX:\n * true requires allExtensions: true.\n *\n * @default false\n */\n isTSX?: boolean;\n\n /**\n * Replace the function used when compiling JSX expressions. This is so that\n * we know that the import is not a type import, and should not be removed.\n *\n * @default React\n */\n jsxPragma?: string;\n\n /**\n * Replace the function used when compiling JSX fragment expressions. This\n * is so that we know that the import is not a type import, and should not\n * be removed.\n *\n * @default React.Fragment\n */\n jsxPragmaFrag?: string;\n\n /**\n * Indicates that every file should be parsed as TS or TSX (depending on the\n * isTSX option).\n *\n * @default false\n */\n allExtensions?: boolean;\n\n /**\n * Enables compilation of TypeScript namespaces.\n *\n * @default uses the default set by @babel/plugin-transform-typescript.\n */\n allowNamespaces?: boolean;\n\n /**\n * When enabled, type-only class fields are only removed if they are\n * prefixed with the declare modifier:\n *\n * > NOTE: This will be enabled by default in Babel 8\n *\n * @default false\n *\n * @example\n * ```ts\n * class A {\n * declare foo: string; // Removed\n * bar: string; // Initialized to undefined\n * prop?: string; // Initialized to undefined\n * prop1!: string // Initialized to undefined\n * }\n * ```\n */\n allowDeclareFields?: boolean;\n\n /**\n * When set to true, the transform will only remove type-only imports\n * (introduced in TypeScript 3.8). This should only be used if you are using\n * TypeScript >= 3.8.\n *\n * @default false\n */\n onlyRemoveTypeImports?: boolean;\n\n /**\n * When set to true, Babel will inline enum values rather than using the\n * usual enum output:\n *\n * This option differs from TypeScript's --isolatedModules behavior, which\n * ignores the const modifier and compiles them as normal enums, and aligns\n * Babel's behavior with TypeScript's default behavior.\n *\n * ```ts\n * // Input\n * const enum Animals {\n * Fish\n * }\n * console.log(Animals.Fish);\n *\n * // Default output\n * var Animals;\n *\n * (function (Animals) {\n * Animals[Animals[\"Fish\"] = 0] = \"Fish\";\n * })(Animals || (Animals = {}));\n *\n * console.log(Animals.Fish);\n *\n * // `optimizeConstEnums` output\n * console.log(0);\n * ```\n *\n * However, when exporting a const enum Babel will compile it to a plain\n * object literal so that it doesn't need to rely on cross-file analysis\n * when compiling it:\n *\n * ```ts\n * // Input\n * export const enum Animals {\n * Fish,\n * }\n *\n * // `optimizeConstEnums` output\n * export var Animals = {\n * Fish: 0,\n * };\n * ```\n *\n * @default false\n */\n optimizeConstEnums?: boolean;\n };\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 * 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) {\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' && containsSolidField(fields[key])) return true;\n }\n return false;\n}\n\nfunction getSolidDeps(root) {\n const pkgPath = join(root, 'package.json');\n if (!existsSync(pkgPath)) {\n console.log('No package.json found at project root');\n return [];\n }\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n const deps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})];\n const pkgs = deps.map((dep) => {\n try {\n return require(`${dep}/package.json`);\n } catch (e) {\n try {\n let dir = dirname(require.resolve(dep));\n while (dir) {\n const pkgPath = join(dir, 'package.json');\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n if (pkg && pkg.name === dep) return pkg;\n }\n const parent = dirname(dir);\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n } catch (e) {\n console.log(\"Couldn't find package.json for\", dep, e);\n }\n }\n });\n return deps.reduce((acc, dep, i) => {\n if (pkgs[i] && pkgs[i].exports && containsSolidField(pkgs[i].exports)) acc.push(dep);\n return acc;\n }, []);\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n config(userConfig, { command }): UserConfig {\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 solidDeps = getSolidDeps(projectRoot || process.cwd());\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 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: ['solid', ...(replaceDev ? ['development'] : [])],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n extensions: ['jsx', 'tsx'],\n include: nestedDeps,\n exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]\n },\n ssr: {\n ...userConfig.ssr,\n noExternal: [\n ...(((userConfig.ssr && userConfig.ssr.noExternal) || []) as string[]),\n ...solidDeps,\n ],\n },\n } as UserConfig;\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 || []), '.tsx', '.jsx'];\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 (!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 const opts: TransformOptions = {\n babelrc: false,\n configFile: false,\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n sourceMaps: true,\n // Vite handles sourcemap flattening\n inputSourceMap: false as any,\n };\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = 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\n if (shouldBeProcessedWithTypescript) {\n opts.presets.push([ts, options.typescript || {}]);\n }\n\n // Default value for babel user options\n let babelUserOptions: 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 TransformOptions;\n\n const { code, map } = await 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","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getSolidDeps","root","pkgPath","join","existsSync","console","log","pkg","JSON","parse","deps","dependencies","devDependencies","pkgs","map","dep","e","dir","dirname","name","parent","reduce","acc","exports","push","solidPlugin","options","needHmr","replaceDev","projectRoot","process","cwd","enforce","config","userConfig","command","dev","alias","normalizeAliases","solidDeps","nestedDeps","esbuild","include","conditions","dedupe","find","replacement","optimizeDeps","extensions","exclude","ssr","noExternal","configResolved","mode","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","allExtensions","extension","includes","inNodeModules","test","solidOptions","generate","hydratable","opts","babelrc","configFile","sourceFileName","presets","solid","plugins","solidRefresh","bundler","sourceMaps","inputSourceMap","shouldBeProcessedWithTypescript","some","extensionName","extensionOptions","typescript","ts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import { transformAsync, TransformOptions } from '@babel/core';\nimport ts from '@babel/preset-typescript';\nimport solid from 'babel-preset-solid';\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel.js';\nimport type { Alias, AliasOptions, Plugin, UserConfig } from 'vite';\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 * 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 * 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 | TransformOptions\n | ((source: string, id: string, ssr: boolean) => TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<TransformOptions>);\n typescript: {\n /**\n * Forcibly enables jsx parsing. Otherwise angle brackets will be treated as\n * typescript's legacy type assertion var foo = <string>bar;. Also, isTSX:\n * true requires allExtensions: true.\n *\n * @default false\n */\n isTSX?: boolean;\n\n /**\n * Replace the function used when compiling JSX expressions. This is so that\n * we know that the import is not a type import, and should not be removed.\n *\n * @default React\n */\n jsxPragma?: string;\n\n /**\n * Replace the function used when compiling JSX fragment expressions. This\n * is so that we know that the import is not a type import, and should not\n * be removed.\n *\n * @default React.Fragment\n */\n jsxPragmaFrag?: string;\n\n /**\n * Indicates that every file should be parsed as TS or TSX (depending on the\n * isTSX option).\n *\n * @default false\n */\n allExtensions?: boolean;\n\n /**\n * Enables compilation of TypeScript namespaces.\n *\n * @default uses the default set by @babel/plugin-transform-typescript.\n */\n allowNamespaces?: boolean;\n\n /**\n * When enabled, type-only class fields are only removed if they are\n * prefixed with the declare modifier:\n *\n * > NOTE: This will be enabled by default in Babel 8\n *\n * @default false\n *\n * @example\n * ```ts\n * class A {\n * declare foo: string; // Removed\n * bar: string; // Initialized to undefined\n * prop?: string; // Initialized to undefined\n * prop1!: string // Initialized to undefined\n * }\n * ```\n */\n allowDeclareFields?: boolean;\n\n /**\n * When set to true, the transform will only remove type-only imports\n * (introduced in TypeScript 3.8). This should only be used if you are using\n * TypeScript >= 3.8.\n *\n * @default false\n */\n onlyRemoveTypeImports?: boolean;\n\n /**\n * When set to true, Babel will inline enum values rather than using the\n * usual enum output:\n *\n * This option differs from TypeScript's --isolatedModules behavior, which\n * ignores the const modifier and compiles them as normal enums, and aligns\n * Babel's behavior with TypeScript's default behavior.\n *\n * ```ts\n * // Input\n * const enum Animals {\n * Fish\n * }\n * console.log(Animals.Fish);\n *\n * // Default output\n * var Animals;\n *\n * (function (Animals) {\n * Animals[Animals[\"Fish\"] = 0] = \"Fish\";\n * })(Animals || (Animals = {}));\n *\n * console.log(Animals.Fish);\n *\n * // `optimizeConstEnums` output\n * console.log(0);\n * ```\n *\n * However, when exporting a const enum Babel will compile it to a plain\n * object literal so that it doesn't need to rely on cross-file analysis\n * when compiling it:\n *\n * ```ts\n * // Input\n * export const enum Animals {\n * Fish,\n * }\n *\n * // `optimizeConstEnums` output\n * export var Animals = {\n * Fish: 0,\n * };\n * ```\n *\n * @default false\n */\n optimizeConstEnums?: boolean;\n };\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 * 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) {\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' && containsSolidField(fields[key])) return true;\n }\n return false;\n}\n\nfunction getSolidDeps(root) {\n const pkgPath = join(root, 'package.json');\n if (!existsSync(pkgPath)) {\n console.log('No package.json found at project root');\n return [];\n }\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n const deps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})];\n const pkgs = deps.map((dep) => {\n try {\n return require(`${dep}/package.json`);\n } catch (e) {\n try {\n let dir = dirname(require.resolve(dep));\n while (dir) {\n const pkgPath = join(dir, 'package.json');\n if (existsSync(pkgPath)) {\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n if (pkg && pkg.name === dep) return pkg;\n }\n const parent = dirname(dir);\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n } catch (e) {\n console.log(\"Couldn't find package.json for\", dep, e);\n }\n }\n });\n return deps.reduce((acc, dep, i) => {\n if (pkgs[i] && pkgs[i].exports && containsSolidField(pkgs[i].exports)) acc.push(dep);\n return acc;\n }, []);\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n config(userConfig, { command }): UserConfig {\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 solidDeps = getSolidDeps(projectRoot || process.cwd());\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 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: ['solid', ...(replaceDev ? ['development'] : [])],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: nestedDeps,\n exclude: [...(userConfig.optimizeDeps?.exclude || []), ...solidDeps]\n },\n ssr: {\n ...userConfig.ssr,\n noExternal: [\n ...(((userConfig.ssr && userConfig.ssr.noExternal) || []) as string[]),\n ...solidDeps,\n ],\n },\n } as UserConfig;\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 || []), '.tsx', '.jsx'];\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 (!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 const opts: TransformOptions = {\n babelrc: false,\n configFile: false,\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n sourceMaps: true,\n // Vite handles sourcemap flattening\n inputSourceMap: false as any,\n };\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = 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\n if (shouldBeProcessedWithTypescript) {\n opts.presets.push([ts, options.typescript || {}]);\n }\n\n // Default value for babel user options\n let babelUserOptions: 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 TransformOptions;\n\n const { code, map } = await 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","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getSolidDeps","root","pkgPath","join","existsSync","console","log","pkg","JSON","parse","deps","dependencies","devDependencies","pkgs","map","dep","e","dir","dirname","name","parent","reduce","acc","exports","push","solidPlugin","options","needHmr","replaceDev","projectRoot","process","cwd","enforce","config","userConfig","command","dev","alias","normalizeAliases","solidDeps","nestedDeps","esbuild","include","conditions","dedupe","find","replacement","optimizeDeps","exclude","ssr","noExternal","configResolved","mode","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","extension","includes","inNodeModules","test","solidOptions","generate","hydratable","opts","babelrc","configFile","sourceFileName","presets","solid","plugins","solidRefresh","bundler","sourceMaps","inputSourceMap","shouldBeProcessedWithTypescript","some","extensionName","extensionOptions","typescript","ts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-solid",
3
- "version": "2.3.6",
3
+ "version": "2.3.8",
4
4
  "description": "solid-js integration plugin for vite 3",
5
5
  "type": "module",
6
6
  "files": [