@equinor/fusion-framework-module-http 0.1.0-beta.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,42 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # 0.2.0 (2022-05-31)
7
+
8
+
9
+ ### Features
10
+
11
+ * **module-http:** add json support ([a6adbbb](https://github.com/equinor/fusion-framework/commit/a6adbbb36ca1391f8813be6141ef963031098764))
12
+
13
+
14
+
15
+
16
+
17
+ ## 0.1.1 (2022-02-09)
18
+
19
+ **Note:** Version bump only for package @equinor/fusion-framework-module-http
20
+
21
+
22
+
23
+
24
+
25
+ # 0.1.0 (2022-02-07)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * expose http client interface ([8660822](https://github.com/equinor/fusion-framework/commit/8660822b669e549bd454aa8a6a0adcaeb5e7917f))
31
+ * **module-http:** allow defaultScopes ([d476de9](https://github.com/equinor/fusion-framework/commit/d476de99e6289e60684f02bcd7b669e23f3789bb))
32
+ * **module-http:** fix check if config when creating client ([950ebc1](https://github.com/equinor/fusion-framework/commit/950ebc18f8f35bb7e6f97d6a98bd91d87616a94e))
33
+ * **module-http:** fix merge of process operators ([5a1d6d2](https://github.com/equinor/fusion-framework/commit/5a1d6d2942475c61c994f4ec26812c949cabbdf1))
34
+ * **module-http:** fix relative url resolve ([0d8c311](https://github.com/equinor/fusion-framework/commit/0d8c311c66b52eec22d465e0db57fa003506ab0c))
35
+
36
+
37
+ ### Features
38
+
39
+ * add module for http clients ([7b02db7](https://github.com/equinor/fusion-framework/commit/7b02db7c2e34b97659bc72af7b5b31307cf55e5f))
40
+ * http client base uri ([233cabf](https://github.com/equinor/fusion-framework/commit/233cabfea0f2b07955670e553472427ec27a3aa0))
41
+ * **module-http:** add check for registered client keys ([93b42f8](https://github.com/equinor/fusion-framework/commit/93b42f88ad092e24fe4f1a216394893128d35734))
42
+ * **module-http:** allow selector for http requests ([ea300c8](https://github.com/equinor/fusion-framework/commit/ea300c8ad5555e4514b35ac43a4c8494461afd91))
package/README.md CHANGED
@@ -1,11 +1,57 @@
1
- ## Api Client
1
+ ## Configure
2
2
 
3
- ### Configure
4
- ```tsx
3
+ Module for configuring and providing http clients
4
+
5
+ ### Simple
6
+ ```ts
5
7
  const configure = (config) => {
6
8
  config.http.configureClient(
7
9
  'bar',
8
10
  'https://somewhere-test.com'
9
11
  );
10
12
  }
13
+ ```
14
+
15
+ ### Standard
16
+ ```ts
17
+ const configure = (config) => {
18
+ config.http.configureClient(
19
+ 'bar',
20
+ {
21
+ baseUri: 'https://foo.bar',
22
+ defaultScopes: ['foobar/.default']
23
+ }
24
+ );
25
+ }
26
+ ```
27
+
28
+ ### Callback
29
+ ```ts
30
+ const configure = async(config) => {
31
+ config.http.configureClient(
32
+ 'bar',
33
+ (client): => {
34
+ client.uri = 'https://foo.bar'
35
+ client.defaultScopes: ['foobar/.default']
36
+ }
37
+ );
38
+ }
39
+ ```
40
+
41
+ ## Consumption
42
+ ```ts
43
+ const client = modules.http.createClient('foo');
44
+ const selector = (response: Response): Promise<FooBar> => response.json();
45
+ // stream
46
+ client.fetch('/api/admin', {selector, scopes: ['foobar/.admin']}).subscribe(x => console.log(x));
47
+ // async
48
+ client.fetchAsync('/api', {selector}).then(console.log);
49
+ ```
50
+
51
+ ## Operators
52
+ ```ts
53
+ const client = modules.http.createClient('foo');
54
+ const logger = console.debug;
55
+ client.requestHandler.add((x: Request) => logger(x));
56
+ client.responseHandler.add((x: Request) => logger(x));
11
57
  ```
@@ -1,10 +1,11 @@
1
1
  import { HttpClient } from './client';
2
2
  export class HttpClientMsal extends HttpClient {
3
- defaultScope = [];
4
- fetch(init) {
5
- init = typeof init === 'string' ? { path: init } : init;
6
- Object.assign(init, { scopes: this.defaultScope.concat(init.scopes || []) });
7
- return super.fetch(init);
3
+ defaultScopes = [];
4
+ fetch(path, init) {
5
+ const args = Object.assign(init || {}, {
6
+ scopes: this.defaultScopes.concat(init?.scopes || []),
7
+ });
8
+ return super._fetch(path, args);
8
9
  }
9
10
  }
10
11
  export default HttpClientMsal;
@@ -1 +1 @@
1
- {"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../src/client-msal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAMvD,MAAM,OAAO,cAAe,SAAQ,UAA2B;IAEpD,YAAY,GAAa,EAAE,CAAC;IAGnC,KAAK,CAAC,IAA2C;QAC7C,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../src/client-msal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkC,MAAM,UAAU,CAAC;AAQtE,MAAM,OAAO,cAGX,SAAQ,UAA+B;IAE9B,aAAa,GAAa,EAAE,CAAC;IAGpC,KAAK,CACD,IAAY,EACZ,IAAmD;QAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACxD,CAA6C,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
@@ -2,6 +2,7 @@ import { firstValueFrom, of, Subject } from 'rxjs';
2
2
  import { switchMap, takeUntil, tap } from 'rxjs/operators';
3
3
  import { fromFetch } from 'rxjs/fetch';
4
4
  import { ProcessOperators } from './process-operators';
5
+ import { jsonSelector } from './selector';
5
6
  export class HttpRequestHandler extends ProcessOperators {
6
7
  setHeader(key, value) {
7
8
  return this.set('header-' + key, (request) => {
@@ -31,16 +32,39 @@ export class HttpClient {
31
32
  }
32
33
  _init() {
33
34
  }
34
- fetch(init) {
35
- const options = typeof init === 'string' ? { path: init } : init;
36
- return of({ ...options, uri: this._resolveUrl(options.path) }).pipe(switchMap((x) => this._prepareRequest(x)), tap((x) => this._request$.next(x)), switchMap(({ uri, path: _path, ...args }) => fromFetch(uri, args)), switchMap((x) => this._prepareResponse(x)), tap((x) => this._response$.next(x)), takeUntil(this._abort$));
35
+ fetch(path, args) {
36
+ return this._fetch(path, args);
37
37
  }
38
- fetchAsync(init) {
39
- return firstValueFrom(this.fetch(init));
38
+ fetchAsync(path, args) {
39
+ return firstValueFrom(this.fetch(path, args));
40
+ }
41
+ json(path, args) {
42
+ const body = typeof args?.body === 'object' ? JSON.stringify(args?.body) : args?.body;
43
+ const selector = args?.selector ?? jsonSelector;
44
+ const header = new Headers(args?.headers);
45
+ header.append('Content-Type', 'application/json');
46
+ return this.fetch(path, {
47
+ ...args,
48
+ body,
49
+ selector,
50
+ });
51
+ }
52
+ jsonAsync(path, args) {
53
+ return firstValueFrom(this.json(path, args));
40
54
  }
41
55
  abort() {
42
56
  this._abort$.next();
43
57
  }
58
+ _fetch(path, args) {
59
+ const { selector, ...options } = Object.assign({}, args || { selector: undefined }, {
60
+ path,
61
+ });
62
+ const response$ = of({
63
+ ...options,
64
+ uri: this._resolveUrl(options.path),
65
+ }).pipe(switchMap((x) => this._prepareRequest(x)), tap((x) => this._request$.next(x)), switchMap(({ uri, path: _path, ...args }) => fromFetch(uri, args)), switchMap((x) => this._prepareResponse(x)), tap((x) => this._response$.next(x)), switchMap((x) => (selector ? selector(x) : Promise.resolve(x))), takeUntil(this._abort$));
66
+ return response$;
67
+ }
44
68
  _prepareRequest(init) {
45
69
  return this.requestHandler.process(init);
46
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAgC,MAAM,UAAU,CAAC;AA0C5E,MAAM,OAAO,sBAAsB;IAGrB,QAAQ,GAA+C,EAAE,CAAC;IAEpE,IAAW,OAAO;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEQ,qBAAqB,CAAiC;IAEtD,yBAAyB,GAAG,IAAI,kBAAkB,EAExD,CAAC;IAEJ,YAAY,MAAsC;QAC9C,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,eAAe,CACX,IAAY,EACZ,IAAsE;QAEtE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YAClB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAI,OAAiD;SACxD,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA6B,MAAM,UAAU,CAAC;AA8EzE,MAAM,OAAO,sBAAsB;IAGrB,QAAQ,GAA+C,EAAE,CAAC;IAGpE,IAAW,OAAO;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAGQ,qBAAqB,CAAiC;IAGtD,yBAAyB,GAAG,IAAI,kBAAkB,EAExD,CAAC;IAMJ,YAAY,MAAsC;QAC9C,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACxC,CAAC;IAGD,SAAS,CAAC,IAAY;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAGD,eAAe,CACX,IAAY,EACZ,IAAsE;QAEtE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YAClB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAI,OAAiD;SACxD,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,sBAAsB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -3,5 +3,6 @@ export { HttpClientMsal } from './client-msal';
3
3
  export * from './configurator';
4
4
  export * from './provider';
5
5
  export * from './module';
6
+ export * from './selector';
6
7
  export { default } from './module';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAiC,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -20,22 +20,29 @@ export class HttpClientProvider {
20
20
  hasClient(key) {
21
21
  return Object.keys(this.config.clients).includes(key);
22
22
  }
23
- createClient(key) {
24
- let config = this.config.clients[key];
25
- if (!config && isURL(key)) {
26
- config = { baseUri: key };
27
- }
28
- else if (!config) {
29
- throw new ClientNotFoundException(`No registered http client for key [${key}]`);
30
- }
31
- const { baseUri, onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.config.defaultHttpRequestHandler, } = config;
23
+ createClient(keyOrConfig) {
24
+ const config = this._resolveConfig(keyOrConfig);
25
+ const { baseUri, defaultScopes = [], onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.config.defaultHttpRequestHandler, } = config;
32
26
  const options = { requestHandler };
33
27
  const instance = new ctor(baseUri || '', options);
28
+ Object.assign(instance, { defaultScopes });
34
29
  onCreate && onCreate(instance);
35
30
  return instance;
36
31
  }
37
32
  createCustomClient(key) {
38
33
  return this.createClient(key);
39
34
  }
35
+ _resolveConfig(keyOrConfig) {
36
+ if (typeof keyOrConfig === 'string') {
37
+ const config = this.config.clients[keyOrConfig];
38
+ if (!config && isURL(keyOrConfig)) {
39
+ return { baseUri: keyOrConfig };
40
+ }
41
+ else if (!config) {
42
+ throw new ClientNotFoundException(`No registered http client for key [${keyOrConfig}]`);
43
+ }
44
+ }
45
+ return keyOrConfig;
46
+ }
40
47
  }
41
48
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAmBD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1B,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,mBAAmB;QACf,mDAAmD;QACnD,6BAA6B;QAC7B,iCAAiC;QACjC,0BAA0B;QAC1B,oBAAoB,EACxB,GAAG,CACN,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAGL;IAAtB,YAAsB,MAAwC;QAAxC,WAAM,GAAN,MAAM,CAAkC;IAAG,CAAC;IAE3D,SAAS,CAAC,GAAW;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,YAAY,CAAC,GAAW;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SAC7B;aAAM,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,uBAAuB,CAAC,sCAAsC,GAAG,GAAG,CAAC,CAAC;SACnF;QACD,MAAM,EACF,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EACxC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,GACzD,GAAG,MAAM,CAAC;QACX,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAY,CAAC;QAC7D,QAAQ,IAAI,QAAQ,CAAC,QAAmB,CAAC,CAAC;QAC1C,OAAO,QAAmB,CAAC;IAC/B,CAAC;IAEM,kBAAkB,CAAuB,GAAW;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAiB,CAAC;IAClD,CAAC;CACJ"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAoBD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1B,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,mBAAmB;QACf,mDAAmD;QACnD,6BAA6B;QAC7B,iCAAiC;QACjC,0BAA0B;QAC1B,oBAAoB,EACxB,GAAG,CACN,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAGL;IAAtB,YAAsB,MAAwC;QAAxC,WAAM,GAAN,MAAM,CAAkC;IAAG,CAAC;IAE3D,SAAS,CAAC,GAAW;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,YAAY,CAAC,WAAgD;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,EACF,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,QAAQ,EACR,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EACxC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,GACzD,GAAG,MAAoC,CAAC;QACzC,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAY,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,QAAQ,IAAI,QAAQ,CAAC,QAAmB,CAAC,CAAC;QAC1C,OAAO,QAAmB,CAAC;IAC/B,CAAC;IAEM,kBAAkB,CAAuB,GAAW;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAiB,CAAC;IAClD,CAAC;IAES,cAAc,CACpB,WAAgD;QAEhD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC/B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;aACnC;iBAAM,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,uBAAuB,CAC7B,sCAAsC,WAAW,GAAG,CACvD,CAAC;aACL;SACJ;QACD,OAAO,WAAyC,CAAC;IACrD,CAAC;CACJ"}
@@ -0,0 +1,12 @@
1
+ export const jsonSelector = (response) => {
2
+ if (!response.ok) {
3
+ throw new Error('Network response was not OK');
4
+ }
5
+ try {
6
+ return response.json();
7
+ }
8
+ catch (err) {
9
+ throw Error('failed to parse response', { cause: err });
10
+ }
11
+ };
12
+ //# sourceMappingURL=selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/selector.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,QAAmB,EACL,EAAE;IAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAClD;IACD,IAAI;QACA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAY,EAAE,CAAC,CAAC;KACpE;AACL,CAAC,CAAC"}