@tempots/std 0.10.5 → 0.10.6

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.
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u={idle:{type:"idle"},loading:{type:"loading"},success(e){return{type:"success",value:e}},failure(e){return{type:"failure",error:e}},isSuccess(e){return e.type==="success"},isFailure(e){return e.type==="failure"},isIdle(e){return e.type==="idle"},isLoading(e){return e.type==="loading"},getOrElse(e,s){return u.isSuccess(e)?e.value:s},getOrElseLazy(e,s){return u.isSuccess(e)?e.value:s()},getOrNull(e){return u.isSuccess(e)?e.value:null},getOrUndefined(e){return u.isSuccess(e)?e.value:void 0},cmatch:(e,s,t,i=t)=>r=>u.isSuccess(r)?e(r.value):u.isFailure(r)?s(r.error):u.isIdle(r)?i():t(),match:(e,s,t,i,r=i)=>u.isSuccess(e)?s(e.value):u.isFailure(e)?t(e.error):u.isIdle(e)?r():i(),whenSuccess:e=>s=>(u.isSuccess(s)&&e(s.value),s),whenFailure:e=>s=>(u.isFailure(s)&&e(s.error),s)};exports.AsyncResult=u;
@@ -0,0 +1,37 @@
1
+ export interface Idle {
2
+ type: 'idle';
3
+ }
4
+ export interface Loading {
5
+ type: 'loading';
6
+ }
7
+ export interface Success<V> {
8
+ type: 'success';
9
+ value: V;
10
+ }
11
+ export interface Failure<E> {
12
+ type: 'failure';
13
+ error: E;
14
+ }
15
+ export type AsyncResult<V, E> = Idle | Loading | Success<V> | Failure<E>;
16
+ export declare const AsyncResult: {
17
+ idle: {
18
+ type: "idle";
19
+ };
20
+ loading: {
21
+ type: "loading";
22
+ };
23
+ success<V>(value: V): AsyncResult<V, never>;
24
+ failure<E>(error: E): AsyncResult<never, E>;
25
+ isSuccess<V, E>(r: AsyncResult<V, E>): r is Success<V>;
26
+ isFailure<V, E>(r: AsyncResult<V, E>): r is Failure<E>;
27
+ isIdle<V, E>(r: AsyncResult<V, E>): r is Idle;
28
+ isLoading<V, E>(r: AsyncResult<V, E>): r is Loading;
29
+ getOrElse<V, E>(r: AsyncResult<V, E>, alt: V): V;
30
+ getOrElseLazy<V, E>(r: AsyncResult<V, E>, altf: () => V): V;
31
+ getOrNull<V, E>(r: AsyncResult<V, E>): V | null;
32
+ getOrUndefined<V, E>(r: AsyncResult<V, E>): V | undefined;
33
+ cmatch: <V1, V2, E>(success: (value: V1) => V2, failure: (error: E) => V2, loading: () => V2, idle?: () => V2) => (r: AsyncResult<V1, E>) => V2;
34
+ match: <V1, V2, E>(r: AsyncResult<V1, E>, success: (value: V1) => V2, failure: (error: E) => V2, loading: () => V2, idle?: () => V2) => V2;
35
+ whenSuccess: <V, E>(apply: (v: V) => void) => (r: AsyncResult<V, E>) => AsyncResult<V, E>;
36
+ whenFailure: <V, E>(apply: (e: E) => void) => (r: AsyncResult<V, E>) => AsyncResult<V, E>;
37
+ };
@@ -0,0 +1,41 @@
1
+ const u = {
2
+ idle: { type: "idle" },
3
+ loading: { type: "loading" },
4
+ success(e) {
5
+ return { type: "success", value: e };
6
+ },
7
+ failure(e) {
8
+ return { type: "failure", error: e };
9
+ },
10
+ isSuccess(e) {
11
+ return e.type === "success";
12
+ },
13
+ isFailure(e) {
14
+ return e.type === "failure";
15
+ },
16
+ isIdle(e) {
17
+ return e.type === "idle";
18
+ },
19
+ isLoading(e) {
20
+ return e.type === "loading";
21
+ },
22
+ getOrElse(e, s) {
23
+ return u.isSuccess(e) ? e.value : s;
24
+ },
25
+ getOrElseLazy(e, s) {
26
+ return u.isSuccess(e) ? e.value : s();
27
+ },
28
+ getOrNull(e) {
29
+ return u.isSuccess(e) ? e.value : null;
30
+ },
31
+ getOrUndefined(e) {
32
+ return u.isSuccess(e) ? e.value : void 0;
33
+ },
34
+ cmatch: (e, s, i, t = i) => (r) => u.isSuccess(r) ? e(r.value) : u.isFailure(r) ? s(r.error) : u.isIdle(r) ? t() : i(),
35
+ match: (e, s, i, t, r = t) => u.isSuccess(e) ? s(e.value) : u.isFailure(e) ? i(e.error) : u.isIdle(e) ? r() : t(),
36
+ whenSuccess: (e) => (s) => (u.isSuccess(s) && e(s.value), s),
37
+ whenFailure: (e) => (s) => (u.isFailure(s) && e(s.error), s)
38
+ };
39
+ export {
40
+ u as AsyncResult
41
+ };
package/function.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function u(...r){return t=>r.reduce((e,n)=>n(e),t)}function i(r){return r}function c(r){return t=>(...e)=>r(t,...e)}function o(r){return(...t)=>e=>r(...t.concat([e]))}function f(r){return(...t)=>r(...t.reverse())}function y(r){return r}exports.compose=u;exports.curryLeft=c;exports.curryRight=o;exports.flip=f;exports.id=y;exports.identity=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function i(...e){return r=>e.reduce((t,n)=>n(t),r)}function u(e){return e}function o(e){return r=>(...t)=>e(r,...t)}function c(e){return(...r)=>t=>e(...r.concat([t]))}function f(e){return(...r)=>e(...r.reverse())}function d(e){return e}function y(e){let r;return()=>(r===void 0&&(r=e()),r)}exports.compose=i;exports.curryLeft=o;exports.curryRight=c;exports.flip=f;exports.id=d;exports.identity=u;exports.memoize=y;
package/function.d.ts CHANGED
@@ -18,3 +18,4 @@ export declare function flip<A, B, C, D, E>(f: (a: A, b: B, c: C, d: D) => E): (
18
18
  export declare function flip<A, B, C, D, E, F>(f: (a: A, b: B, c: C, d: D, e: E) => F): (e: E, d: D, c: C, b: B, a: A) => F;
19
19
  export declare function flip<A, B, C, D, E, F, G>(f: (a: A, b: B, c: C, d: D, e: E, f: F) => G): (f: F, e: E, d: D, c: C, b: B, a: A) => G;
20
20
  export declare function id<T>(v: T): T;
21
+ export declare function memoize<T>(f: () => NonNullable<T>): () => NonNullable<T>;
package/function.js CHANGED
@@ -1,10 +1,10 @@
1
1
  function u(...n) {
2
2
  return (r) => n.reduce((t, e) => e(t), r);
3
3
  }
4
- function c(n) {
4
+ function i(n) {
5
5
  return n;
6
6
  }
7
- function i(n) {
7
+ function c(n) {
8
8
  return (r) => (...t) => n(r, ...t);
9
9
  }
10
10
  function o(n) {
@@ -19,11 +19,16 @@ function f(n) {
19
19
  function d(n) {
20
20
  return n;
21
21
  }
22
+ function l(n) {
23
+ let r;
24
+ return () => (r === void 0 && (r = n()), r);
25
+ }
22
26
  export {
23
27
  u as compose,
24
- i as curryLeft,
28
+ c as curryLeft,
25
29
  o as curryRight,
26
30
  f as flip,
27
31
  d as id,
28
- c as identity
32
+ i as identity,
33
+ l as memoize
29
34
  };
package/json.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";
package/json.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export type JSONPrimitive = string | boolean | number | null | undefined;
2
+ export interface JSONObject {
3
+ [k: string]: JSONValue;
4
+ }
5
+ export type JSONArray = JSONValue[];
6
+ export type JSONValue = JSONPrimitive | JSONObject | JSONArray;
package/json.js ADDED
@@ -0,0 +1 @@
1
+
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@tempots/std",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./array": {
7
7
  "import": "./array.js",
8
8
  "require": "./array.cjs"
9
9
  },
10
+ "./async-result": {
11
+ "import": "./async-result.js",
12
+ "require": "./async-result.cjs"
13
+ },
10
14
  "./bigint": {
11
15
  "import": "./bigint.js",
12
16
  "require": "./bigint.cjs"
@@ -31,6 +35,10 @@
31
35
  "import": "./index.js",
32
36
  "require": "./index.cjs"
33
37
  },
38
+ "./json": {
39
+ "import": "./json.js",
40
+ "require": "./json.cjs"
41
+ },
34
42
  "./maybe": {
35
43
  "import": "./maybe.js",
36
44
  "require": "./maybe.cjs"
@@ -47,9 +55,17 @@
47
55
  "import": "./regexp.js",
48
56
  "require": "./regexp.cjs"
49
57
  },
58
+ "./result": {
59
+ "import": "./result.js",
60
+ "require": "./result.cjs"
61
+ },
50
62
  "./string": {
51
63
  "import": "./string.js",
52
64
  "require": "./string.cjs"
65
+ },
66
+ "./validation": {
67
+ "import": "./validation.js",
68
+ "require": "./validation.cjs"
53
69
  }
54
70
  },
55
71
  "license": "Apache-2.0",
@@ -66,6 +82,9 @@
66
82
  "array": [
67
83
  "./array.d.ts"
68
84
  ],
85
+ "async-result": [
86
+ "./async-result.d.ts"
87
+ ],
69
88
  "bigint": [
70
89
  "./bigint.d.ts"
71
90
  ],
@@ -84,6 +103,9 @@
84
103
  "index": [
85
104
  "./index.d.ts"
86
105
  ],
106
+ "json": [
107
+ "./json.d.ts"
108
+ ],
87
109
  "maybe": [
88
110
  "./maybe.d.ts"
89
111
  ],
@@ -96,8 +118,14 @@
96
118
  "regexp": [
97
119
  "./regexp.d.ts"
98
120
  ],
121
+ "result": [
122
+ "./result.d.ts"
123
+ ],
99
124
  "string": [
100
125
  "./string.d.ts"
126
+ ],
127
+ "validation": [
128
+ "./validation.d.ts"
101
129
  ]
102
130
  }
103
131
  }
package/result.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u={success(e){return{type:"success",value:e}},failure(e){return{type:"failure",error:e}},cmap:e=>s=>s.type==="success"?u.success(e(s.value)):s,map:(e,s)=>e.type==="success"?u.success(s(e.value)):e,cflatMap:e=>s=>s.type==="success"?e(s.value):s,flatMap:(e,s)=>e.type==="success"?s(e.value):e,toAsync(e){return e},isSuccess(e){return e.type==="success"},isFailure(e){return e.type==="failure"},getOrElse(e,s){return u.isSuccess(e)?e.value:s},getOrElseLazy(e,s){return u.isSuccess(e)?e.value:s()},getOrNull(e){return u.isSuccess(e)?e.value:null},getOrUndefined(e){return u.isSuccess(e)?e.value:void 0},cmatch:(e,s)=>t=>u.isSuccess(t)?e(t.value):s(t.error),match:(e,s,t)=>u.isSuccess(e)?s(e.value):t(e.error),whenSuccess:e=>s=>(u.isSuccess(s)&&e(s.value),s),whenFailure:e=>s=>(u.isFailure(s)&&e(s.error),s),combine:(e,s,t,l)=>u.match(e,r=>u.match(s,c=>u.success(t(r,c)),c=>u.failure(c)),r=>u.match(s,c=>u.failure(r),c=>u.failure(l(r,c))))};exports.Result=u;
package/result.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { AsyncResult } from './async-result';
2
+
3
+ export interface Success<V> {
4
+ type: 'success';
5
+ value: V;
6
+ }
7
+ export interface Failure<E> {
8
+ type: 'failure';
9
+ error: E;
10
+ }
11
+ export type Result<V, E> = Success<V> | Failure<E>;
12
+ export type PromiseResult<V, E> = PromiseLike<Result<V, E>>;
13
+ export declare const Result: {
14
+ success<V>(value: V): Result<V, any>;
15
+ failure<E>(error: E): Result<any, E>;
16
+ cmap: <V1, V2, E>(f: (value: V1) => V2) => (r: Result<V1, E>) => Result<V2, E>;
17
+ map: <V1, V2, E>(r: Result<V1, E>, f: (value: V1) => V2) => Result<V2, E>;
18
+ cflatMap: <V1, V2, E>(f: (value: V1) => Result<V2, E>) => (r: Result<V1, E>) => Result<V2, E>;
19
+ flatMap: <V1, V2, E>(r: Result<V1, E>, f: (value: V1) => Result<V2, E>) => Result<V2, E>;
20
+ toAsync<V, E>(r: Result<V, E>): AsyncResult<V, E>;
21
+ isSuccess<V, E>(r: Result<V, E>): r is Success<V>;
22
+ isFailure<V, E>(r: Result<V, E>): r is Failure<E>;
23
+ getOrElse<V, E>(r: Result<V, E>, alt: V): V;
24
+ getOrElseLazy<V, E>(r: Result<V, E>, altf: () => V): V;
25
+ getOrNull<V, E>(r: Result<V, E>): V | null;
26
+ getOrUndefined<V, E>(r: Result<V, E>): V | undefined;
27
+ cmatch: <V1, V2, E>(success: (value: V1) => V2, failure: (error: E) => V2) => (r: Result<V1, E>) => V2;
28
+ match: <V1, V2, E>(r: Result<V1, E>, success: (value: V1) => V2, failure: (error: E) => V2) => V2;
29
+ whenSuccess: <V, E>(apply: (v: V) => void) => (r: Result<V, E>) => Result<V, E>;
30
+ whenFailure: <V, E>(apply: (e: E) => void) => (r: Result<V, E>) => Result<V, E>;
31
+ combine: <V, E>(r1: Result<V, E>, r2: Result<V, E>, combineV: (v1: V, v2: V) => V, combineE: (e1: E, e2: E) => E) => Result<V, E>;
32
+ };
package/result.js ADDED
@@ -0,0 +1,56 @@
1
+ const u = {
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ success(e) {
4
+ return { type: "success", value: e };
5
+ },
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ failure(e) {
8
+ return { type: "failure", error: e };
9
+ },
10
+ cmap: (e) => (s) => s.type === "success" ? u.success(e(s.value)) : s,
11
+ map: (e, s) => e.type === "success" ? u.success(s(e.value)) : e,
12
+ cflatMap: (e) => (s) => s.type === "success" ? e(s.value) : s,
13
+ flatMap: (e, s) => e.type === "success" ? s(e.value) : e,
14
+ toAsync(e) {
15
+ return e;
16
+ },
17
+ isSuccess(e) {
18
+ return e.type === "success";
19
+ },
20
+ isFailure(e) {
21
+ return e.type === "failure";
22
+ },
23
+ getOrElse(e, s) {
24
+ return u.isSuccess(e) ? e.value : s;
25
+ },
26
+ getOrElseLazy(e, s) {
27
+ return u.isSuccess(e) ? e.value : s();
28
+ },
29
+ getOrNull(e) {
30
+ return u.isSuccess(e) ? e.value : null;
31
+ },
32
+ getOrUndefined(e) {
33
+ return u.isSuccess(e) ? e.value : void 0;
34
+ },
35
+ cmatch: (e, s) => (c) => u.isSuccess(c) ? e(c.value) : s(c.error),
36
+ match: (e, s, c) => u.isSuccess(e) ? s(e.value) : c(e.error),
37
+ whenSuccess: (e) => (s) => (u.isSuccess(s) && e(s.value), s),
38
+ whenFailure: (e) => (s) => (u.isFailure(s) && e(s.error), s),
39
+ combine: (e, s, c, l) => u.match(
40
+ e,
41
+ (t) => u.match(
42
+ s,
43
+ (r) => u.success(c(t, r)),
44
+ (r) => u.failure(r)
45
+ ),
46
+ (t) => u.match(
47
+ s,
48
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
+ (r) => u.failure(t),
50
+ (r) => u.failure(l(t, r))
51
+ )
52
+ )
53
+ };
54
+ export {
55
+ u as Result
56
+ };
package/validation.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./result.cjs"),t={valid:{type:"valid"},invalid(e){return{type:"invalid",error:e}},isValid(e){return e.type==="valid"},isInvalid(e){return e.type==="invalid"},cmatch:(e,i)=>r=>t.isValid(r)?e():i(r.error),match:(e,i,r)=>t.isValid(e)?i():r(e.error),toResult:e=>t.cmatch(()=>l.Result.success(e),i=>l.Result.failure(i)),whenValid:e=>i=>(t.isValid(i)&&e(),i),whenInvalid:e=>i=>(t.isInvalid(i)&&e(i.error),i)};exports.Validation=t;
@@ -0,0 +1,24 @@
1
+ import { Result } from './result';
2
+
3
+ export interface Valid {
4
+ type: 'valid';
5
+ }
6
+ export interface Invalid<E> {
7
+ type: 'invalid';
8
+ error: E;
9
+ }
10
+ export type Validation<E> = Valid | Invalid<E>;
11
+ export type PromiseValidation<E> = PromiseLike<Validation<E>>;
12
+ export declare const Validation: {
13
+ valid: {
14
+ type: "valid";
15
+ };
16
+ invalid<E>(error: E): Validation<E>;
17
+ isValid<E>(r: Validation<E>): r is Valid;
18
+ isInvalid<E>(r: Validation<E>): r is Invalid<E>;
19
+ cmatch: <V, E>(valid: () => V, invalid: (error: E) => V) => (r: Validation<E>) => V;
20
+ match: <V, E>(r: Validation<E>, valid: () => V, invalid: (error: E) => V) => V;
21
+ toResult: <T, E>(value: T) => ((validation: Validation<E>) => Result<T, E>);
22
+ whenValid: <E>(apply: () => void) => (r: Validation<E>) => Validation<E>;
23
+ whenInvalid: <E>(apply: (e: E) => void) => (r: Validation<E>) => Validation<E>;
24
+ };
package/validation.js ADDED
@@ -0,0 +1,25 @@
1
+ import { Result as a } from "./result.js";
2
+ const r = {
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ valid: { type: "valid" },
5
+ invalid(i) {
6
+ return { type: "invalid", error: i };
7
+ },
8
+ isValid(i) {
9
+ return i.type === "valid";
10
+ },
11
+ isInvalid(i) {
12
+ return i.type === "invalid";
13
+ },
14
+ cmatch: (i, e) => (t) => r.isValid(t) ? i() : e(t.error),
15
+ match: (i, e, t) => r.isValid(i) ? e() : t(i.error),
16
+ toResult: (i) => r.cmatch(
17
+ () => a.success(i),
18
+ (e) => a.failure(e)
19
+ ),
20
+ whenValid: (i) => (e) => (r.isValid(e) && i(), e),
21
+ whenInvalid: (i) => (e) => (r.isInvalid(e) && i(e.error), e)
22
+ };
23
+ export {
24
+ r as Validation
25
+ };