Skip to content

Commit c7e7577

Browse files
authored
feat(javascript): bundle CJS, ESM and UMD (#135)
1 parent f7480df commit c7e7577

File tree

97 files changed

+6137
-1229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+6137
-1229
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ node_modules
22
.bash_profile
33
.env
44
.pnp.cjs
5+
.parcel-cache
56

67
yarn-error.log
78

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FROM node:$NODE_VERSION-alpine
44

55
ENV DOCKER=true
66

7-
RUN apk -U add openjdk11 jq bash perl
7+
RUN apk -U add openjdk11 jq bash perl build-base python3
88
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
99

1010
# Java formatter

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ yarn docker playground <language> <client>
125125
yarn docker playground javascript search
126126
```
127127

128+
#### Browser
129+
130+
```bash
131+
yarn playground:browser
132+
```
133+
128134
### Java
129135

130136
```bash

base.tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"module": "commonjs",
44
"noImplicitAny": false,
55
"suppressImplicitAnyIndexErrors": true,
6-
"target": "ES6",
6+
"target": "esnext",
77
"allowSyntheticDefaultImports": true,
88
"esModuleInterop": true,
99
"strict": true,
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"files": [
3+
{
4+
"path": "packages/client-abtesting/dist/client-abtesting.umd.browser.js",
5+
"maxSize": "3.25KB"
6+
},
7+
{
8+
"path": "packages/client-analytics/dist/client-analytics.umd.browser.js",
9+
"maxSize": "3.75KB"
10+
},
11+
{
12+
"path": "packages/client-insights/dist/client-insights.umd.browser.js",
13+
"maxSize": "3.00KB"
14+
},
15+
{
16+
"path": "packages/client-personalization/dist/client-personalization.umd.browser.js",
17+
"maxSize": "3.25KB"
18+
},
19+
{
20+
"path": "packages/client-query-suggestions/dist/client-query-suggestions.umd.browser.js",
21+
"maxSize": "3.25KB"
22+
},
23+
{
24+
"path": "packages/client-search/dist/client-search.umd.browser.js",
25+
"maxSize": "5.25KB"
26+
},
27+
{
28+
"path": "packages/client-sources/dist/client-sources.umd.browser.js",
29+
"maxSize": "3.00KB"
30+
},
31+
{
32+
"path": "packages/recommend/dist/recommend.umd.browser.js",
33+
"maxSize": "3.25KB"
34+
},
35+
{
36+
"path": "packages/client-common/dist/client-common.esm.node.js",
37+
"maxSize": "3.25KB"
38+
},
39+
{
40+
"path": "packages/requester-browser-xhr/dist/requester-browser-xhr.esm.node.js",
41+
"maxSize": "1.00KB"
42+
},
43+
{
44+
"path": "packages/requester-node-http/dist/requester-node-http.esm.node.js",
45+
"maxSize": "1.00KB"
46+
}
47+
]
48+
}

clients/algoliasearch-client-javascript/package.json

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,29 @@
66
],
77
"private": true,
88
"scripts": {
9-
"build:utils": "yarn workspace @algolia/client-common build && yarn workspace @algolia/requester-node-http build && yarn workspace @algolia/requester-browser-xhr build",
9+
"build:utils": "BUILD_UTILS=true yarn rollup -c rollup.config.js",
10+
"build": "CLIENT=${0:-all} yarn rollup -c rollup.config.js",
1011
"clean:utils": "yarn workspace @algolia/client-common clean && yarn workspace @algolia/requester-node-http clean && yarn workspace @algolia/requester-browser-xhr clean",
1112
"clean": "rm -rf packages/*/dist",
13+
"release": "shipjs prepare",
14+
"test:size": "bundlesize",
15+
"test:lint": "eslint . --ext .js,.ts",
1216
"test:types": "yarn tsc --noEmit"
1317
},
1418
"devDependencies": {
19+
"@babel/core": "7.17.2",
20+
"@babel/plugin-transform-runtime": "7.17.0",
21+
"@babel/preset-env": "7.16.11",
22+
"@babel/runtime": "7.17.2",
23+
"@rollup/plugin-babel": "5.3.0",
24+
"@rollup/plugin-node-resolve": "13.1.3",
25+
"@types/rollup-plugin-node-globals": "1.4.1",
26+
"bundlesize": "0.18.1",
27+
"rollup": "2.67.1",
28+
"rollup-plugin-filesize": "9.1.2",
29+
"rollup-plugin-node-globals": "1.4.0",
30+
"rollup-plugin-terser": "7.0.2",
31+
"rollup-plugin-typescript2": "0.31.2",
1532
"typescript": "4.5.4"
1633
},
1734
"engines": {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-unresolved
2+
export * from './dist/builds/node';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-commonjs,import/extensions
2+
module.exports = require('./dist/client-abtesting.cjs.node.js');

clients/algoliasearch-client-javascript/packages/client-abtesting/package.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "./dist/builds/node.js",
10-
"types": "./dist/builds/node.d.ts",
11-
"jsdelivr": "./dist/builds/browser.js",
12-
"unpkg": "./dist/builds/browser.js",
13-
"browser": {
14-
"./index.js": "./dist/builds/browser.js"
15-
},
9+
"main": "index.js",
10+
"module": "dist/client-abtesting.esm.node.js",
11+
"types": "index.d.ts",
12+
"jsdelivr": "dist/client-abtesting.umd.browser.js",
13+
"unpkg": "dist/client-abtesting.umd.browser.js",
14+
"browser": "dist/client-abtesting.cjs.browser.js",
1615
"scripts": {
17-
"build": "tsc",
18-
"clean": "rm -rf dist/"
16+
"clean": "rm -rf ./dist"
1917
},
2018
"engines": {
2119
"node": "^14.0.0"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-unresolved
2+
export * from './dist/builds/node';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-commonjs,import/extensions
2+
module.exports = require('./dist/client-analytics.cjs.node.js');

clients/algoliasearch-client-javascript/packages/client-analytics/package.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "./dist/builds/node.js",
10-
"types": "./dist/builds/node.d.ts",
11-
"jsdelivr": "./dist/builds/browser.js",
12-
"unpkg": "./dist/builds/browser.js",
13-
"browser": {
14-
"./index.js": "./dist/builds/browser.js"
15-
},
9+
"main": "index.js",
10+
"module": "dist/client-analytics.esm.node.js",
11+
"types": "index.d.ts",
12+
"jsdelivr": "dist/client-analytics.umd.browser.js",
13+
"unpkg": "dist/client-analytics.umd.browser.js",
14+
"browser": "dist/client-analytics.cjs.browser.js",
1615
"scripts": {
17-
"build": "tsc",
18-
"clean": "rm -rf dist/"
16+
"clean": "rm -rf ./dist"
1917
},
2018
"engines": {
2119
"node": "^14.0.0"

clients/algoliasearch-client-javascript/packages/client-common/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
export * from './src/createMemoryCache';
22
export * from './src/createAuth';
3+
export * from './src/createEchoRequester';
34
export * from './src/createUserAgent';
45
export * from './src/errors';
56
export * from './src/getUserAgent';
67
export * from './src/helpers';
7-
export * from './src/requester';
8+
export * from './src/Requester';
89
export * from './src/Response';
910
export * from './src/stackTrace';
1011
export * from './src/StatefulHost';

clients/algoliasearch-client-javascript/packages/client-common/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "dist/index.js",
9+
"main": "dist/client-common.cjs.node.js",
10+
"module": "dist/client-common.esm.node.js",
1011
"types": "dist/index.d.ts",
1112
"scripts": {
1213
"build": "tsc",

clients/algoliasearch-client-javascript/packages/client-common/src/requester/Requester.ts renamed to clients/algoliasearch-client-javascript/packages/client-common/src/Requester.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { EndRequest, Request, Response } from '../types';
1+
import type { EndRequest, Request, Response } from './types';
22

33
export abstract class Requester {
44
abstract send(

clients/algoliasearch-client-javascript/packages/client-common/src/Transporter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { Requester } from './Requester';
12
import { isRetryable, isSuccess } from './Response';
23
import { StatefulHost } from './StatefulHost';
34
import { createMemoryCache } from './createMemoryCache';
@@ -10,7 +11,6 @@ import {
1011
serializeHeaders,
1112
serializeUrl,
1213
} from './helpers';
13-
import type { Requester } from './requester/Requester';
1414
import {
1515
stackTraceWithoutCredentials,
1616
stackFrameWithoutCredentials,
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import type { EchoResponse, EndRequest, Request, Response } from './types';
2+
3+
export type UrlParams = {
4+
host: string;
5+
userAgent: string;
6+
searchParams: EchoResponse['searchParams'];
7+
};
8+
9+
export type EchoRequesterParams = {
10+
getUrlParams: (url: string) => UrlParams;
11+
status?: number;
12+
};
13+
14+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
15+
export function createEchoRequester({
16+
getUrlParams,
17+
status = 200,
18+
}: EchoRequesterParams) {
19+
function send(
20+
{ headers, url, connectTimeout, responseTimeout }: EndRequest,
21+
{ data, ...originalRequest }: Request
22+
): Promise<Response> {
23+
const { host, searchParams, userAgent } = getUrlParams(url);
24+
const originalData =
25+
data && Object.entries(data).length > 0 ? data : undefined;
26+
27+
return Promise.resolve({
28+
content: JSON.stringify({
29+
...originalRequest,
30+
host,
31+
headers,
32+
connectTimeout,
33+
responseTimeout,
34+
userAgent: userAgent ? encodeURI(userAgent) : undefined,
35+
searchParams,
36+
data: originalData,
37+
}),
38+
isTimedOut: false,
39+
status,
40+
});
41+
}
42+
43+
return { send };
44+
}

clients/algoliasearch-client-javascript/packages/client-common/src/requester/EchoRequester.ts

Lines changed: 0 additions & 53 deletions
This file was deleted.

clients/algoliasearch-client-javascript/packages/client-common/src/requester/index.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-unresolved
2+
export * from './dist/builds/node';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-commonjs,import/extensions
2+
module.exports = require('./dist/client-insights.cjs.node.js');

clients/algoliasearch-client-javascript/packages/client-insights/package.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "./dist/builds/node.js",
10-
"types": "./dist/builds/node.d.ts",
11-
"jsdelivr": "./dist/builds/browser.js",
12-
"unpkg": "./dist/builds/browser.js",
13-
"browser": {
14-
"./index.js": "./dist/builds/browser.js"
15-
},
9+
"main": "index.js",
10+
"module": "dist/client-insights.esm.node.js",
11+
"types": "index.d.ts",
12+
"jsdelivr": "dist/client-insights.umd.browser.js",
13+
"unpkg": "dist/client-insights.umd.browser.js",
14+
"browser": "dist/client-insights.cjs.browser.js",
1615
"scripts": {
17-
"build": "tsc",
18-
"clean": "rm -rf dist/"
16+
"clean": "rm -rf ./dist"
1917
},
2018
"engines": {
2119
"node": "^14.0.0"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-unresolved
2+
export * from './dist/builds/node';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-commonjs,import/extensions
2+
module.exports = require('./dist/client-personalization.cjs.node.js');

clients/algoliasearch-client-javascript/packages/client-personalization/package.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,14 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "./dist/builds/node.js",
10-
"types": "./dist/builds/node.d.ts",
11-
"jsdelivr": "./dist/builds/browser.js",
12-
"unpkg": "./dist/builds/browser.js",
13-
"browser": {
14-
"./index.js": "./dist/builds/browser.js"
15-
},
9+
"main": "index.js",
10+
"module": "dist/client-personalization.esm.node.js",
11+
"types": "index.d.ts",
12+
"jsdelivr": "dist/client-personalization.umd.browser.js",
13+
"unpkg": "dist/client-personalization.umd.browser.js",
14+
"browser": "dist/client-personalization.cjs.browser.js",
1615
"scripts": {
17-
"build": "tsc",
18-
"clean": "rm -rf dist/"
16+
"clean": "rm -rf ./dist"
1917
},
2018
"engines": {
2119
"node": "^14.0.0"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-unresolved
2+
export * from './dist/builds/node';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// eslint-disable-next-line import/no-commonjs,import/extensions
2+
module.exports = require('./dist/client-predict.cjs.node.js');

0 commit comments

Comments
 (0)