feat(docsearch): introduce DocSearch.js v3 (#56)
This commit is contained in:
commit
c7f2645d3f
7 changed files with 120 additions and 0 deletions
27
babel.config.js
Normal file
27
babel.config.js
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
/* eslint-disable import/no-commonjs */
|
||||
|
||||
module.exports = (api) => {
|
||||
const isTest = api.env('test');
|
||||
const modules = isTest ? 'commonjs' : false;
|
||||
const targets = {};
|
||||
|
||||
if (isTest) {
|
||||
targets.node = true;
|
||||
} else {
|
||||
targets.browsers = ['last 2 versions', 'ie >= 11'];
|
||||
}
|
||||
|
||||
return {
|
||||
presets: [
|
||||
'@babel/preset-typescript',
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
modules,
|
||||
targets,
|
||||
},
|
||||
],
|
||||
],
|
||||
plugins: [['@babel/plugin-transform-react-jsx']],
|
||||
};
|
||||
};
|
||||
36
package.json
Normal file
36
package.json
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"name": "@docsearch/js",
|
||||
"version": "1.0.0-alpha.21",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/algolia/autocomplete.js",
|
||||
"repository": "algolia/autocomplete.js",
|
||||
"author": {
|
||||
"name": "Algolia, Inc.",
|
||||
"url": "https://www.algolia.com"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"files": [
|
||||
"dist/"
|
||||
],
|
||||
"source": "src/index.ts",
|
||||
"types": "dist/esm/index.d.ts",
|
||||
"module": "dist/esm/index.js",
|
||||
"main": "dist/umd/index.js",
|
||||
"umd:main": "dist/umd/index.js",
|
||||
"unpkg": "dist/umd/index.js",
|
||||
"jsdelivr": "dist/umd/index.js",
|
||||
"scripts": {
|
||||
"build": "yarn build:clean && yarn build:umd && yarn build:esm",
|
||||
"build:esm": "babel src --root-mode upward --extensions '.ts,.tsx' --out-dir dist/esm",
|
||||
"build:esm:watch": "yarn build:esm --watch",
|
||||
"build:umd": "rollup --config",
|
||||
"build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/esm",
|
||||
"build:types:watch": "chokidar \"**/*.ts\" \"**/*.tsx\" --command \"yarn build:types\" --ignore \"dist\"",
|
||||
"build:clean": "rm -rf ./dist",
|
||||
"watch": "concurrently \"yarn build:esm:watch\" \"yarn build:types:watch\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@docsearch/react": "^1.0.0-alpha.21",
|
||||
"preact": "^10.0.0"
|
||||
}
|
||||
}
|
||||
24
rollup.config.js
Normal file
24
rollup.config.js
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import json from '@rollup/plugin-json';
|
||||
import alias from '@rollup/plugin-alias';
|
||||
|
||||
import { sharedPlugins } from '../autocomplete-core/rollup.config';
|
||||
|
||||
export default {
|
||||
input: 'src/index.ts',
|
||||
output: {
|
||||
file: 'dist/umd/index.js',
|
||||
format: 'umd',
|
||||
sourcemap: true,
|
||||
name: 'docsearch',
|
||||
},
|
||||
plugins: [
|
||||
json(),
|
||||
alias({
|
||||
entries: [
|
||||
{ find: 'react', replacement: 'preact/compat' },
|
||||
{ find: 'react-dom', replacement: 'preact/compat' },
|
||||
],
|
||||
}),
|
||||
...sharedPlugins,
|
||||
],
|
||||
};
|
||||
21
src/docsearch.tsx
Normal file
21
src/docsearch.tsx
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import React, { render } from 'preact/compat';
|
||||
|
||||
import { DocSearch } from '@docsearch/react';
|
||||
|
||||
function getHTMLElement(
|
||||
value: string | HTMLElement,
|
||||
environment: typeof window = window
|
||||
): HTMLElement {
|
||||
if (typeof value === 'string') {
|
||||
return environment.document.querySelector<HTMLElement>(value)!;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
export function docsearch(props) {
|
||||
render(
|
||||
<DocSearch {...props} />,
|
||||
getHTMLElement(props.container, props.environment)
|
||||
);
|
||||
}
|
||||
1
src/index.ts
Normal file
1
src/index.ts
Normal file
|
|
@ -0,0 +1 @@
|
|||
export { docsearch as default } from './docsearch';
|
||||
8
tsconfig.declaration.json
Normal file
8
tsconfig.declaration.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"extends": "./tsconfig",
|
||||
"compilerOptions": {
|
||||
"noEmit": false,
|
||||
"declaration": true,
|
||||
"emitDeclarationOnly": true
|
||||
}
|
||||
}
|
||||
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"extends": "../../tsconfig"
|
||||
}
|
||||
Loading…
Reference in a new issue