@superbia/untrue 2.0.1 → 2.0.2

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/dist/Api.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ import { Context } from "untrue";
1
2
  import { Client, EndpointRecord, Response, ResponseResult } from "@superbia/client";
2
3
  import { DocumentSchemaRecord } from "./SuperbiaContext";
3
4
  import { DocumentContext, Documents } from "./DocumentContext";
4
5
  import { RequestContext, Request } from "./RequestContext";
5
- export default class Api<K extends DocumentSchemaRecord, M extends EndpointRecord, N extends EndpointRecord = {}, O extends string = "id"> {
6
+ export default class Api<K extends DocumentSchemaRecord, M extends EndpointRecord, N extends EndpointRecord = {}, O extends string = "id"> extends Context {
6
7
  readonly client: Client<M, N>;
7
8
  readonly documents: DocumentContext<K, M, O>;
8
9
  readonly requests: RequestContext<M, O>;
package/dist/Api.js CHANGED
@@ -4,27 +4,30 @@ const untrue_1 = require("untrue");
4
4
  const uuid_1 = require("uuid");
5
5
  const DocumentContext_1 = require("./DocumentContext");
6
6
  const RequestContext_1 = require("./RequestContext");
7
- class Api {
7
+ class Api extends untrue_1.Context {
8
8
  constructor(client, idKey = "id") {
9
+ super();
9
10
  this.client = client;
10
11
  this.documents = new DocumentContext_1.DocumentContext(client, idKey);
11
12
  this.requests = new RequestContext_1.RequestContext(client, idKey);
13
+ const listener = () => {
14
+ this.update();
15
+ };
16
+ this.documents.on("update", listener);
17
+ this.requests.on("update", listener);
12
18
  }
13
19
  useDocuments(selector) {
14
20
  return untrue_1.Hook.useContext(this.documents, () => selector(this.documents.data));
15
21
  }
16
22
  useRequest(key, selector, requester) {
17
23
  const value = untrue_1.Hook.useContext(this.requests, () => {
18
- var _a;
19
- let request = ((_a = this.requests.data[key]) !== null && _a !== void 0 ? _a : null);
20
- if (request === null) {
21
- request = {
22
- loading: false,
23
- done: false,
24
- result: null,
25
- error: null,
26
- };
27
- }
24
+ let request = (this.requests.data[key] ?? null);
25
+ request ?? (request = {
26
+ loading: false,
27
+ done: false,
28
+ result: null,
29
+ error: null,
30
+ });
28
31
  return selector(request);
29
32
  });
30
33
  const request = async (...args) => {
@@ -9,7 +9,5 @@ export type Documents<T extends DocumentSchemaRecord, O extends string> = {
9
9
  export declare class DocumentContext<K extends DocumentSchemaRecord, M extends EndpointRecord, O extends string> extends SuperbiaContext<M> {
10
10
  data: Documents<K, O>;
11
11
  constructor(client: Client<M, any>, idKey: string);
12
- hydrate(data: any): void;
13
- persist(): any;
14
12
  private handleResult;
15
13
  }
@@ -14,12 +14,6 @@ class DocumentContext extends SuperbiaContext_1.SuperbiaContext {
14
14
  client.on("request", listener);
15
15
  client.on("subscribe", listener);
16
16
  }
17
- hydrate(data) {
18
- this.data = data;
19
- }
20
- persist() {
21
- return this.data;
22
- }
23
17
  handleResult(result) {
24
18
  const data = {};
25
19
  for (const tmpResult of Object.values(result)) {
@@ -18,7 +18,5 @@ export type Requests<T extends EndpointRecord, O extends string> = Record<string
18
18
  }, O>>;
19
19
  export declare class RequestContext<M extends EndpointRecord, O extends string> extends SuperbiaContext<M> {
20
20
  data: Requests<M, O>;
21
- hydrate(data: any): void;
22
- persist(): any;
23
21
  parseResult(result: ResponseResult): ResponseResult;
24
22
  }
@@ -7,12 +7,6 @@ class RequestContext extends SuperbiaContext_1.SuperbiaContext {
7
7
  super(...arguments);
8
8
  this.data = {};
9
9
  }
10
- hydrate(data) {
11
- this.data = data;
12
- }
13
- persist() {
14
- return this.data;
15
- }
16
10
  parseResult(result) {
17
11
  const tmpResult = {};
18
12
  for (const key in result) {
@@ -17,20 +17,20 @@ class SuperbiaContext extends untrue_1.Context {
17
17
  return result.map((element) => this.parseResultValue(element, data));
18
18
  }
19
19
  if (typeof result === "object") {
20
- const newResult = {};
20
+ const tmpResult = {};
21
21
  for (const key in result) {
22
- newResult[key] = this.parseResultValue(result[key], data);
22
+ tmpResult[key] = this.parseResultValue(result[key], data);
23
23
  }
24
24
  const isDocument = this.idKey in result && this.typenameKey in result;
25
25
  if (!isDocument) {
26
- return newResult;
26
+ return tmpResult;
27
27
  }
28
28
  const id = result[this.idKey];
29
29
  const typename = result[this.typenameKey];
30
30
  if (!(typename in data)) {
31
31
  data[typename] = {};
32
32
  }
33
- data[typename][id] = newResult;
33
+ data[typename][id] = tmpResult;
34
34
  return result[this.idKey];
35
35
  }
36
36
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superbia/untrue",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Integrate Superbia and Untrue.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,7 @@
19
19
  "license": "MIT",
20
20
  "peerDependencies": {
21
21
  "@superbia/client": "^2.0.10",
22
- "untrue": "^5.8.0"
22
+ "untrue": "^5.9.0"
23
23
  },
24
24
  "dependencies": {
25
25
  "uuid": "^10.0.0"