diff --git a/packages/overlayscrollbars-solid/package.json b/packages/overlayscrollbars-solid/package.json index a872913..5ee26aa 100644 --- a/packages/overlayscrollbars-solid/package.json +++ b/packages/overlayscrollbars-solid/package.json @@ -41,9 +41,7 @@ "vite-plugin-solid": "^2.3.0" }, "scripts": { - "build": "run-p build-js build-types", - "build-js": "vite build --config vite.config.client.js && vite build --config vite.config.server.js", - "build-types": "tsc --emitDeclarationOnly -p tsconfig.types.json --composite false", + "build": "vite build", "test": "vitest run --coverage" }, "sideEffects": false diff --git a/packages/overlayscrollbars-solid/tsconfig.types.json b/packages/overlayscrollbars-solid/tsconfig.types.json deleted file mode 100644 index aeec63a..0000000 --- a/packages/overlayscrollbars-solid/tsconfig.types.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "rootDir": "./src/", - "outDir": "./dist/types", - "declaration": true - }, - "include": ["src/**/*"] -} \ No newline at end of file diff --git a/packages/overlayscrollbars-solid/vite.config.client.js b/packages/overlayscrollbars-solid/vite.config.client.js deleted file mode 100644 index 47c3222..0000000 --- a/packages/overlayscrollbars-solid/vite.config.client.js +++ /dev/null @@ -1,19 +0,0 @@ -import { mergeConfig } from 'vite'; -import solidPlugin from 'vite-plugin-solid'; -import { base } from './vite.config.base'; - -export default mergeConfig(base, { - build: { - lib: { - formats: ['es'], - }, - }, - plugins: [ - solidPlugin({ - solid: { - generate: 'dom', - hydratable: true, - }, - }), - ], -}); diff --git a/packages/overlayscrollbars-solid/vite.config.base.js b/packages/overlayscrollbars-solid/vite.config.js similarity index 53% rename from packages/overlayscrollbars-solid/vite.config.base.js rename to packages/overlayscrollbars-solid/vite.config.js index 1bfdc17..41e483a 100644 --- a/packages/overlayscrollbars-solid/vite.config.base.js +++ b/packages/overlayscrollbars-solid/vite.config.js @@ -1,15 +1,20 @@ import { resolve } from 'node:path'; +import ts from 'typescript'; import { defineConfig } from 'vite'; import { esbuildResolve } from 'rollup-plugin-esbuild-resolve'; +import solidPlugin from 'vite-plugin-solid'; import rollupPluginPackageJson from '@~local/rollup/plugin/packageJson'; import rollupPluginCopy from '@~local/rollup/plugin/copy'; -export const base = defineConfig({ +const entry = resolve(__dirname, 'src/overlayscrollbars-solid.ts'); + +export default defineConfig({ build: { sourcemap: true, outDir: 'dist', lib: { - entry: resolve(__dirname, 'src/overlayscrollbars-solid.ts'), + entry, + formats: ['es', 'cjs'], name: 'OverlayScrollbarsSolid', fileName: (format) => `overlayscrollbars-solid.${format}.js`, }, @@ -48,6 +53,16 @@ export const base = defineConfig({ main: 'overlayscrollbars-solid.cjs.js', module: 'overlayscrollbars-solid.es.js', types: 'types/overlayscrollbars-solid.d.ts', + exports: { + '.': { + types: './types/overlayscrollbars-solid.d.ts', + solid: './source/overlayscrollbars-solid.js', + import: './overlayscrollbars-solid.es.js', + browser: './overlayscrollbars-solid.es.js', + require: './overlayscrollbars-solid.cjs.js', + node: './overlayscrollbars-solid.cjs.js', + }, + }, peerDependencies, sideEffects: false, }; @@ -56,5 +71,33 @@ export const base = defineConfig({ ], }, }, - plugins: [esbuildResolve()], + plugins: [ + esbuildResolve(), + solidPlugin({ + solid: { + generate: 'dom', + hydratable: true, + }, + }), + { + name: 'ts', + closeBundle() { + const program = ts.createProgram([entry], { + target: ts.ScriptTarget.ESNext, + module: ts.ModuleKind.ESNext, + moduleResolution: ts.ModuleResolutionKind.NodeJs, + jsx: ts.JsxEmit.Preserve, + jsxImportSource: 'solid-js', + allowSyntheticDefaultImports: true, + esModuleInterop: true, + outDir: `dist/source`, + declarationDir: `dist/types`, + declaration: true, + allowJs: true, + }); + + program.emit(); + }, + }, + ], }); diff --git a/packages/overlayscrollbars-solid/vite.config.server.js b/packages/overlayscrollbars-solid/vite.config.server.js deleted file mode 100644 index 1fab59d..0000000 --- a/packages/overlayscrollbars-solid/vite.config.server.js +++ /dev/null @@ -1,20 +0,0 @@ -import { mergeConfig } from 'vite'; -import solidPlugin from 'vite-plugin-solid'; -import { base } from './vite.config.base'; - -export default mergeConfig(base, { - build: { - emptyOutDir: false, - lib: { - formats: ['cjs'], - }, - }, - plugins: [ - solidPlugin({ - solid: { - generate: 'ssr', - hydratable: true, - }, - }), - ], -}); diff --git a/packages/overlayscrollbars-solid/vitest.config.js b/packages/overlayscrollbars-solid/vitest.config.js index 5242291..bb12a57 100644 --- a/packages/overlayscrollbars-solid/vitest.config.js +++ b/packages/overlayscrollbars-solid/vitest.config.js @@ -1,6 +1,6 @@ import { mergeConfig } from 'vite'; import vitestConfig from '@~local/config/vitest'; -import viteConfig from './vite.config.client'; +import viteConfig from './vite.config'; export default mergeConfig( {