Skip to content

Commit

Permalink
feat(docsearch): introduce DocSearch.js v3 (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
francoischalifour committed Jul 9, 2020
0 parents commit c7f2645
Show file tree
Hide file tree
Showing 7 changed files with 120 additions and 0 deletions.
27 changes: 27 additions & 0 deletions babel.config.js
@@ -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 changes: 36 additions & 0 deletions package.json
@@ -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 changes: 24 additions & 0 deletions rollup.config.js
@@ -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 changes: 21 additions & 0 deletions src/docsearch.tsx
@@ -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 change: 1 addition & 0 deletions src/index.ts
@@ -0,0 +1 @@
export { docsearch as default } from './docsearch';
8 changes: 8 additions & 0 deletions tsconfig.declaration.json
@@ -0,0 +1,8 @@
{
"extends": "./tsconfig",
"compilerOptions": {
"noEmit": false,
"declaration": true,
"emitDeclarationOnly": true
}
}
3 changes: 3 additions & 0 deletions tsconfig.json
@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig"
}

0 comments on commit c7f2645

Please sign in to comment.