valync 0.2.1 → 0.2.3

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.
@@ -23,24 +23,25 @@ export type ApiSuccessResponse<T> = {
23
23
  data: T;
24
24
  };
25
25
  export type ApiResponse<T> = ApiSuccessResponse<T> | ApiErrorResponse;
26
+ export type Handler<T, R> = {
27
+ loading?: () => R;
28
+ error?: (err: {
29
+ name: string;
30
+ message: string;
31
+ code?: number | string;
32
+ }) => R;
33
+ data?: (value: Option<T>) => R;
34
+ };
26
35
  export declare abstract class AsyncValue<T> {
27
- abstract when<R>(handlers: {
28
- loading: () => R;
29
- error: (err: {
30
- name: string;
31
- message: string;
32
- code?: number;
33
- }) => R;
34
- data: (value: Option<T>) => R;
35
- }): R;
36
+ abstract when<R>(handlers: Handler<T, R>): R;
36
37
  isLoading(): boolean;
37
38
  isData(): boolean;
38
39
  isError(): boolean;
39
40
  }
40
41
  export declare class AsyncLoading<T> extends AsyncValue<T> {
41
- when<R>(h: any): R;
42
+ when<R>(h: Handler<T, R>): R;
42
43
  }
43
- export declare class AsyncError<T> extends AsyncValue<T> {
44
+ export declare class AsyncError<T = unknown> extends AsyncValue<T> {
44
45
  error: {
45
46
  name: string;
46
47
  message: string;
@@ -51,11 +52,11 @@ export declare class AsyncError<T> extends AsyncValue<T> {
51
52
  message: string;
52
53
  code?: string | number;
53
54
  });
54
- when<R>(h: any): R;
55
+ when<R>(h: Handler<T, R>): R;
55
56
  }
56
57
  export declare class AsyncData<T> extends AsyncValue<T> {
57
58
  value: Option<T>;
58
59
  constructor(value: Option<T>);
59
- when<R>(h: any): R;
60
+ when<R>(h: Handler<T, R>): R;
60
61
  }
61
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAGF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAGpD,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAElD;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAGtE,8BAAsB,UAAU,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC,CAAC;QACjB,KAAK,EAAE,CAAC,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,CAAC,CAAC;QACpE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACjC,GAAG,CAAC;IAEL,SAAS;IAIT,MAAM;IAIN,OAAO;CAGV;AAGD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;CAGrB;AAGD,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAEjC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;gBAAhE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAI3E,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;CAGrB;AAGD,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAAhB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAGnC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;CAGrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  export function normalizeKey(key) {
3
3
  return typeof key === "string" ? key : JSON.stringify(key);
4
4
  }
5
- // Base abstract class for async state
5
+ // Base abstract class for async stZte
6
6
  export class AsyncValue {
7
7
  isLoading() {
8
8
  return this instanceof AsyncLoading;
@@ -17,7 +17,7 @@ export class AsyncValue {
17
17
  // Represents loading state
18
18
  export class AsyncLoading extends AsyncValue {
19
19
  when(h) {
20
- return h.loading();
20
+ return h.loading ? h.loading() : undefined;
21
21
  }
22
22
  }
23
23
  // Represents failed state with error
@@ -27,7 +27,7 @@ export class AsyncError extends AsyncValue {
27
27
  this.error = error;
28
28
  }
29
29
  when(h) {
30
- return h.error(this.error);
30
+ return h.error ? h.error(this.error) : undefined;
31
31
  }
32
32
  }
33
33
  // Represents data state—with Some(T) or None
@@ -37,7 +37,7 @@ export class AsyncData extends AsyncValue {
37
37
  this.value = value;
38
38
  }
39
39
  when(h) {
40
- return h.data(this.value);
40
+ return h.data ? h.data(this.value) : undefined;
41
41
  }
42
42
  }
43
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAgBA,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,GAAa;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAeD,sCAAsC;AACtC,MAAM,OAAgB,UAAU;IAO5B,SAAS;QACL,OAAO,IAAI,YAAY,YAAY,CAAC;IACxC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,YAAY,SAAS,CAAC;IACrC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,YAAY,UAAU,CAAC;IACtC,CAAC;CACJ;AAED,2BAA2B;AAC3B,MAAM,OAAO,YAAgB,SAAQ,UAAa;IAC9C,IAAI,CAAI,CAAM;QACV,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;CACJ;AAED,qCAAqC;AACrC,MAAM,OAAO,UAAc,SAAQ,UAAa;IAC5C,YACW,KAAgE;QAEvE,KAAK,EAAE,CAAC;QAFD,UAAK,GAAL,KAAK,CAA2D;IAG3E,CAAC;IACD,IAAI,CAAI,CAAM;QACV,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACJ;AAED,6CAA6C;AAC7C,MAAM,OAAO,SAAa,SAAQ,UAAa;IAC3C,YAAmB,KAAgB;QAC/B,KAAK,EAAE,CAAC;QADO,UAAK,GAAL,KAAK,CAAW;IAEnC,CAAC;IACD,IAAI,CAAI,CAAM;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAgBA,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,GAAa;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAwBD,sCAAsC;AACtC,MAAM,OAAgB,UAAU;IAG5B,SAAS;QACL,OAAO,IAAI,YAAY,YAAY,CAAC;IACxC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,YAAY,SAAS,CAAC;IACrC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,YAAY,UAAU,CAAC;IACtC,CAAC;CACJ;AAED,2BAA2B;AAC3B,MAAM,OAAO,YAAgB,SAAQ,UAAa;IAC9C,IAAI,CAAI,CAAgB;QACpB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACJ;AAED,qCAAqC;AACrC,MAAM,OAAO,UAAwB,SAAQ,UAAa;IACtD,YACW,KAAgE;QAEvE,KAAK,EAAE,CAAC;QAFD,UAAK,GAAL,KAAK,CAA2D;IAG3E,CAAC;IACD,IAAI,CAAI,CAAgB;QACpB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;CACJ;AAED,6CAA6C;AAC7C,MAAM,OAAO,SAAa,SAAQ,UAAa;IAC3C,YAAmB,KAAgB;QAC/B,KAAK,EAAE,CAAC;QADO,UAAK,GAAL,KAAK,CAAW;IAEnC,CAAC;IACD,IAAI,CAAI,CAAgB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;CACJ"}
@@ -3,15 +3,7 @@ export declare function createValyn({ client, }: {
3
3
  client: (url: string, init: RequestInit) => Promise<ApiResponse<any>>;
4
4
  }): <T>(key: string | Record<string, any>, options?: ValyncOptions<T>) => [AsyncValue<T>, () => void, (updater: (prev: T | null) => T) => void];
5
5
  export declare function useValync<T>(key: string | Record<string, any>, options?: ValyncOptions<T>): readonly [{
6
- when: <R>(handlers: {
7
- loading: () => R;
8
- error: (err: {
9
- name: string;
10
- message: string;
11
- code?: number;
12
- }) => R;
13
- data: (value: import("ts-results-es").Option<T>) => R;
14
- }) => R;
6
+ when: <R>(handlers: import("../core").Handler<T, R>) => R;
15
7
  isLoading: () => boolean;
16
8
  isData: () => boolean;
17
9
  isError: () => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,WAAW,EACX,UAAU,EAIV,aAAa,EAChB,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EACxB,MAAM,GACT,EAAE;IACC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;CACzE,IACoB,CAAC,EACd,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAS,aAAa,CAAC,CAAC,CAAM,KAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CA+F3E;AAED,wBAAgB,SAAS,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM;;;;;;gBAvF1B,CAAP;;;;;;;yBA4L6B,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,WAalD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,WAAW,EACX,UAAU,EAIV,aAAa,EAChB,MAAM,SAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,EACxB,MAAM,GACT,EAAE;IACC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;CACzE,IACoB,CAAC,EACd,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAS,aAAa,CAAC,CAAC,CAAM,KAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CA+F3E;AAED,wBAAgB,SAAS,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM;;;;;yBAqGJ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,WAalD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valync",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "main": "dist/core/index.js",
5
5
  "types": "dist/core/index.d.ts",
6
6
  "exports": {