@gershy/clearing 0.0.7 → 0.0.9
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/cmp/cjs/main.js +1 -1
- package/cmp/mjs/main.js +1 -1
- package/cmp/types/global.d.ts +133 -213
- package/package.json +1 -1
package/cmp/cjs/main.js
CHANGED
package/cmp/mjs/main.js
CHANGED
package/cmp/types/global.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
|
|
3
3
|
// Util
|
|
4
|
-
type Fn<A=any[], T=any> = (...args: A) => T;
|
|
5
|
-
type Obj<V = any> = { [
|
|
4
|
+
type Fn<A extends any[] = any[], T = any> = (...args: A) => T;
|
|
5
|
+
type Obj<V = any> = { [k: string]: V };
|
|
6
6
|
|
|
7
7
|
// Differentiate between "map" and "rec" ("record") - maps have arbitrary keys; recs have fixed keys
|
|
8
8
|
type ObjMode<O extends { [K: string]: any }> = O extends { [K in infer KK]: any } ? (string extends KK ? 'map' : 'rec') : never;
|
|
@@ -12,15 +12,15 @@ declare global {
|
|
|
12
12
|
type Itr<O extends Obj> = Iterable<[ ObjKeys<O>, ObjVals<O> ]>;
|
|
13
13
|
type Json = null | boolean | number | string | Json[] | { [K: string]: Json };
|
|
14
14
|
type Skip = undefined;
|
|
15
|
-
type SkipNever<V> = V extends Skip ? Skip extends V ? never : V : V;
|
|
15
|
+
type SkipNever<V> = V extends Skip ? Skip extends V ? never : V : V;
|
|
16
16
|
type UGH = any; // Use when necessary to escape typing because typescript has failed us
|
|
17
17
|
|
|
18
18
|
type Dive<O extends Obj, K extends readonly string[], D = undefined> =
|
|
19
|
-
K extends [ infer K0, ...infer KM ]
|
|
19
|
+
K extends [ infer K0 extends string, ...infer KM extends string[] ]
|
|
20
20
|
? K0 extends keyof O
|
|
21
21
|
? (ObjMode<O> extends 'map' ? D : never) | Dive<O[K0], KM, D>
|
|
22
22
|
: D
|
|
23
|
-
: O;
|
|
23
|
+
: O;
|
|
24
24
|
|
|
25
25
|
type CharSet = {
|
|
26
26
|
str: string,
|
|
@@ -41,7 +41,7 @@ declare global {
|
|
|
41
41
|
(i: unknown, fn: FunctionConstructor): i is Fn,
|
|
42
42
|
(i: unknown, fn: SymbolConstructor): i is symbol,
|
|
43
43
|
<T>(i: unknown, prm: PromiseConstructor): i is Promise<T>,
|
|
44
|
-
<C>(i: unknown, cls: C):
|
|
44
|
+
<C extends abstract new (...args: any) => any>(i: unknown, cls: C): i is InstanceType<C>
|
|
45
45
|
};
|
|
46
46
|
const clearing: {
|
|
47
47
|
|
|
@@ -63,7 +63,7 @@ declare global {
|
|
|
63
63
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
// <SYMBOLS>
|
|
66
|
+
// <SYMBOLS> :: declarations :: /const ([a-zA-Z0-9]+)[ ]*[:][ ]*unique symbol;/
|
|
67
67
|
const add: unique symbol;
|
|
68
68
|
const allArr: unique symbol;
|
|
69
69
|
const allObj: unique symbol;
|
|
@@ -114,264 +114,184 @@ declare global {
|
|
|
114
114
|
const upper: unique symbol;
|
|
115
115
|
// </SYMBOLS>
|
|
116
116
|
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
[
|
|
124
|
-
[
|
|
125
|
-
[
|
|
126
|
-
[
|
|
127
|
-
[
|
|
128
|
-
[
|
|
129
|
-
[
|
|
130
|
-
[
|
|
131
|
-
[
|
|
132
|
-
[
|
|
133
|
-
[
|
|
134
|
-
[
|
|
135
|
-
[
|
|
136
|
-
[
|
|
137
|
-
[
|
|
138
|
-
[
|
|
139
|
-
[
|
|
140
|
-
[
|
|
141
|
-
[
|
|
142
|
-
[
|
|
143
|
-
[
|
|
144
|
-
[
|
|
145
|
-
[
|
|
146
|
-
[
|
|
147
|
-
[
|
|
148
|
-
[
|
|
149
|
-
[
|
|
150
|
-
[
|
|
151
|
-
[
|
|
152
|
-
[
|
|
153
|
-
[
|
|
154
|
-
[
|
|
117
|
+
// Adding symbol properties to Object.prototype will cause typescript to think these properties
|
|
118
|
+
// are also available for extending types, e.g. Array - to avoid this we merge in an object which
|
|
119
|
+
// defines every symbol as `undefined`!
|
|
120
|
+
type SymbolsProto = {
|
|
121
|
+
// <SYMBOLS> :: SymbolsProto :: /\[([a-zA-Z0-9]+)\][ ]*[:][ ]*undefined
|
|
122
|
+
[add]: undefined,
|
|
123
|
+
[allArr]: undefined,
|
|
124
|
+
[allObj]: undefined,
|
|
125
|
+
[at]: undefined,
|
|
126
|
+
[assert]: undefined,
|
|
127
|
+
[base32]: undefined,
|
|
128
|
+
[base36]: undefined,
|
|
129
|
+
[base62]: undefined,
|
|
130
|
+
[base64Std]: undefined,
|
|
131
|
+
[base64Url]: undefined,
|
|
132
|
+
[baseline]: undefined,
|
|
133
|
+
[bind]: undefined,
|
|
134
|
+
[bits]: undefined,
|
|
135
|
+
[char]: undefined,
|
|
136
|
+
[charset]: undefined,
|
|
137
|
+
[code]: undefined,
|
|
138
|
+
[count]: undefined,
|
|
139
|
+
[cut]: undefined,
|
|
140
|
+
[dive]: undefined,
|
|
141
|
+
[empty]: undefined,
|
|
142
|
+
[find]: undefined,
|
|
143
|
+
[fire]: undefined,
|
|
144
|
+
[group]: undefined,
|
|
145
|
+
[has]: undefined,
|
|
146
|
+
[hasHead]: undefined,
|
|
147
|
+
[hasTail]: undefined,
|
|
148
|
+
[indent]: undefined,
|
|
149
|
+
[int32]: undefined,
|
|
150
|
+
[int64]: undefined,
|
|
151
|
+
[isInt]: undefined,
|
|
152
|
+
[later]: undefined,
|
|
153
|
+
[limn]: undefined,
|
|
154
|
+
[lower]: undefined,
|
|
155
|
+
[map]: undefined,
|
|
156
|
+
[mapk]: undefined,
|
|
157
|
+
[merge]: undefined,
|
|
158
|
+
[mod]: undefined,
|
|
159
|
+
[padHead]: undefined,
|
|
160
|
+
[padTail]: undefined,
|
|
161
|
+
[rem]: undefined,
|
|
162
|
+
[slash]: undefined,
|
|
163
|
+
[slice]: undefined,
|
|
164
|
+
[suppress]: undefined,
|
|
165
|
+
[toArr]: undefined,
|
|
166
|
+
[toNum]: undefined,
|
|
167
|
+
[toObj]: undefined,
|
|
168
|
+
[toStr]: undefined,
|
|
169
|
+
[upper]: undefined
|
|
170
|
+
// </SYMBOLS>
|
|
155
171
|
};
|
|
156
172
|
|
|
157
173
|
interface ErrorConstructor {
|
|
158
174
|
[assert]: <V = any>(args: V, fn: (args: V) => boolean) => void
|
|
159
|
-
}
|
|
160
|
-
interface Error extends
|
|
175
|
+
}
|
|
176
|
+
interface Error extends SymbolsProto {
|
|
161
177
|
[mod]: (props: { [K: string]: any }) => Error,
|
|
162
178
|
[fire]: (props?: { [K: string]: any }) => never,
|
|
163
179
|
[suppress]: () => Error,
|
|
164
|
-
|
|
165
|
-
[limn]: (seen?: Map) => (Obj<Json> & {
|
|
180
|
+
[limn]: (seen?: Map<any, any>) => (Obj<Json> & {
|
|
166
181
|
form: string,
|
|
167
182
|
msg: string,
|
|
168
183
|
trace: string[],
|
|
169
184
|
cause: null | ReturnType<Error[typeof limn]>
|
|
170
185
|
})
|
|
171
|
-
}
|
|
186
|
+
}
|
|
172
187
|
|
|
173
|
-
interface ArrayConstructor {}
|
|
174
|
-
interface Array<T> extends
|
|
175
|
-
[iden]: 'arr',
|
|
188
|
+
interface ArrayConstructor {}
|
|
189
|
+
interface Array<T> extends SymbolsProto {
|
|
176
190
|
[has]: (val: unknown) => boolean,
|
|
177
|
-
[map]:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
>(
|
|
181
|
-
fn: Fn
|
|
182
|
-
): Exclude<ReturnType<Fn>, Skip>[]
|
|
183
|
-
},
|
|
184
|
-
[add]: <TT extends T>(val: TT) => TT,
|
|
185
|
-
[rem]: <TT extends T>(val: TT) => void,
|
|
191
|
+
[map]: <Fn extends (v: T, i: number) => any>(fn: Fn) => Exclude<ReturnType<Fn>, Skip>[],
|
|
192
|
+
[add]: <TT extends T>(val: TT) => TT,
|
|
193
|
+
[rem]: <TT extends T>(val: TT) => void,
|
|
186
194
|
[count]: () => number,
|
|
187
|
-
[empty]: (
|
|
188
|
-
[toObj]: <
|
|
189
|
-
[find]:
|
|
195
|
+
[empty]: () => boolean,
|
|
196
|
+
[toObj]: <R extends readonly [string, any]>(fn: (v: T, n: number) => Skip | R) => { [K: string]: any },
|
|
197
|
+
[find]: (fn: (val: T, n: number) => any) => ({ found: true, val: T, ind: number } | { found: false, val: null, ind: null }),
|
|
190
198
|
[group]: <G extends string>(fn: (v: T) => Skip | G) => { [K in G]?: T[] }
|
|
191
|
-
}
|
|
199
|
+
}
|
|
192
200
|
|
|
193
|
-
interface FunctionConstructor {}
|
|
194
|
-
interface Function extends
|
|
195
|
-
[
|
|
196
|
-
|
|
197
|
-
<
|
|
198
|
-
Fn extends (...args: any[]) => any,
|
|
199
|
-
To
|
|
200
|
-
>(
|
|
201
|
-
this: Fn,
|
|
202
|
-
to: To
|
|
203
|
-
): ((...args: Parameters<Fn> extends [ infer A0, ...infer AM ] ? AM : never) => ReturnType<Fn>)
|
|
204
|
-
}
|
|
205
|
-
};
|
|
201
|
+
interface FunctionConstructor {}
|
|
202
|
+
interface Function extends SymbolsProto {
|
|
203
|
+
[bind]: <Fn extends (...args: any[]) => any, To>(this: Fn, to: To) => ((...args: Parameters<Fn> extends [ infer A0, ...infer AM ] ? AM : never) => ReturnType<Fn>)
|
|
204
|
+
}
|
|
206
205
|
|
|
207
206
|
interface NumberConstructor {
|
|
208
207
|
[int32]: number,
|
|
209
208
|
[int64]: number
|
|
210
|
-
}
|
|
211
|
-
interface Number extends
|
|
212
|
-
[iden]: 'num',
|
|
209
|
+
}
|
|
210
|
+
interface Number extends SymbolsProto {
|
|
213
211
|
[char]: () => string,
|
|
214
212
|
[isInt]: () => boolean,
|
|
215
213
|
[toStr]: (str: string | CharSet, len?: number) => string,
|
|
216
214
|
[toArr]: <T>(fn: (n: number) => T) => T[],
|
|
217
|
-
[toObj]: <
|
|
215
|
+
[toObj]: <R extends readonly [string, any]>(fn: (n: number) => Skip | R) => { [K: string]: any },
|
|
218
216
|
[bits]: () => Generator<number>,
|
|
219
|
-
[Symbol.iterator]: () => Generator<number
|
|
220
|
-
|
|
221
|
-
};
|
|
217
|
+
[Symbol.iterator]: () => Generator<number>
|
|
218
|
+
}
|
|
222
219
|
|
|
223
|
-
interface BigIntConstructor {}
|
|
224
|
-
interface BigInt extends
|
|
220
|
+
interface BigIntConstructor {}
|
|
221
|
+
interface BigInt extends SymbolsProto {
|
|
225
222
|
[toStr]: (str: string | CharSet, len?: number) => string
|
|
226
|
-
}
|
|
223
|
+
}
|
|
227
224
|
|
|
228
|
-
interface ObjectConstructor {}
|
|
229
|
-
interface Object
|
|
230
|
-
[
|
|
231
|
-
[
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
[
|
|
242
|
-
|
|
243
|
-
O extends Obj,
|
|
244
|
-
K extends string | string[],
|
|
245
|
-
D extends any = undefined
|
|
246
|
-
>(
|
|
247
|
-
this: O,
|
|
248
|
-
k: K,
|
|
249
|
-
def?: D
|
|
250
|
-
): Dive<O, K extends string[] ? K : [ K ], D>,
|
|
251
|
-
},
|
|
252
|
-
[has]: {
|
|
253
|
-
// <O extends Obj>(this: O, k: string): boolean,
|
|
254
|
-
// <O extends Obj>(this: O, k: string): k is (ObjMode<O> extends 'rec' ? keyof O : any),
|
|
255
|
-
// <O extends Obj>(this: O, k: string): k is (ObjMode<O> extends 'rec' ? keyof O : any),
|
|
256
|
-
|
|
257
|
-
// <O extends Obj, K extends keyof any>(this: O, k: K): this is { [K]: O[keyof O] }
|
|
258
|
-
|
|
259
|
-
<O extends Obj>(this: O, k: unknown): k is keyof O
|
|
260
|
-
|
|
261
|
-
},
|
|
262
|
-
[map]: {
|
|
263
|
-
<
|
|
264
|
-
O extends Obj,
|
|
265
|
-
Fn extends (v: ObjVals<O>, k: ObjKeys<O>) => any
|
|
266
|
-
>(
|
|
267
|
-
this: O,
|
|
268
|
-
fn: Fn
|
|
269
|
-
): { [K in keyof O]: Exclude<ReturnType<Fn>, Skip> },
|
|
270
|
-
},
|
|
271
|
-
[mapk]: {
|
|
272
|
-
<
|
|
273
|
-
O extends Obj,
|
|
274
|
-
Fn extends (v: O[keyof O], k: ObjKeys<O>) => undefined | [ string, any ]
|
|
275
|
-
>(
|
|
276
|
-
this: O,
|
|
277
|
-
fn: Fn
|
|
278
|
-
): { [K in Exclude<ReturnType<Fn>, Skip>[0]]: Exclude<ReturnType<Fn>, Skip>[1] },
|
|
279
|
-
},
|
|
280
|
-
[merge]: {
|
|
281
|
-
<
|
|
282
|
-
O1 extends Obj,
|
|
283
|
-
O2 extends Obj
|
|
284
|
-
>(
|
|
285
|
-
this: readonly O1,
|
|
286
|
-
val: readonly O2
|
|
287
|
-
): O1 & O2,
|
|
288
|
-
},
|
|
289
|
-
[slice]: {
|
|
290
|
-
<O extends Obj, K extends readonly (keyof O)[]>(this: O, keys: K): { [P in K[number]]: SkipNever<O[P]> }
|
|
291
|
-
},
|
|
292
|
-
[slash]: {
|
|
293
|
-
<
|
|
294
|
-
O extends Obj,
|
|
295
|
-
T extends readonly (keyof O)[]
|
|
296
|
-
>(
|
|
297
|
-
this: O,
|
|
298
|
-
keys: T
|
|
299
|
-
): { [K in keyof O as Exclude<keyof O, T[number]>]: O[K] }
|
|
300
|
-
},
|
|
301
|
-
[toArr]: {
|
|
302
|
-
<
|
|
303
|
-
O extends Obj,
|
|
304
|
-
Fn extends (v: O[keyof O], k: ObjKeys<O>) => any
|
|
305
|
-
>(
|
|
306
|
-
this: O,
|
|
307
|
-
fn: Fn
|
|
308
|
-
): Exclude<ReturnType<Fn>, Skip>[],
|
|
309
|
-
},
|
|
310
|
-
[count]: {
|
|
311
|
-
<O extends Obj>(this: O): number,
|
|
312
|
-
},
|
|
313
|
-
[group]: {
|
|
314
|
-
<O extends Obj, G extends string>(fn: (v: T) => Skip | G): { [K in G]?: Optional<O> }
|
|
315
|
-
},
|
|
316
|
-
[Symbol.iterator]: {
|
|
317
|
-
<O extends Obj>(this: O): Iterator<[ ObjKeys<O>, ObjVals<O> ]>
|
|
318
|
-
},
|
|
319
|
-
$$inspect: <V>(this: V) => { v: V }
|
|
320
|
-
};
|
|
225
|
+
interface ObjectConstructor {}
|
|
226
|
+
interface Object {
|
|
227
|
+
[empty]: () => boolean,
|
|
228
|
+
[at]: <O extends Obj, K extends string | string[], D extends any = undefined>(this: O, k: K, def?: D) => Dive<O, K extends string[] ? K : [ K ], D>,
|
|
229
|
+
[has]: <O extends Obj>(this: O, k: unknown) => k is keyof O,
|
|
230
|
+
[map]: <O extends Obj, Fn extends (v: ObjVals<O>, k: ObjKeys<O>) => any>(this: O, fn: Fn) => { [K in keyof O]: Exclude<ReturnType<Fn>, Skip> },
|
|
231
|
+
[mapk]: <O extends Obj, Fn extends (v: O[keyof O], k: ObjKeys<O>) => undefined | [ string, any ]>(this: O, fn: Fn) => { [K: string]: any },
|
|
232
|
+
[merge]: <O1 extends Obj, O2 extends Obj>(this: O1, val: O2) => O1 & O2,
|
|
233
|
+
[slice]: <O extends Obj, K extends readonly (keyof O)[]>(this: O, keys: K) => { [P in K[number]]: SkipNever<O[P]> },
|
|
234
|
+
[slash]: <O extends Obj, T extends readonly (keyof O)[]>(this: O, keys: T) => { [K in keyof O as Exclude<keyof O, T[number]>]: O[K] },
|
|
235
|
+
[toArr]: <O extends Obj, Fn extends (v: O[keyof O], k: ObjKeys<O>) => any>(this: O, fn: Fn) => Exclude<ReturnType<Fn>, Skip>[],
|
|
236
|
+
[count]: () => number,
|
|
237
|
+
[group]: <O extends Obj, G extends string>(this: O, fn: (v: O[keyof O]) => Skip | G) => { [K in G]?: Partial<O> },
|
|
238
|
+
[Symbol.iterator]: <O extends Obj>(this: O) => Iterator<[ ObjKeys<O>, ObjVals<O> ]>
|
|
239
|
+
}
|
|
321
240
|
|
|
322
241
|
interface PromiseConstructor {
|
|
323
242
|
[allArr]: PromiseConstructor['all'],
|
|
324
|
-
[allObj]: <O extends { [K:
|
|
243
|
+
[allObj]: <O extends { [K: string]: Promise<any> }>(obj: O) => Promise<{ [K in keyof O]: Awaited<O[K]> }>,
|
|
325
244
|
[later]: <T=void>() => PromiseLater<T>
|
|
326
|
-
}
|
|
327
|
-
interface Promise<T> {}
|
|
328
|
-
interface PromiseLater<T=void> extends Promise<T
|
|
245
|
+
}
|
|
246
|
+
interface Promise<T> {}
|
|
247
|
+
interface PromiseLater<T=void> extends Promise<T> {
|
|
329
248
|
resolve: T extends void ? () => void : (v: T) => void,
|
|
330
249
|
reject: (err: any) => void
|
|
331
|
-
}
|
|
250
|
+
}
|
|
332
251
|
|
|
333
|
-
interface SetConstructor {}
|
|
334
|
-
interface Set<T> extends
|
|
252
|
+
interface SetConstructor {}
|
|
253
|
+
interface Set<T> extends SymbolsProto {
|
|
335
254
|
[count]: () => number,
|
|
336
255
|
[empty]: () => boolean,
|
|
337
|
-
[find]:
|
|
338
|
-
[map]:
|
|
256
|
+
[find]: (fn: (val: T) => any) => ({ found: true, val: T } | { found: false, val: null }),
|
|
257
|
+
[map]: <V>(fn: (val: T, ind: number) => V) => Exclude<V, Skip>[],
|
|
339
258
|
[toArr]: <V>(fn: (val: T, ind: number) => V) => Exclude<V, Skip>[],
|
|
340
|
-
[toObj]: <
|
|
341
|
-
[rem]:
|
|
342
|
-
}
|
|
259
|
+
[toObj]: <R extends readonly [string, any]>(fn: (val: T) => Skip | R) => { [K: string]: any },
|
|
260
|
+
[rem]: (val: T) => void
|
|
261
|
+
}
|
|
343
262
|
|
|
344
|
-
interface MapConstructor {}
|
|
345
|
-
interface Map<K, V> extends
|
|
346
|
-
[add]:
|
|
263
|
+
interface MapConstructor {}
|
|
264
|
+
interface Map<K, V> extends SymbolsProto {
|
|
265
|
+
[add]: (k: K, v: V) => void,
|
|
347
266
|
[count]: () => number,
|
|
348
267
|
[empty]: () => boolean,
|
|
349
|
-
[find]:
|
|
350
|
-
[map]:
|
|
268
|
+
[find]: (fn: (val: V, key: K) => any) => ({ found: true, val: V, key: K } | { found: false, val: null, key: null }),
|
|
269
|
+
[map]: <T>(fn: (val: V, key: K) => Skip | readonly [string, any]) => { [Key: string]: any },
|
|
351
270
|
[toArr]: <T>(fn: (val: V, key: K) => T) => Exclude<T, Skip>[],
|
|
352
271
|
[toObj]: <T>(fn: (val: V, key: K) => Skip | readonly [string, any]) => { [Key: string]: any },
|
|
353
|
-
[rem]:
|
|
354
|
-
}
|
|
272
|
+
[rem]: (key: K) => void
|
|
273
|
+
}
|
|
355
274
|
|
|
356
275
|
interface StringConstructor {
|
|
357
276
|
[base32]: string,
|
|
358
277
|
[base36]: string,
|
|
359
278
|
[base62]: string,
|
|
360
|
-
[
|
|
279
|
+
[base64Url]: string,
|
|
361
280
|
[base64Std]: string,
|
|
362
281
|
[baseline]: (str: string) => string,
|
|
363
282
|
[charset]: (str: string) => CharSet,
|
|
364
|
-
}
|
|
365
|
-
interface String extends
|
|
366
|
-
[
|
|
367
|
-
[
|
|
368
|
-
[
|
|
369
|
-
[
|
|
283
|
+
}
|
|
284
|
+
interface String extends SymbolsProto {
|
|
285
|
+
[code]: (ind?: number) => number,
|
|
286
|
+
[count]: () => number,
|
|
287
|
+
[has]: (s: string) => boolean,
|
|
288
|
+
[padHead]: (n: number, s?: string) => string,
|
|
289
|
+
[padTail]: (n: number, s?: string) => string,
|
|
370
290
|
[toNum]: (chrs: string | CharSet) => bigint,
|
|
371
|
-
[hasHead]<H extends string>(this: string, head: H)
|
|
372
|
-
[hasTail]<T extends string>(this: string, tail: T)
|
|
373
|
-
[upper]<S extends string>(this: S)
|
|
374
|
-
[lower]<S extends string>(this: S)
|
|
291
|
+
[hasHead]: <H extends string>(this: string, head: H) => this is `${H}${string}`,
|
|
292
|
+
[hasTail]: <T extends string>(this: string, tail: T) => this is `${string}${T}`,
|
|
293
|
+
[upper]: <S extends string>(this: S) => Uppercase<S>,
|
|
294
|
+
[lower]: <S extends string>(this: S) => Lowercase<S>,
|
|
375
295
|
[cut]: {
|
|
376
296
|
(str: string, cuts: 1): [ string, string ],
|
|
377
297
|
(str: string, cuts: 2): [ string, string, string ],
|
|
@@ -383,7 +303,7 @@ declare global {
|
|
|
383
303
|
(amount: number, char?: string): string,
|
|
384
304
|
(str: string): string
|
|
385
305
|
}
|
|
386
|
-
}
|
|
306
|
+
}
|
|
387
307
|
|
|
388
308
|
}
|
|
389
309
|
|