@kaumlaut/pure 0.1.17 → 0.1.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clone/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnC,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAkBtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clone/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAkBtD"}
@@ -3,7 +3,7 @@ export function clone(value) {
3
3
  return value;
4
4
  }
5
5
  if (Array.isArray(value)) {
6
- return value.map(item => clone(item));
6
+ return value.map((item) => clone(item));
7
7
  }
8
8
  const clonedObj = {};
9
9
  for (const key in value) {
@@ -1,6 +1,7 @@
1
1
  export type Guard<T> = (value: unknown) => value is T;
2
2
  export declare function all<T>(value: unknown, guards: Guard<T>[]): value is T;
3
3
  export declare function isString(value: unknown): value is string;
4
+ export declare function isStringOfLength(value: unknown, length: number): value is string;
4
5
  export declare function isNumber(value: unknown): value is number;
5
6
  export declare function isInt(value: unknown): value is number;
6
7
  export declare function isFloat(value: unknown): value is number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAA;AAErD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAErE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AACD,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAErD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEvD;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAE1F;AACD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAEhG;AACD,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;KAAE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,GAAG,KAAK,IAAI,CAAC,CAEjI"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAEtD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAErE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACb,KAAK,IAAI,MAAM,CAEjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMrD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMvD;AAMD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,CAAC,GACX,KAAK,IAAI,CAAC,CAEZ;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAChB,KAAK,IAAI,CAAC,CAEZ;AAED,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,MAAM,EAC5D,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,KAAK,IAAI,CAAC,CAKZ"}
@@ -1,26 +1,37 @@
1
- import { asFloat, asInt } from '@kaumlaut/pure/parse';
2
- import { isOk } from '@kaumlaut/pure/result';
1
+ import { asFloat, asInt } from "@kaumlaut/pure/parse";
2
+ import { isOk } from "@kaumlaut/pure/result";
3
3
  export function all(value, guards) {
4
- return guards.every(guard => guard(value));
4
+ return guards.every((guard) => guard(value));
5
5
  }
6
6
  export function isString(value) {
7
7
  return typeof value === "string";
8
8
  }
9
+ export function isStringOfLength(value, length) {
10
+ return isString(value) && value.length === length;
11
+ }
9
12
  export function isNumber(value) {
10
13
  return typeof value === "number";
11
14
  }
12
15
  export function isInt(value) {
13
- return isNumber(value) && isOk(asInt(value.toString()));
16
+ return (isNumber(value) &&
17
+ !numberIncludesCommaSeparator(value) &&
18
+ isOk(asInt(value.toString())));
14
19
  }
15
20
  export function isFloat(value) {
16
- return isNumber(value) && isOk(asFloat(value.toString()));
21
+ return (isNumber(value) &&
22
+ numberIncludesCommaSeparator(value) &&
23
+ isOk(asFloat(value.toString())));
24
+ }
25
+ function numberIncludesCommaSeparator(value) {
26
+ return `${value}`.includes(".");
17
27
  }
18
28
  export function isObjectWithKey(value, key) {
19
29
  return typeof value === "object" && key in value;
20
30
  }
21
31
  export function isObjectWithKeys(value, keys) {
22
- return typeof value === "object" && keys.every(key => key in value);
32
+ return typeof value === "object" && keys.every((key) => key in value);
23
33
  }
24
34
  export function isObjectWithKeysMatchingGuard(value, guards) {
25
- return typeof value === "object" && Object.keys(guards).every(key => key in value && guards[key](value[key]));
35
+ return (typeof value === "object" &&
36
+ Object.keys(guards).every((key) => key in value && guards[key](value[key])));
26
37
  }
@@ -1,4 +1,4 @@
1
- import { Result } from '@kaumlaut/pure/result';
1
+ import { Result } from "@kaumlaut/pure/result";
2
2
  /**
3
3
  * @example
4
4
  * ```ts
@@ -9,7 +9,7 @@ import { Result } from '@kaumlaut/pure/result';
9
9
  * ```
10
10
  */
11
11
  export type Just<T> = {
12
- type: 'maybe-just';
12
+ type: "maybe-just";
13
13
  value: T;
14
14
  };
15
15
  /**
@@ -21,7 +21,7 @@ export type Just<T> = {
21
21
  }
22
22
  */
23
23
  export type Nothing = {
24
- type: 'maybe-nothing';
24
+ type: "maybe-nothing";
25
25
  };
26
26
  export type Maybe<T> = Just<T> | Nothing;
27
27
  export declare function nothing(): Nothing;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/maybe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;AAExC,wBAAgB,OAAO,IAAI,OAAO,CAIjC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAKzC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAE9D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAE3D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAG5D;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAM1E;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAMhF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAMlE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAEtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/maybe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AAEzC,wBAAgB,OAAO,IAAI,OAAO,CAIjC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAKzC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAE9D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAE3D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAG5D;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAM1E;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAC1B,KAAK,CAAC,CAAC,CAAC,CAUV;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAMlE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAEtE"}
@@ -1,24 +1,24 @@
1
- import { err, ok } from '@kaumlaut/pure/result';
1
+ import { err, ok } from "@kaumlaut/pure/result";
2
2
  export function nothing() {
3
3
  return {
4
- type: 'maybe-nothing',
4
+ type: "maybe-nothing",
5
5
  };
6
6
  }
7
7
  export function just(value) {
8
8
  return {
9
- type: 'maybe-just',
9
+ type: "maybe-just",
10
10
  value,
11
11
  };
12
12
  }
13
13
  export function isNothing(maybe) {
14
- return maybe.type === 'maybe-nothing';
14
+ return maybe.type === "maybe-nothing";
15
15
  }
16
16
  export function isJust(maybe) {
17
- return maybe.type === 'maybe-just';
17
+ return maybe.type === "maybe-just";
18
18
  }
19
19
  export function isMaybe(value) {
20
20
  //@ts-expect-error is validated
21
- return value.type === 'maybe-just' || value.type === 'maybe-nothing';
21
+ return value.type === "maybe-just" || value.type === "maybe-nothing";
22
22
  }
23
23
  export function map(maybe, func) {
24
24
  if (isJust(maybe)) {
@@ -27,7 +27,10 @@ export function map(maybe, func) {
27
27
  return maybe;
28
28
  }
29
29
  export function filter(maybe, func) {
30
- if (isJust(maybe) && func(maybe.value)) {
30
+ if (!isJust(maybe)) {
31
+ return maybe;
32
+ }
33
+ if (func(maybe.value)) {
31
34
  return maybe;
32
35
  }
33
36
  return nothing();
@@ -1,4 +1,4 @@
1
- import { type Result } from '@kaumlaut/pure/result';
1
+ import { type Result } from "@kaumlaut/pure/result";
2
2
  export declare function asInt(value: string): Result<number, string>;
3
3
  export declare function asFloat(value: string): Result<number, string>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE5D,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ3D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ3D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ7D"}
@@ -1,15 +1,15 @@
1
- import { err, ok } from '@kaumlaut/pure/result';
1
+ import { err, ok } from "@kaumlaut/pure/result";
2
2
  export function asInt(value) {
3
3
  const parsed = parseInt(value, 10);
4
4
  if (Number.isNaN(parsed)) {
5
- return err('Number is NaN');
5
+ return err("Number is NaN");
6
6
  }
7
7
  return ok(parsed);
8
8
  }
9
9
  export function asFloat(value) {
10
10
  const parsed = parseFloat(value);
11
11
  if (Number.isNaN(parsed)) {
12
- return err('Number is NaN');
12
+ return err("Number is NaN");
13
13
  }
14
14
  return ok(parsed);
15
15
  }
@@ -1,10 +1,10 @@
1
- import { Maybe } from '@kaumlaut/pure/maybe';
1
+ import { Maybe } from "@kaumlaut/pure/maybe";
2
2
  export type Ok<T> = {
3
- type: 'ok-result';
3
+ type: "ok-result";
4
4
  value: T;
5
5
  };
6
6
  export type Err<T> = {
7
- type: 'error-result';
7
+ type: "error-result";
8
8
  error: T;
9
9
  };
10
10
  export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAAW,MAAM,sBAAsB,CAAA;AAE3D,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;IAClB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IACnB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAKrC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAKvC;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAEzC,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMtF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMzF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAM1E;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAE5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/result/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAKrC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAKvC;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACpB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMd;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACpB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMd;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAM1E;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAE5D"}
@@ -1,19 +1,19 @@
1
- import { just, nothing } from '@kaumlaut/pure/maybe';
1
+ import { just, nothing } from "@kaumlaut/pure/maybe";
2
2
  export function isOk(result) {
3
- return result.type === 'ok-result';
3
+ return result.type === "ok-result";
4
4
  }
5
5
  export function isErr(result) {
6
- return result.type === 'error-result';
6
+ return result.type === "error-result";
7
7
  }
8
8
  export function ok(value) {
9
9
  return {
10
- type: 'ok-result',
10
+ type: "ok-result",
11
11
  value,
12
12
  };
13
13
  }
14
14
  export function err(error) {
15
15
  return {
16
- type: 'error-result',
16
+ type: "error-result",
17
17
  error,
18
18
  };
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/effect/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAY,MAAM,+BAA+B,CAAA;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,qBAAqB,CAAA;AAEnD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAErD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,IAAI,SAAS,CAE5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAC5C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,CAAC,CAAC,CA0CX"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/effect/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EACL,mBAAmB,EACnB,MAAM,EAEP,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,UAAU,GAAG,SAAS,GAAG,qBAAqB,CAAC;AAEpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAErD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,IAAI,SAAS,CAK5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAC5C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,CAAC,CAAC,CA4CX"}
@@ -1,10 +1,11 @@
1
1
  import { ok, err } from "@kaumlaut/pure/result";
2
- import { withName } from "@kaumlaut/pure/runtime/effect";
2
+ import { withName, } from "@kaumlaut/pure/runtime/effect";
3
3
  export function isNotFound(error) {
4
4
  return isHttp(error) && error.code === 404;
5
5
  }
6
6
  export function isHttp(error) {
7
- return Object.keys(error).includes('message') && Object.keys(error).includes('code');
7
+ return (Object.keys(error).includes("message") &&
8
+ Object.keys(error).includes("code"));
8
9
  }
9
10
  export function isClient(error) {
10
11
  return isHttp(error) && error.code > 399 && error.code < 500;
@@ -13,7 +14,7 @@ export function isServer(error) {
13
14
  return isHttp(error) && error.code > 499;
14
15
  }
15
16
  export function fetchJson(url, headers, method, guard, receiver) {
16
- return withName('fetchJson', async () => {
17
+ return withName("fetchJson", async () => {
17
18
  try {
18
19
  const result = await fetch(url, {
19
20
  method,
@@ -26,7 +27,7 @@ export function fetchJson(url, headers, method, guard, receiver) {
26
27
  }
27
28
  else {
28
29
  return receiver(err({
29
- message: 'Malformed Payload. Your Guard does not pass.',
30
+ message: "Malformed Payload. Your Guard does not pass.",
30
31
  }));
31
32
  }
32
33
  }
@@ -38,10 +39,12 @@ export function fetchJson(url, headers, method, guard, receiver) {
38
39
  }
39
40
  catch (e) {
40
41
  return receiver(err({
41
- message: 'Malformed Payload. Invalid JSON.',
42
+ message: "Malformed Payload. Invalid JSON.",
42
43
  }));
43
44
  }
44
45
  }, {
45
46
  url,
47
+ headers,
48
+ method,
46
49
  });
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;AAC7D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI,MAAM,CAAC,CAAA;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,IAAI,CAAA;AACnC,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AACjD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IACpC,WAAW,CAAC,CAAC,CAAC,GACd,UAAU,CAAC,CAAC,CAAC,GACb,UAAU,GACV,eAAe,CAAA;AACnB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI;IACtC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,IAAI,GAAE,MAAM,GAAG,IAAW,GACzB,MAAM,CAAC,CAAC,CAAC,CAMX;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC;AACpC,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IACpC,WAAW,CAAC,CAAC,CAAC,GACd,UAAU,CAAC,CAAC,CAAC,GACb,UAAU,GACV,eAAe,CAAC;AACpB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI;IACtC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,IAAI,GAAE,MAAM,GAAG,IAAW,GACzB,MAAM,CAAC,CAAC,CAAC,CAMX;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/effect/none/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,+BAA+B,CAAA;AAEhE,wBAAgB,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAIlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/effect/none/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,+BAA+B,CAAC;AAGjE,wBAAgB,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAIlC"}
@@ -1,6 +1,7 @@
1
1
  import { withName } from "@kaumlaut/pure/runtime/effect";
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
3
  export function none() {
3
- return withName('none', () => {
4
+ return withName("none", () => {
4
5
  return null;
5
6
  });
6
7
  }
@@ -1,6 +1,6 @@
1
- import { Effect } from '@kaumlaut/pure/runtime/effect';
2
- import { Cloneable } from '../clone';
3
- import { Maybe } from '../maybe';
1
+ import { Effect } from "@kaumlaut/pure/runtime/effect";
2
+ import { Cloneable } from "../clone";
3
+ import { Maybe } from "../maybe";
4
4
  export type Message<N extends string = string, T = any> = {
5
5
  value: T;
6
6
  name: N;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI;IACxD,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,IAAI,CAC3E,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,aAAa,KACf,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAEnC,MAAM,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAE3I,MAAM,MAAM,MAAM,CAAC,aAAa,SAAS,OAAO,EAAE,KAAK,IAAI;IACzD,aAAa,GAAG,IAAI;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KACpB,GAAG,IAAI;CACT,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,aAAa,SAAS,OAAO,EAAE,KAAK,SAAS,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAA;AAE5G,wBAAgB,EAAE,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACnE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,aAAa,CAE1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI;IACxD,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,IAAI,CAC3E,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,aAAa,KACf,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,IAAI,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,IAAI,CACzE,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,KACzB,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,MAAM,CAAC,aAAa,SAAS,OAAO,EAAE,KAAK,IAAI;IACzD,aAAa,GAAG,IAAI;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,GAAG,IAAI;CACT,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,aAAa,SAAS,OAAO,EAC7B,KAAK,SAAS,SAAS,IACrB,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;AAEnC,wBAAgB,EAAE,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACnE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,aAAa,CAE1B"}
@@ -1,7 +1,7 @@
1
- import { Init, Message } from '@kaumlaut/pure/runtime';
2
- import { Guard } from '@kaumlaut/pure/guard';
3
- import { Result } from '@kaumlaut/pure/result';
4
- import { Cloneable } from '@kaumlaut/pure/clone';
1
+ import { Init, Message } from "@kaumlaut/pure/runtime";
2
+ import { Guard } from "@kaumlaut/pure/guard";
3
+ import { Result } from "@kaumlaut/pure/result";
4
+ import { Cloneable } from "@kaumlaut/pure/clone";
5
5
  export type Persistence<Model extends Cloneable, CustomMessage extends Message> = {
6
6
  persist(model: Model): void;
7
7
  read(guard: Guard<Model>, init: Init<Model, CustomMessage>): Result<Model, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/persistence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,IAAI;IAChF,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CACnF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/persistence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,MAAM,WAAW,CACrB,KAAK,SAAS,SAAS,EACvB,aAAa,SAAS,OAAO,IAC3B;IACF,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,IAAI,CACF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EACnB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,GAC/B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC1B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Message } from '@kaumlaut/pure/runtime';
2
- import { Persistence } from '@kaumlaut/pure/runtime/persistence';
3
- import { Cloneable } from '@kaumlaut/pure/clone';
1
+ import { Message } from "@kaumlaut/pure/runtime";
2
+ import { Persistence } from "@kaumlaut/pure/runtime/persistence";
3
+ import { Cloneable } from "@kaumlaut/pure/clone";
4
4
  export declare const noPersistence: <Model extends Cloneable, CustomMessage extends Message>() => Persistence<Model, CustomMessage>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/persistence/none/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGhD,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,EAAE,aAAa,SAAS,OAAO,OAAK,WAAW,CAClG,KAAK,EACL,aAAa,CAOb,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/persistence/none/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,aAAa,GACxB,KAAK,SAAS,SAAS,EACvB,aAAa,SAAS,OAAO,OAC1B,WAAW,CAAC,KAAK,EAAE,aAAa,CASnC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { ok } from '@kaumlaut/pure/result';
2
- import { nothing } from '@kaumlaut/pure/maybe';
1
+ import { ok } from "@kaumlaut/pure/result";
2
+ import { nothing } from "@kaumlaut/pure/maybe";
3
3
  export const noPersistence = () => ({
4
4
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
5
  persist(model) { },
@@ -0,0 +1,5 @@
1
+ import { Persistence } from "@kaumlaut/pure/runtime/persistence";
2
+ import { Message } from "@kaumlaut/pure/runtime";
3
+ import { Cloneable } from "@kaumlaut/pure/clone";
4
+ export declare const storagePersistence: <Model extends Cloneable, CustomMessage extends Message>(name: string, storage: Storage) => Persistence<Model, CustomMessage>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/persistence/storage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAQ,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,eAAO,MAAM,kBAAkB,GAC7B,KAAK,SAAS,SAAS,EACvB,aAAa,SAAS,OAAO,EAE7B,MAAM,MAAM,EACZ,SAAS,OAAO,KACf,WAAW,CAAC,KAAK,EAAE,aAAa,CA2BjC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ok, err } from "@kaumlaut/pure/result";
2
+ import { just, nothing } from "@kaumlaut/pure/maybe";
3
+ export const storagePersistence = (name, storage) => ({
4
+ persist(model) {
5
+ storage.setItem(name, btoa(JSON.stringify(model)));
6
+ },
7
+ read(guard, init) {
8
+ const record = storage.getItem(name);
9
+ if (record === null) {
10
+ return ok(init(nothing())[0]);
11
+ }
12
+ try {
13
+ const json = atob(record);
14
+ const model = JSON.parse(json);
15
+ if (guard(model)) {
16
+ return ok(init(just(model))[0]);
17
+ }
18
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
+ }
20
+ catch (e) {
21
+ return err("Could not decode stored model");
22
+ }
23
+ return err("Your guard did not match the retrieved model");
24
+ },
25
+ });
@@ -0,0 +1,2 @@
1
+ export declare function id<T>(value: T): T;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEjC"}
@@ -0,0 +1,3 @@
1
+ export function id(value) {
2
+ return value;
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaumlaut/pure",
3
- "version": "0.1.17",
3
+ "version": "0.1.18",
4
4
  "description": "Types and functions for a state runtime inspired by Elm and functional programming",
5
5
  "author": "Max Kaemmerer",
6
6
  "license": "MIT",
@@ -16,6 +16,8 @@
16
16
  "scripts": {
17
17
  "build": "tsc",
18
18
  "docs": "typedoc",
19
+ "lint": "eslint -c eslint.config.js --fix",
20
+ "format": "prettier . --write",
19
21
  "test": "vitest",
20
22
  "release": "npm run build && npm publish --access public"
21
23
  },
@@ -24,9 +26,15 @@
24
26
  ],
25
27
  "type": "module",
26
28
  "devDependencies": {
29
+ "@eslint/js": "^9.22.0",
30
+ "@types/node": "^22.13.10",
31
+ "eslint": "^9.22.0",
32
+ "globals": "^16.0.0",
33
+ "prettier": "3.5.3",
27
34
  "typedoc": "^0.27.9",
28
35
  "typedoc-plugin-markdown": "^4.4.2",
29
36
  "typescript": "^5.8.2",
37
+ "typescript-eslint": "^8.26.1",
30
38
  "vitest": "^3.0.8"
31
39
  }
32
40
  }