Skip to content

Commit 02f38e4

Browse files
committed
fix(ajax): become a 0 dependency package
1 parent e0d09bb commit 02f38e4

8 files changed

Lines changed: 19 additions & 43 deletions

File tree

.storybook/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const path = require('path');
33

44
module.exports = {
55
stories: [
6-
'../{packages,packages-node}/*/README.md',
6+
'../{packages,packages-node}/!(ajax)*/README.md',
77
'../{packages,packages-node}/*/docs/*.md',
88
'../{packages,packages-node}/*/docs/!(assets)**/*.md',
99
'../packages/helpers/*/README.md',

packages/ajax/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
export { ajax, setAjax } from './src/ajax.js';
22
export { AjaxClient } from './src/AjaxClient.js';
3+
export { AjaxClientFetchError } from './src/AjaxClientFetchError.js';
34

45
export {
56
acceptLanguageRequestInterceptor,
67
createXSRFRequestInterceptor,
8+
getCookie,
79
} from './src/interceptors.js';

packages/ajax/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@lion/ajax",
33
"version": "0.5.15",
4-
"description": "Thin wrapper around fetch.",
4+
"description": "Thin wrapper around fetch with support for interceptors.",
55
"license": "MIT",
66
"author": "ing-bank",
77
"homepage": "https://github.com/ing-bank/lion/",
@@ -29,9 +29,6 @@
2929
"prepublishOnly": "../../scripts/npm-prepublish.js",
3030
"test": "cd ../../ && npm run test:browser -- --group ajax"
3131
},
32-
"dependencies": {
33-
"@lion/localize": "0.15.5"
34-
},
3532
"keywords": [
3633
"ajax",
3734
"fetch",
@@ -41,5 +38,8 @@
4138
],
4239
"publishConfig": {
4340
"access": "public"
41+
},
42+
"exports": {
43+
".": "./index.js"
4444
}
4545
}

packages/ajax/src/interceptors.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { localize } from '@lion/localize';
2-
31
/**
42
* @typedef {import('./AjaxClient').RequestInterceptor} RequestInterceptor
53
*/
@@ -21,7 +19,11 @@ export function getCookie(name, _document = document) {
2119
*/
2220
export async function acceptLanguageRequestInterceptor(request) {
2321
if (!request.headers.has('accept-language')) {
24-
request.headers.set('accept-language', localize.locale);
22+
let locale = document.documentElement.lang || 'en';
23+
if (document.documentElement.getAttribute('data-localize-lang')) {
24+
locale = document.documentElement.getAttribute('data-localize-lang') || 'en';
25+
}
26+
request.headers.set('accept-language', locale);
2527
}
2628
return request;
2729
}

packages/ajax/test/AjaxClient.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { expect } from '@open-wc/testing';
22
import { stub } from 'sinon';
3-
import { localize } from '@lion/localize';
4-
import { AjaxClient } from '../src/AjaxClient.js';
5-
import { AjaxClientFetchError } from '../src/AjaxClientFetchError.js';
3+
import { AjaxClient, AjaxClientFetchError } from '@lion/ajax';
64

75
describe('AjaxClient', () => {
86
/** @type {import('sinon').SinonStub} */
@@ -154,7 +152,7 @@ describe('AjaxClient', () => {
154152
it('is set by default based on localize.locale', async () => {
155153
await ajax.request('/foo');
156154
const request = fetchStub.getCall(0).args[0];
157-
expect(request.headers.get('accept-language')).to.equal(localize.locale);
155+
expect(request.headers.get('accept-language')).to.equal('en');
158156
});
159157

160158
it('can be disabled', async () => {

packages/ajax/test/ajax.test.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { expect } from '@open-wc/testing';
2-
import { ajax, setAjax } from '../src/ajax.js';
3-
import { AjaxClient } from '../src/AjaxClient.js';
2+
import { ajax, setAjax, AjaxClient } from '@lion/ajax';
43

54
describe('ajax', () => {
65
it('exports an instance of AjaxClient', () => {

packages/ajax/test/interceptors.test.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { expect } from '@open-wc/testing';
2-
import { localize } from '@lion/localize';
32
import {
43
createXSRFRequestInterceptor,
54
getCookie,
65
acceptLanguageRequestInterceptor,
7-
} from '../src/interceptors.js';
6+
} from '@lion/ajax';
87

98
describe('interceptors', () => {
109
describe('getCookie()', () => {
@@ -31,7 +30,7 @@ describe('interceptors', () => {
3130
it('adds the locale as accept-language header', () => {
3231
const request = new Request('/foo/');
3332
acceptLanguageRequestInterceptor(request);
34-
expect(request.headers.get('accept-language')).to.equal(localize.locale);
33+
expect(request.headers.get('accept-language')).to.equal('en');
3534
});
3635

3736
it('does not change an existing accept-language header', () => {
@@ -51,7 +50,7 @@ describe('interceptors', () => {
5150
expect(request.headers.get('X-XSRF-TOKEN')).to.equal('foo');
5251
});
5352

54-
it('doesnt set anything if the cookie is not there', () => {
53+
it('does not set anything if the cookie is not there', () => {
5554
const interceptor = createXSRFRequestInterceptor('XSRF-TOKEN', 'X-XSRF-TOKEN', {
5655
cookie: 'XXSRF-TOKEN=foo',
5756
});

yarn.lock

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,25 +1507,6 @@
15071507
dependencies:
15081508
vary "^1.1.2"
15091509

1510-
"@lion/core@0.13.4":
1511-
version "0.13.4"
1512-
resolved "https://registry.yarnpkg.com/@lion/core/-/core-0.13.4.tgz#397f324c56d19f5fc84b9a774fe8169f1c002bb0"
1513-
integrity sha512-0wcW8WDACxH2LQNZgFG1IoPqrTxyGvusQxY+eXTUzw7rv7a/gYa0t/jh+l45NOlYfKdjyXQLWr121W+NCShqiQ==
1514-
dependencies:
1515-
"@open-wc/dedupe-mixin" "^1.2.18"
1516-
"@open-wc/scoped-elements" "^1.2.2"
1517-
lit-element "~2.4.0"
1518-
lit-html "^1.3.0"
1519-
1520-
"@lion/localize@0.15.1":
1521-
version "0.15.1"
1522-
resolved "https://registry.yarnpkg.com/@lion/localize/-/localize-0.15.1.tgz#0b40f6cb1ecfbb6f56e0efa8c871c9338e5436ea"
1523-
integrity sha512-cjcE+XQlx4Ehs+rlsJEwD8xvJAki/q0yWtRwH6suuV7hrVpZeMMkOBFjvM07xQEUgzmdjo9FT9TWrsE/keR/RA==
1524-
dependencies:
1525-
"@bundled-es-modules/message-format" "6.0.4"
1526-
"@lion/core" "0.13.4"
1527-
singleton-manager "1.2.0"
1528-
15291510
"@manypkg/find-root@^1.1.0":
15301511
version "1.1.0"
15311512
resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f"
@@ -1848,7 +1829,7 @@
18481829
"@open-wc/rollup-plugin-html" "^1.2.5"
18491830
polyfills-loader "^1.7.5"
18501831

1851-
"@open-wc/scoped-elements@^1.2.2", "@open-wc/scoped-elements@^1.2.4", "@open-wc/scoped-elements@^1.3.3":
1832+
"@open-wc/scoped-elements@^1.2.4", "@open-wc/scoped-elements@^1.3.3":
18521833
version "1.3.3"
18531834
resolved "https://registry.yarnpkg.com/@open-wc/scoped-elements/-/scoped-elements-1.3.3.tgz#fe008aef4d74fb00c553c900602960638fc1c7b0"
18541835
integrity sha512-vFIQVYYjFw67odUE4JzZOpctnF7S/2DX+S+clrL3bQPql7HvEnV0wMFwOWUavQTuCJi0rfU8GTcNMiUybio+Yg==
@@ -10768,11 +10749,6 @@ simplebar@^4.2.3:
1076810749
lodash.throttle "^4.1.1"
1076910750
resize-observer-polyfill "^1.5.1"
1077010751

10771-
singleton-manager@1.2.0:
10772-
version "1.2.0"
10773-
resolved "https://registry.yarnpkg.com/singleton-manager/-/singleton-manager-1.2.0.tgz#5f80f89bda3a49b926ce6f721c14abdd8bff067a"
10774-
integrity sha512-CJvFjCjO6rhAB+N10CJ3nlb6EbuoZv+TEA5y+91oGRHk0egtQJMTbDEUQBg6gw7ksrTgjMhg4RRngE1Km6diAQ==
10775-
1077610752
sinon-chai@^3.3.0:
1077710753
version "3.5.0"
1077810754
resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.5.0.tgz#c9a78304b0e15befe57ef68e8a85a00553f5c60e"

0 commit comments

Comments
 (0)