Skip to content

Commit e408e4e

Browse files
authored
feat(javascript): add browser xhr requester (#115)
1 parent b6800a9 commit e408e4e

File tree

111 files changed

+2613
-1707
lines changed

Some content is hidden

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

111 files changed

+2613
-1707
lines changed

.eslintrc.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ module.exports = {
6464
'no-continue': 0,
6565
'@typescript-eslint/prefer-enum-initializers': 0,
6666

67+
// in the meantime of finding an alternative, we warn
68+
'no-shadow': 'off',
69+
'@typescript-eslint/no-shadow': ['warn'],
70+
6771
'@typescript-eslint/no-unused-vars': 2,
6872
'unused-imports/no-unused-imports-ts': 2,
6973
'@typescript-eslint/member-ordering': [

.github/actions/cache/action.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,19 @@ runs:
3030
uses: actions/cache@v2
3131
with:
3232
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/client-common/dist
33-
key: ${{ runner.os }}-1-js-client-common-${{ hashFiles('clients/common-client-javascript/client-common/**') }}
33+
key: ${{ runner.os }}-1-js-client-common-${{ hashFiles('clients/algoliasearch-client-javascript/client-common/**') }}
34+
35+
- name: Restore built JavaScript node requester
36+
uses: actions/cache@v2
37+
with:
38+
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/requester-node-http/dist
39+
key: ${{ runner.os }}-1-js-node-requester-${{ hashFiles('clients/algoliasearch-client-javascript/requester-node-http/**') }}
40+
41+
- name: Restore built JavaScript browser requester
42+
uses: actions/cache@v2
43+
with:
44+
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/requester-browser-xhr/dist
45+
key: ${{ runner.os }}-1-js-browser-requester-${{ hashFiles('clients/algoliasearch-client-javascript/requester-browser-xhr/**') }}
3446

3547
- name: Restore built JavaScript search client
3648
if: ${{ inputs.job == 'cts' }}

clients/README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ This folder hosts the generated clients.
1818
- [@algolia/client-search](./algoliasearch-client-javascript/client-search/): The Algolia search client.
1919
- [@algolia/recommend](./algoliasearch-client-javascript/recommend/): The Algolia recommend client.
2020
- [@algolia/sources](./algoliasearch-client-javascript/client-sources/): The Algolia sources client.
21-
22-
#### Utils
23-
24-
- [JavaScript](./algoliasearch-client-javascript/client-common/): The JavaScript clients common files.
21+
- [@algolia/client-common](./algoliasearch-client-javascript/client-common/): The JavaScript clients common files.
22+
- [@algolia/requester-browser-xhr](./algoliasearch-client-javascript/requester-browser-xhr/): Browser XHR requester for the Algolia JavaScript clients.
23+
- [@algolia/requester-node-http](./algoliasearch-client-javascript/requester-node-http/): Node.js HTTP requester for the Algolia JavaScript clients.

clients/algoliasearch-client-javascript/client-abtesting/api.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import type { Host, Requester } from '@algolia/client-common';
2+
import { XhrRequester } from '@algolia/requester-browser-xhr';
3+
4+
import { createAbtestingApi } from './src/abtestingApi';
5+
import type { AbtestingApi, Region } from './src/abtestingApi';
6+
7+
export * from './src/abtestingApi';
8+
export * from '@algolia/client-common';
9+
10+
export function abtestingApi(
11+
appId: string,
12+
apiKey: string,
13+
region?: Region,
14+
options?: { requester?: Requester; hosts?: Host[] }
15+
): AbtestingApi {
16+
if (!appId) {
17+
throw new Error('`appId` is missing.');
18+
}
19+
20+
if (!apiKey) {
21+
throw new Error('`apiKey` is missing.');
22+
}
23+
24+
return createAbtestingApi({
25+
appId,
26+
apiKey,
27+
region,
28+
timeouts: {
29+
connect: 1,
30+
read: 2,
31+
write: 30,
32+
},
33+
requester: options?.requester ?? new XhrRequester(),
34+
userAgents: [{ segment: 'Browser' }],
35+
authMode: 'WithinQueryParameters',
36+
...options,
37+
});
38+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import type { Host, Requester } from '@algolia/client-common';
2+
import { HttpRequester } from '@algolia/requester-node-http';
3+
4+
import { createAbtestingApi } from './src/abtestingApi';
5+
import type { AbtestingApi, Region } from './src/abtestingApi';
6+
7+
export * from './src/abtestingApi';
8+
export * from '@algolia/client-common';
9+
10+
export function abtestingApi(
11+
appId: string,
12+
apiKey: string,
13+
region?: Region,
14+
options?: { requester?: Requester; hosts?: Host[] }
15+
): AbtestingApi {
16+
if (!appId) {
17+
throw new Error('`appId` is missing.');
18+
}
19+
20+
if (!apiKey) {
21+
throw new Error('`apiKey` is missing.');
22+
}
23+
24+
return createAbtestingApi({
25+
appId,
26+
apiKey,
27+
region,
28+
timeouts: {
29+
connect: 1,
30+
read: 2,
31+
write: 30,
32+
},
33+
requester: options?.requester ?? new HttpRequester(),
34+
userAgents: [{ segment: 'Node.js', version: process.versions.node }],
35+
...options,
36+
});
37+
}

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,25 @@
66
"author": "Algolia",
77
"private": true,
88
"license": "MIT",
9-
"main": "dist/api.js",
10-
"types": "dist/api.d.ts",
9+
"main": "./dist/node.js",
10+
"types": "./dist/node.d.ts",
11+
"jsdelivr": "./dist/browser.js",
12+
"unpkg": "./dist/browser.js",
13+
"browser": {
14+
"./index.js": "./dist/browser.js"
15+
},
1116
"scripts": {
1217
"build": "tsc",
1318
"clean": "rm -rf dist/"
1419
},
1520
"engines": {
16-
"node": "^16.0.0",
21+
"node": "^14.0.0",
1722
"yarn": "^3.0.0"
1823
},
1924
"dependencies": {
20-
"@algolia/client-common": "5.0.0"
25+
"@algolia/client-common": "5.0.0",
26+
"@algolia/requester-browser-xhr": "5.0.0",
27+
"@algolia/requester-node-http": "5.0.0"
2128
},
2229
"devDependencies": {
2330
"@types/node": "16.11.11",

0 commit comments

Comments
 (0)