1
0
Fork 0
docsearch/packages/docsearch-react/rollup.config.js
Paul Jankowski 5e9bdfed70
feat(composable-api): Introduce new Composable API (#2779)
* feat(composable-api): Step 1, new core package, pull basic state up higer (#2771)

* feat(composable-api): Step 1, new core package, pull basic state up higher

* Package cleanup, update core Readme

* Cleanup to fix weird import behavior

* Fix dependencies

* Try fixing deps again

* Track new package dist in CI

* Make sure to restore core package

* feat(composable-api): Step 2, composable DocSearchButton (#2772)

* feat(composable-api): Step 1, new core package, pull basic state up higher

* Package cleanup, update core Readme

* Cleanup to fix weird import behavior

* Fix dependencies

* Try fixing deps again

* Track new package dist in CI

* Make sure to restore core package

* feat(composable-api): Step 2, move DocSearchButton to be composable

* Implement keyboard shortcuts props

* Set modal package version

* Render new DocSearchButton in react package

* Bump allowed bundle size for now

* feat(composable-api): Step 3, composable DocSearchModal (#2774)

* feat(composable-api): Step 1, new core package, pull basic state up higher

* Package cleanup, update core Readme

* Cleanup to fix weird import behavior

* Fix dependencies

* Try fixing deps again

* Track new package dist in CI

* Make sure to restore core package

* feat(composable-api): Step 2, move DocSearchButton to be composable

* Implement keyboard shortcuts props

* Set modal package version

* Render new DocSearchButton in react package

* Bump allowed bundle size for now

* feat(composable-api): Step 3, make DocSearchModal composable

* Clean up needed dependencies, add more bundle checks

* fix: CI

* add test cases to core package

* add test cases to modal package

* fixes after rebase

* fix: lint

* Memoize modal props to stabalize rendering

* Dont track isModalActive in props

* bump @docsearch/modal bundlesize

* remove icons dir from @docsearch-modal

* update version definition for @docsearch-react and @docsearch-modal

* fix: lint
2025-10-20 16:22:53 -04:00

105 lines
2.6 KiB
JavaScript

// eslint-disable-next-line import/no-extraneous-dependencies
import commonjs from '@rollup/plugin-commonjs';
import replace from '@rollup/plugin-replace';
import { dts } from 'rollup-plugin-dts';
import { plugins } from '../../rollup.base.config';
import { getBundleBanner } from '../../scripts/getBundleBanner';
import pkg from './package.json';
const sourcePlugins = [
commonjs(),
...plugins,
replace({
preventAssignment: true,
'process.env.NODE_ENV': JSON.stringify('production'),
}),
];
function sourceOutput(fileName) {
return [
{
globals: {
react: 'React',
'react-dom': 'ReactDOM',
},
file: `dist/umd/${fileName}`,
format: 'umd',
sourcemap: true,
name: pkg.name,
banner: getBundleBanner(pkg),
},
{ dir: 'dist/esm', format: 'es' },
];
}
const externalPackages = ['react', 'react-dom', '@docsearch/core'];
export default [
{
input: 'src/index.ts',
external: externalPackages,
output: sourceOutput('index.js'),
plugins: sourcePlugins,
},
{
input: 'src/DocSearchButton.tsx',
external: externalPackages,
output: sourceOutput('DocsearchButton.js'),
plugins: sourcePlugins,
},
{
input: 'src/DocSearchModal.tsx',
external: externalPackages,
output: sourceOutput('DocSearchModal.js'),
plugins: sourcePlugins,
},
{
input: 'src/useDocSearchKeyboardEvents.ts',
external: externalPackages,
output: sourceOutput('useDocSearchKeyboardEvents.js'),
plugins: sourcePlugins,
},
{
input: 'src/useTheme.tsx',
external: externalPackages,
output: sourceOutput('useTheme.js'),
plugins: sourcePlugins,
},
{
input: 'src/version.ts',
output: sourceOutput('version.js'),
plugins: sourcePlugins,
},
{
input: 'dist/esm/types/index.d.ts',
output: [{ file: 'dist/esm/index.d.ts', format: 'es' }],
plugins: [dts()],
},
{
input: 'dist/esm/types/DocSearchModal.d.ts',
output: [{ file: 'dist/esm/DocSearchModal.d.ts', format: 'es' }],
plugins: [dts()],
},
{
input: 'dist/esm/types/DocSearchButton.d.ts',
output: [{ file: 'dist/esm/DocSearchButton.d.ts', format: 'es' }],
plugins: [dts()],
},
{
input: 'dist/esm/types/useDocSearchKeyboardEvents.d.ts',
output: [{ file: 'dist/esm/useDocSearchKeyboardEvents.d.ts', format: 'es' }],
plugins: [dts()],
},
{
input: 'dist/esm/types/useTheme.d.ts',
output: [{ file: 'dist/esm/useTheme.d.ts', format: 'es' }],
plugins: [dts()],
},
{
input: 'dist/esm/types/version.d.ts',
output: [{ file: 'dist/esm/version.d.ts', format: 'es' }],
plugins: [dts()],
},
];