@tslite/operators 0.4.4 → 1.0.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/dist/index.cjs +39 -31
- package/dist/index.js +39 -31
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
'use strict';var parser=require('@tslite/parser');var p=n=>{let e=parser.parse(n),t={};for(let r of e.body)r.type==="TSTypeAliasDeclaration"&&r.id?.name&&r.typeAnnotation&&(t[r.id.name]=
|
|
1
|
+
'use strict';var parser=require('@tslite/parser');var p=n=>{let e=parser.parse(n),t={};for(let r of e.body)r.type==="TSTypeAliasDeclaration"&&r.id?.name&&r.typeAnnotation&&(t[r.id.name]=x(r.typeAnnotation,r.typeParameters));return t};function x(n,e){return e?.length?n.t==="fn"?{...n,typeParams:e}:n.t==="overload"?{...n,signatures:n.signatures.map(t=>({...t,typeParams:e}))}:n:n}var u=`
|
|
2
2
|
type identity<T> = (x: T) => T;
|
|
3
|
-
type
|
|
3
|
+
type constant<T> = (value: T) => () => T;
|
|
4
4
|
type tap<T> = {
|
|
5
5
|
(fn: (x: T) => unknown): (x: T) => T;
|
|
6
6
|
(fn: (x: T) => unknown, x: T): T;
|
|
7
7
|
};
|
|
8
|
-
`;var
|
|
8
|
+
`;var T=`
|
|
9
9
|
type prop<T, K extends keyof T> = {
|
|
10
10
|
(key: K): (obj: T) => T[K];
|
|
11
11
|
(key: K, obj: T): T[K];
|
|
@@ -34,7 +34,7 @@ type omit<T> = {
|
|
|
34
34
|
(keys: string[]): (obj: T) => T;
|
|
35
35
|
(keys: string[], obj: T): T;
|
|
36
36
|
};
|
|
37
|
-
type
|
|
37
|
+
type set<T, V> = {
|
|
38
38
|
(key: string, value: V): (obj: T) => T;
|
|
39
39
|
(key: string, value: V, obj: T): T;
|
|
40
40
|
};
|
|
@@ -46,7 +46,7 @@ type keys<T> = (obj: T) => (keyof T)[];
|
|
|
46
46
|
type values<T> = (obj: T) => T[keyof T][];
|
|
47
47
|
type entries<T> = (obj: T) => [keyof T, T[keyof T]][];
|
|
48
48
|
type fromEntries<V> = (pairs: [string, V][]) => { [k: string]: V };
|
|
49
|
-
type
|
|
49
|
+
type hasOwn<T> = {
|
|
50
50
|
(key: string): (obj: T) => boolean;
|
|
51
51
|
(key: string, obj: T): boolean;
|
|
52
52
|
};
|
|
@@ -60,24 +60,28 @@ type evolve<T> = {
|
|
|
60
60
|
};
|
|
61
61
|
`;var c=`
|
|
62
62
|
type map<T, U> = {
|
|
63
|
-
(fn: (item: T) => U): (list: T[]) => U[];
|
|
64
|
-
(fn: (item: T) => U, list: T[]): U[];
|
|
63
|
+
(fn: (item: T, index: number) => U): (list: T[]) => U[];
|
|
64
|
+
(fn: (item: T, index: number) => U, list: T[]): U[];
|
|
65
65
|
};
|
|
66
|
-
type filter<T> = {
|
|
67
|
-
(pred: (item: T) =>
|
|
68
|
-
(pred: (item: T) =>
|
|
66
|
+
type filter<T, S extends T> = {
|
|
67
|
+
(pred: (item: T, index: number) => item is S): (list: T[]) => S[];
|
|
68
|
+
(pred: (item: T, index: number) => item is S, list: T[]): S[];
|
|
69
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T[];
|
|
70
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T[];
|
|
69
71
|
};
|
|
70
72
|
type reject<T> = {
|
|
71
|
-
(pred: (item: T) => boolean): (list: T[]) => T[];
|
|
72
|
-
(pred: (item: T) => boolean, list: T[]): T[];
|
|
73
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T[];
|
|
74
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T[];
|
|
73
75
|
};
|
|
74
|
-
type find<T> = {
|
|
75
|
-
(pred: (item: T) =>
|
|
76
|
-
(pred: (item: T) =>
|
|
76
|
+
type find<T, S extends T> = {
|
|
77
|
+
(pred: (item: T, index: number) => item is S): (list: T[]) => S | undefined;
|
|
78
|
+
(pred: (item: T, index: number) => item is S, list: T[]): S | undefined;
|
|
79
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T | undefined;
|
|
80
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T | undefined;
|
|
77
81
|
};
|
|
78
82
|
type reduce<T, A> = {
|
|
79
|
-
(fn: (acc: A, item: T) => A, init: A): (list: T[]) => A;
|
|
80
|
-
(fn: (acc: A, item: T) => A, init: A, list: T[]): A;
|
|
83
|
+
(fn: (acc: A, item: T, index: number) => A, init: A): (list: T[]) => A;
|
|
84
|
+
(fn: (acc: A, item: T, index: number) => A, init: A, list: T[]): A;
|
|
81
85
|
};
|
|
82
86
|
type pluck<T, K extends keyof T> = {
|
|
83
87
|
(key: K): (list: T[]) => T[K][];
|
|
@@ -91,7 +95,7 @@ type groupBy<T> = {
|
|
|
91
95
|
(fn: (item: T) => string): (list: T[]) => { [k: string]: T[] };
|
|
92
96
|
(fn: (item: T) => string, list: T[]): { [k: string]: T[] };
|
|
93
97
|
};
|
|
94
|
-
type
|
|
98
|
+
type uniqueBy<T, U> = {
|
|
95
99
|
(fn: (item: T) => U): (list: T[]) => T[];
|
|
96
100
|
(fn: (item: T) => U, list: T[]): T[];
|
|
97
101
|
};
|
|
@@ -99,22 +103,26 @@ type sortBy<T, U> = {
|
|
|
99
103
|
(fn: (item: T) => U): (list: T[]) => T[];
|
|
100
104
|
(fn: (item: T) => U, list: T[]): T[];
|
|
101
105
|
};
|
|
102
|
-
type
|
|
106
|
+
type flat<T> = {
|
|
107
|
+
(list: T[][]): T[];
|
|
108
|
+
(depth: number): (list: unknown[]) => unknown[];
|
|
109
|
+
(depth: number, list: unknown[]): unknown[];
|
|
110
|
+
};
|
|
103
111
|
type includes<T> = {
|
|
104
112
|
(value: T): (list: T[]) => boolean;
|
|
105
113
|
(value: T, list: T[]): boolean;
|
|
106
114
|
};
|
|
107
115
|
type some<T> = {
|
|
108
|
-
(pred: (item: T) => boolean): (list: T[]) => boolean;
|
|
109
|
-
(pred: (item: T) => boolean, list: T[]): boolean;
|
|
116
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => boolean;
|
|
117
|
+
(pred: (item: T, index: number) => boolean, list: T[]): boolean;
|
|
110
118
|
};
|
|
111
119
|
type length<T> = {
|
|
112
120
|
(str: string): number;
|
|
113
121
|
(list: T[]): number;
|
|
114
122
|
};
|
|
115
123
|
type sum = (list: number[]) => number;
|
|
116
|
-
`;var
|
|
117
|
-
type
|
|
124
|
+
`;var d=`
|
|
125
|
+
type isDeepEqual<T> = {
|
|
118
126
|
(a: T): (b: T) => boolean;
|
|
119
127
|
(a: T, b: T): boolean;
|
|
120
128
|
};
|
|
@@ -122,7 +130,7 @@ type propEq = {
|
|
|
122
130
|
(key: string, value: unknown): (obj: unknown) => boolean;
|
|
123
131
|
(key: string, value: unknown, obj: unknown): boolean;
|
|
124
132
|
};
|
|
125
|
-
type
|
|
133
|
+
type hasSubObject = {
|
|
126
134
|
(spec: { [k: string]: unknown }): (obj: unknown) => boolean;
|
|
127
135
|
(spec: { [k: string]: unknown }, obj: unknown): boolean;
|
|
128
136
|
};
|
|
@@ -144,11 +152,11 @@ type defaultTo<T> = {
|
|
|
144
152
|
(def: T): (value: T) => T;
|
|
145
153
|
(def: T, value: T): T;
|
|
146
154
|
};
|
|
147
|
-
type
|
|
155
|
+
type isNullish = (value: unknown) => value is null | undefined;
|
|
148
156
|
type isEmpty = (value: unknown) => boolean;
|
|
149
|
-
`;var
|
|
150
|
-
type
|
|
151
|
-
type
|
|
157
|
+
`;var f=`
|
|
158
|
+
type toUpperCase = (str: string) => string;
|
|
159
|
+
type toLowerCase = (str: string) => string;
|
|
152
160
|
type trim = (str: string) => string;
|
|
153
161
|
type split = {
|
|
154
162
|
(sep: string): (str: string) => string[];
|
|
@@ -162,11 +170,11 @@ type template = {
|
|
|
162
170
|
(tpl: string): (data: unknown) => string;
|
|
163
171
|
(tpl: string, data: unknown): string;
|
|
164
172
|
};
|
|
165
|
-
`;var
|
|
173
|
+
`;var m=`
|
|
166
174
|
type toNumber = (value: unknown) => number;
|
|
167
175
|
type asString = (value: string | number | boolean | null | undefined) => string;
|
|
168
176
|
type toBoolean = (value: unknown) => boolean;
|
|
169
177
|
type parse = (text: string) => unknown;
|
|
170
178
|
type stringify = (value: unknown) => string;
|
|
171
|
-
`;var
|
|
172
|
-
`),
|
|
179
|
+
`;var g=[u,T,c,d,f,m].join(`
|
|
180
|
+
`),h=p(g);var o=(n,e)=>{let t=r=>r.length>=n?e(...r.slice(0,n)):(...i)=>t([...r,...i]);return (...r)=>t(r)},l=(n,e)=>{if(n===e)return true;if(n===null||e===null||typeof n!="object"||typeof e!="object")return n===e;if(Array.isArray(n)!==Array.isArray(e))return false;let r=Object.keys(n),i=Object.keys(e);return r.length!==i.length?false:r.every(y=>l(n[y],e[y]))},s=n=>n==null,j={identity:n=>n,constant:n=>()=>n,tap:o(2,(n,e)=>(n(e),e)),prop:o(2,(n,e)=>s(e)?void 0:e[n]),path:o(2,(n,e)=>n.reduce((t,r)=>s(t)?void 0:t[r],e)),propOr:o(3,(n,e,t)=>{let r=s(t)?void 0:t[e];return s(r)?n:r}),pathOr:o(3,(n,e,t)=>{let r=e.reduce((i,y)=>s(i)?void 0:i[y],t);return s(r)?n:r}),pick:o(2,(n,e)=>{let t={};if(!s(e))for(let r of n)r in e&&(t[r]=e[r]);return t}),omit:o(2,(n,e)=>{let t=new Set(n),r={};for(let i in e)t.has(i)||(r[i]=e[i]);return r}),set:o(3,(n,e,t)=>({...t,[n]:e})),merge:o(2,(n,e)=>({...n,...e})),keys:n=>Object.keys(n??{}),values:n=>Object.values(n??{}),entries:n=>Object.entries(n??{}),fromEntries:n=>Object.fromEntries(n),hasOwn:o(2,(n,e)=>!s(e)&&Object.prototype.hasOwnProperty.call(e,n)),applySpec:o(2,(n,e)=>{let t={};for(let r in n)t[r]=n[r](e);return t}),evolve:o(2,(n,e)=>{let t={...e};for(let r in n)r in t&&(t[r]=n[r](t[r]));return t}),map:o(2,(n,e)=>e.map((t,r)=>n(t,r))),filter:o(2,(n,e)=>e.filter((t,r)=>n(t,r))),reject:o(2,(n,e)=>e.filter((t,r)=>!n(t,r))),find:o(2,(n,e)=>e.find((t,r)=>n(t,r))),reduce:o(3,(n,e,t)=>t.reduce((r,i,y)=>n(r,i,y),e)),pluck:o(2,(n,e)=>e.map(t=>s(t)?void 0:t[n])),indexBy:o(2,(n,e)=>{let t={};for(let r of e)t[n(r)]=r;return t}),groupBy:o(2,(n,e)=>{var r;let t={};for(let i of e)(t[r=n(i)]??(t[r]=[])).push(i);return t}),uniqueBy:o(2,(n,e)=>{let t=new Set,r=[];for(let i of e){let y=n(i);t.has(y)||(t.add(y),r.push(i));}return r}),sortBy:o(2,(n,e)=>[...e].sort((t,r)=>{let i=n(t),y=n(r);return i<y?-1:i>y?1:0})),flat:(...n)=>n.length===1&&Array.isArray(n[0])?n[0].flat():o(2,(e,t)=>t.flat(e))(...n),includes:o(2,(n,e)=>e.some(t=>l(t,n))),some:o(2,(n,e)=>e.some((t,r)=>n(t,r))),length:n=>n.length,sum:n=>n.reduce((e,t)=>e+t,0),isDeepEqual:o(2,(n,e)=>l(n,e)),propEq:o(3,(n,e,t)=>!s(t)&&l(t[n],e)),hasSubObject:o(2,(n,e)=>{for(let t in n)if(s(e)||!l(e[t],n[t]))return false;return true}),ifElse:o(4,(n,e,t,r)=>n(r)?e(r):t(r)),when:o(3,(n,e,t)=>n(t)?e(t):t),cond:n=>e=>{for(let[t,r]of n)if(t(e))return r(e)},defaultTo:o(2,(n,e)=>s(e)||typeof e=="number"&&Number.isNaN(e)?n:e),isNullish:n=>s(n),isEmpty:n=>s(n)?true:typeof n=="string"||Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:false,toUpperCase:n=>n.toUpperCase(),toLowerCase:n=>n.toLowerCase(),trim:n=>n.trim(),split:o(2,(n,e)=>e.split(n)),join:o(2,(n,e)=>e.join(n)),template:o(2,(n,e)=>n.replace(/\{(\w+)\}/g,(t,r)=>{let i=s(e)?void 0:e[r];return s(i)?"":String(i)})),toNumber:n=>Number(n),asString:n=>String(n),toBoolean:n=>!!n,parse:n=>JSON.parse(n),stringify:n=>JSON.stringify(n)};var a=(n,e,t)=>({operator:n,on:e,call:t}),k={length:a("length","value",n=>`length(${n})`),map:a("map","array",(n,e)=>`map(${e[0]??"fn"}, ${n})`),filter:a("filter","array",(n,e)=>`filter(${e[0]??"fn"}, ${n})`),find:a("find","array",(n,e)=>`find(${e[0]??"fn"}, ${n})`),reduce:a("reduce","array",(n,e)=>`reduce(${e[0]??"fn"}, ${e[1]??"init"}, ${n})`),some:a("some","array",(n,e)=>`some(${e[0]??"fn"}, ${n})`),includes:a("includes","value",(n,e)=>`includes(${e[0]??"x"}, ${n})`),flat:a("flat","array",n=>`flat(${n})`),join:a("join","array",(n,e)=>`join(${e[0]??'", "'}, ${n})`),trim:a("trim","string",n=>`trim(${n})`),toUpperCase:a("toUpperCase","string",n=>`toUpperCase(${n})`),toLowerCase:a("toLowerCase","string",n=>`toLowerCase(${n})`),split:a("split","string",(n,e)=>`split(${e[0]??'","'}, ${n})`),toString:a("asString","value",n=>`asString(${n})`)},b=new Set(["push","pop","shift","unshift","splice","sort","reverse","slice","concat","indexOf","lastIndexOf","forEach","every","flatMap","fill","charAt","charCodeAt","substring","substr","replace","replaceAll","padStart","padEnd","startsWith","endsWith","repeat","at","keys","values","entries","hasOwnProperty","valueOf"]),S=n=>n in k||b.has(n);exports.isKnownProtoMember=S;exports.jsMethodReplacements=k;exports.knownProtoMembersWithoutOperator=b;exports.loadOperators=p;exports.vanilla=h;exports.vanillaRuntime=j;exports.vanillaSource=g;
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {parse}from'@tslite/parser';var p=n=>{let e=parse(n),t={};for(let r of e.body)r.type==="TSTypeAliasDeclaration"&&r.id?.name&&r.typeAnnotation&&(t[r.id.name]=
|
|
1
|
+
import {parse}from'@tslite/parser';var p=n=>{let e=parse(n),t={};for(let r of e.body)r.type==="TSTypeAliasDeclaration"&&r.id?.name&&r.typeAnnotation&&(t[r.id.name]=x(r.typeAnnotation,r.typeParameters));return t};function x(n,e){return e?.length?n.t==="fn"?{...n,typeParams:e}:n.t==="overload"?{...n,signatures:n.signatures.map(t=>({...t,typeParams:e}))}:n:n}var u=`
|
|
2
2
|
type identity<T> = (x: T) => T;
|
|
3
|
-
type
|
|
3
|
+
type constant<T> = (value: T) => () => T;
|
|
4
4
|
type tap<T> = {
|
|
5
5
|
(fn: (x: T) => unknown): (x: T) => T;
|
|
6
6
|
(fn: (x: T) => unknown, x: T): T;
|
|
7
7
|
};
|
|
8
|
-
`;var
|
|
8
|
+
`;var T=`
|
|
9
9
|
type prop<T, K extends keyof T> = {
|
|
10
10
|
(key: K): (obj: T) => T[K];
|
|
11
11
|
(key: K, obj: T): T[K];
|
|
@@ -34,7 +34,7 @@ type omit<T> = {
|
|
|
34
34
|
(keys: string[]): (obj: T) => T;
|
|
35
35
|
(keys: string[], obj: T): T;
|
|
36
36
|
};
|
|
37
|
-
type
|
|
37
|
+
type set<T, V> = {
|
|
38
38
|
(key: string, value: V): (obj: T) => T;
|
|
39
39
|
(key: string, value: V, obj: T): T;
|
|
40
40
|
};
|
|
@@ -46,7 +46,7 @@ type keys<T> = (obj: T) => (keyof T)[];
|
|
|
46
46
|
type values<T> = (obj: T) => T[keyof T][];
|
|
47
47
|
type entries<T> = (obj: T) => [keyof T, T[keyof T]][];
|
|
48
48
|
type fromEntries<V> = (pairs: [string, V][]) => { [k: string]: V };
|
|
49
|
-
type
|
|
49
|
+
type hasOwn<T> = {
|
|
50
50
|
(key: string): (obj: T) => boolean;
|
|
51
51
|
(key: string, obj: T): boolean;
|
|
52
52
|
};
|
|
@@ -60,24 +60,28 @@ type evolve<T> = {
|
|
|
60
60
|
};
|
|
61
61
|
`;var c=`
|
|
62
62
|
type map<T, U> = {
|
|
63
|
-
(fn: (item: T) => U): (list: T[]) => U[];
|
|
64
|
-
(fn: (item: T) => U, list: T[]): U[];
|
|
63
|
+
(fn: (item: T, index: number) => U): (list: T[]) => U[];
|
|
64
|
+
(fn: (item: T, index: number) => U, list: T[]): U[];
|
|
65
65
|
};
|
|
66
|
-
type filter<T> = {
|
|
67
|
-
(pred: (item: T) =>
|
|
68
|
-
(pred: (item: T) =>
|
|
66
|
+
type filter<T, S extends T> = {
|
|
67
|
+
(pred: (item: T, index: number) => item is S): (list: T[]) => S[];
|
|
68
|
+
(pred: (item: T, index: number) => item is S, list: T[]): S[];
|
|
69
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T[];
|
|
70
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T[];
|
|
69
71
|
};
|
|
70
72
|
type reject<T> = {
|
|
71
|
-
(pred: (item: T) => boolean): (list: T[]) => T[];
|
|
72
|
-
(pred: (item: T) => boolean, list: T[]): T[];
|
|
73
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T[];
|
|
74
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T[];
|
|
73
75
|
};
|
|
74
|
-
type find<T> = {
|
|
75
|
-
(pred: (item: T) =>
|
|
76
|
-
(pred: (item: T) =>
|
|
76
|
+
type find<T, S extends T> = {
|
|
77
|
+
(pred: (item: T, index: number) => item is S): (list: T[]) => S | undefined;
|
|
78
|
+
(pred: (item: T, index: number) => item is S, list: T[]): S | undefined;
|
|
79
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => T | undefined;
|
|
80
|
+
(pred: (item: T, index: number) => boolean, list: T[]): T | undefined;
|
|
77
81
|
};
|
|
78
82
|
type reduce<T, A> = {
|
|
79
|
-
(fn: (acc: A, item: T) => A, init: A): (list: T[]) => A;
|
|
80
|
-
(fn: (acc: A, item: T) => A, init: A, list: T[]): A;
|
|
83
|
+
(fn: (acc: A, item: T, index: number) => A, init: A): (list: T[]) => A;
|
|
84
|
+
(fn: (acc: A, item: T, index: number) => A, init: A, list: T[]): A;
|
|
81
85
|
};
|
|
82
86
|
type pluck<T, K extends keyof T> = {
|
|
83
87
|
(key: K): (list: T[]) => T[K][];
|
|
@@ -91,7 +95,7 @@ type groupBy<T> = {
|
|
|
91
95
|
(fn: (item: T) => string): (list: T[]) => { [k: string]: T[] };
|
|
92
96
|
(fn: (item: T) => string, list: T[]): { [k: string]: T[] };
|
|
93
97
|
};
|
|
94
|
-
type
|
|
98
|
+
type uniqueBy<T, U> = {
|
|
95
99
|
(fn: (item: T) => U): (list: T[]) => T[];
|
|
96
100
|
(fn: (item: T) => U, list: T[]): T[];
|
|
97
101
|
};
|
|
@@ -99,22 +103,26 @@ type sortBy<T, U> = {
|
|
|
99
103
|
(fn: (item: T) => U): (list: T[]) => T[];
|
|
100
104
|
(fn: (item: T) => U, list: T[]): T[];
|
|
101
105
|
};
|
|
102
|
-
type
|
|
106
|
+
type flat<T> = {
|
|
107
|
+
(list: T[][]): T[];
|
|
108
|
+
(depth: number): (list: unknown[]) => unknown[];
|
|
109
|
+
(depth: number, list: unknown[]): unknown[];
|
|
110
|
+
};
|
|
103
111
|
type includes<T> = {
|
|
104
112
|
(value: T): (list: T[]) => boolean;
|
|
105
113
|
(value: T, list: T[]): boolean;
|
|
106
114
|
};
|
|
107
115
|
type some<T> = {
|
|
108
|
-
(pred: (item: T) => boolean): (list: T[]) => boolean;
|
|
109
|
-
(pred: (item: T) => boolean, list: T[]): boolean;
|
|
116
|
+
(pred: (item: T, index: number) => boolean): (list: T[]) => boolean;
|
|
117
|
+
(pred: (item: T, index: number) => boolean, list: T[]): boolean;
|
|
110
118
|
};
|
|
111
119
|
type length<T> = {
|
|
112
120
|
(str: string): number;
|
|
113
121
|
(list: T[]): number;
|
|
114
122
|
};
|
|
115
123
|
type sum = (list: number[]) => number;
|
|
116
|
-
`;var
|
|
117
|
-
type
|
|
124
|
+
`;var d=`
|
|
125
|
+
type isDeepEqual<T> = {
|
|
118
126
|
(a: T): (b: T) => boolean;
|
|
119
127
|
(a: T, b: T): boolean;
|
|
120
128
|
};
|
|
@@ -122,7 +130,7 @@ type propEq = {
|
|
|
122
130
|
(key: string, value: unknown): (obj: unknown) => boolean;
|
|
123
131
|
(key: string, value: unknown, obj: unknown): boolean;
|
|
124
132
|
};
|
|
125
|
-
type
|
|
133
|
+
type hasSubObject = {
|
|
126
134
|
(spec: { [k: string]: unknown }): (obj: unknown) => boolean;
|
|
127
135
|
(spec: { [k: string]: unknown }, obj: unknown): boolean;
|
|
128
136
|
};
|
|
@@ -144,11 +152,11 @@ type defaultTo<T> = {
|
|
|
144
152
|
(def: T): (value: T) => T;
|
|
145
153
|
(def: T, value: T): T;
|
|
146
154
|
};
|
|
147
|
-
type
|
|
155
|
+
type isNullish = (value: unknown) => value is null | undefined;
|
|
148
156
|
type isEmpty = (value: unknown) => boolean;
|
|
149
|
-
`;var
|
|
150
|
-
type
|
|
151
|
-
type
|
|
157
|
+
`;var f=`
|
|
158
|
+
type toUpperCase = (str: string) => string;
|
|
159
|
+
type toLowerCase = (str: string) => string;
|
|
152
160
|
type trim = (str: string) => string;
|
|
153
161
|
type split = {
|
|
154
162
|
(sep: string): (str: string) => string[];
|
|
@@ -162,11 +170,11 @@ type template = {
|
|
|
162
170
|
(tpl: string): (data: unknown) => string;
|
|
163
171
|
(tpl: string, data: unknown): string;
|
|
164
172
|
};
|
|
165
|
-
`;var
|
|
173
|
+
`;var m=`
|
|
166
174
|
type toNumber = (value: unknown) => number;
|
|
167
175
|
type asString = (value: string | number | boolean | null | undefined) => string;
|
|
168
176
|
type toBoolean = (value: unknown) => boolean;
|
|
169
177
|
type parse = (text: string) => unknown;
|
|
170
178
|
type stringify = (value: unknown) => string;
|
|
171
|
-
`;var
|
|
172
|
-
`),
|
|
179
|
+
`;var g=[u,T,c,d,f,m].join(`
|
|
180
|
+
`),h=p(g);var o=(n,e)=>{let t=r=>r.length>=n?e(...r.slice(0,n)):(...i)=>t([...r,...i]);return (...r)=>t(r)},l=(n,e)=>{if(n===e)return true;if(n===null||e===null||typeof n!="object"||typeof e!="object")return n===e;if(Array.isArray(n)!==Array.isArray(e))return false;let r=Object.keys(n),i=Object.keys(e);return r.length!==i.length?false:r.every(y=>l(n[y],e[y]))},s=n=>n==null,j={identity:n=>n,constant:n=>()=>n,tap:o(2,(n,e)=>(n(e),e)),prop:o(2,(n,e)=>s(e)?void 0:e[n]),path:o(2,(n,e)=>n.reduce((t,r)=>s(t)?void 0:t[r],e)),propOr:o(3,(n,e,t)=>{let r=s(t)?void 0:t[e];return s(r)?n:r}),pathOr:o(3,(n,e,t)=>{let r=e.reduce((i,y)=>s(i)?void 0:i[y],t);return s(r)?n:r}),pick:o(2,(n,e)=>{let t={};if(!s(e))for(let r of n)r in e&&(t[r]=e[r]);return t}),omit:o(2,(n,e)=>{let t=new Set(n),r={};for(let i in e)t.has(i)||(r[i]=e[i]);return r}),set:o(3,(n,e,t)=>({...t,[n]:e})),merge:o(2,(n,e)=>({...n,...e})),keys:n=>Object.keys(n??{}),values:n=>Object.values(n??{}),entries:n=>Object.entries(n??{}),fromEntries:n=>Object.fromEntries(n),hasOwn:o(2,(n,e)=>!s(e)&&Object.prototype.hasOwnProperty.call(e,n)),applySpec:o(2,(n,e)=>{let t={};for(let r in n)t[r]=n[r](e);return t}),evolve:o(2,(n,e)=>{let t={...e};for(let r in n)r in t&&(t[r]=n[r](t[r]));return t}),map:o(2,(n,e)=>e.map((t,r)=>n(t,r))),filter:o(2,(n,e)=>e.filter((t,r)=>n(t,r))),reject:o(2,(n,e)=>e.filter((t,r)=>!n(t,r))),find:o(2,(n,e)=>e.find((t,r)=>n(t,r))),reduce:o(3,(n,e,t)=>t.reduce((r,i,y)=>n(r,i,y),e)),pluck:o(2,(n,e)=>e.map(t=>s(t)?void 0:t[n])),indexBy:o(2,(n,e)=>{let t={};for(let r of e)t[n(r)]=r;return t}),groupBy:o(2,(n,e)=>{var r;let t={};for(let i of e)(t[r=n(i)]??(t[r]=[])).push(i);return t}),uniqueBy:o(2,(n,e)=>{let t=new Set,r=[];for(let i of e){let y=n(i);t.has(y)||(t.add(y),r.push(i));}return r}),sortBy:o(2,(n,e)=>[...e].sort((t,r)=>{let i=n(t),y=n(r);return i<y?-1:i>y?1:0})),flat:(...n)=>n.length===1&&Array.isArray(n[0])?n[0].flat():o(2,(e,t)=>t.flat(e))(...n),includes:o(2,(n,e)=>e.some(t=>l(t,n))),some:o(2,(n,e)=>e.some((t,r)=>n(t,r))),length:n=>n.length,sum:n=>n.reduce((e,t)=>e+t,0),isDeepEqual:o(2,(n,e)=>l(n,e)),propEq:o(3,(n,e,t)=>!s(t)&&l(t[n],e)),hasSubObject:o(2,(n,e)=>{for(let t in n)if(s(e)||!l(e[t],n[t]))return false;return true}),ifElse:o(4,(n,e,t,r)=>n(r)?e(r):t(r)),when:o(3,(n,e,t)=>n(t)?e(t):t),cond:n=>e=>{for(let[t,r]of n)if(t(e))return r(e)},defaultTo:o(2,(n,e)=>s(e)||typeof e=="number"&&Number.isNaN(e)?n:e),isNullish:n=>s(n),isEmpty:n=>s(n)?true:typeof n=="string"||Array.isArray(n)?n.length===0:typeof n=="object"?Object.keys(n).length===0:false,toUpperCase:n=>n.toUpperCase(),toLowerCase:n=>n.toLowerCase(),trim:n=>n.trim(),split:o(2,(n,e)=>e.split(n)),join:o(2,(n,e)=>e.join(n)),template:o(2,(n,e)=>n.replace(/\{(\w+)\}/g,(t,r)=>{let i=s(e)?void 0:e[r];return s(i)?"":String(i)})),toNumber:n=>Number(n),asString:n=>String(n),toBoolean:n=>!!n,parse:n=>JSON.parse(n),stringify:n=>JSON.stringify(n)};var a=(n,e,t)=>({operator:n,on:e,call:t}),k={length:a("length","value",n=>`length(${n})`),map:a("map","array",(n,e)=>`map(${e[0]??"fn"}, ${n})`),filter:a("filter","array",(n,e)=>`filter(${e[0]??"fn"}, ${n})`),find:a("find","array",(n,e)=>`find(${e[0]??"fn"}, ${n})`),reduce:a("reduce","array",(n,e)=>`reduce(${e[0]??"fn"}, ${e[1]??"init"}, ${n})`),some:a("some","array",(n,e)=>`some(${e[0]??"fn"}, ${n})`),includes:a("includes","value",(n,e)=>`includes(${e[0]??"x"}, ${n})`),flat:a("flat","array",n=>`flat(${n})`),join:a("join","array",(n,e)=>`join(${e[0]??'", "'}, ${n})`),trim:a("trim","string",n=>`trim(${n})`),toUpperCase:a("toUpperCase","string",n=>`toUpperCase(${n})`),toLowerCase:a("toLowerCase","string",n=>`toLowerCase(${n})`),split:a("split","string",(n,e)=>`split(${e[0]??'","'}, ${n})`),toString:a("asString","value",n=>`asString(${n})`)},b=new Set(["push","pop","shift","unshift","splice","sort","reverse","slice","concat","indexOf","lastIndexOf","forEach","every","flatMap","fill","charAt","charCodeAt","substring","substr","replace","replaceAll","padStart","padEnd","startsWith","endsWith","repeat","at","keys","values","entries","hasOwnProperty","valueOf"]),S=n=>n in k||b.has(n);export{S as isKnownProtoMember,k as jsMethodReplacements,b as knownProtoMembersWithoutOperator,p as loadOperators,h as vanilla,j as vanillaRuntime,g as vanillaSource};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tslite/operators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "TSLite operators — functional operator signatures as native TSL types, injectable into the checker Env (FP, no OO). The typed stdlib for JSON mappers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@tslite/parser": "1.
|
|
44
|
-
"@tslite/type-core": "0.3.
|
|
43
|
+
"@tslite/parser": "1.3.0",
|
|
44
|
+
"@tslite/type-core": "0.3.4"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@tslite/checker": "0.9.
|
|
48
|
-
"@tslite/interpret": "0.4.
|
|
47
|
+
"@tslite/checker": "0.9.4",
|
|
48
|
+
"@tslite/interpret": "0.4.3"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "tsup",
|