@koine/utils 2.0.0-beta.187 → 2.0.0-beta.189
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/createConsole.cjs.js +1 -1
- package/createConsole.d.ts +1 -1
- package/createConsole.esm.js +1 -1
- package/index.cjs.js +2 -0
- package/index.d.ts +2 -1
- package/index.esm.js +1 -0
- package/package.json +7 -1
- package/types.d.ts +34 -0
- package/urlSearchParamsSerializer.cjs.d.ts +2 -0
- package/urlSearchParamsSerializer.cjs.default.js +1 -0
- package/urlSearchParamsSerializer.cjs.js +8 -0
- package/urlSearchParamsSerializer.cjs.mjs +2 -0
- package/urlSearchParamsSerializer.d.ts +35 -0
- package/urlSearchParamsSerializer.esm.d.ts +2 -0
- package/urlSearchParamsSerializer.esm.js +3 -0
package/createConsole.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
let createConsole=e=>{let
|
|
5
|
+
let createConsole=e=>{let r=(r,o,...t)=>{console[r]("\x1b[90m%s\x1b[0m"+o,e?"["+e+"] ":"",...t);},o=e=>{let o=(o,...t)=>r(e,o,...t),t=new Set,n="";return o.once=(o,...n)=>{t.has(o)||(t.add(o),r(e,o,...n));},o.first=(o,...t)=>{o!==n&&(n=o,r(e,o,...t));},o},t={};return ["log","info","warn","error","debug"].forEach(e=>{t[e]=o(e);}),t};
|
|
6
6
|
|
|
7
7
|
exports.createConsole = createConsole;
|
|
8
8
|
exports.default = createConsole;
|
package/createConsole.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A basic native `console` enhancement
|
|
2
|
+
* A basic native `console` enhancement:
|
|
3
3
|
* - optional _prefix_ to all messages
|
|
4
4
|
* - `first` logging method which prints only the first message among equals (a kind of more basic throttling)
|
|
5
5
|
* - `once` logging method which prints only once a message among equals
|
package/createConsole.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
let createConsole=e=>{let
|
|
1
|
+
let createConsole=e=>{let r=(r,o,...t)=>{console[r]("\x1b[90m%s\x1b[0m"+o,e?"["+e+"] ":"",...t);},o=e=>{let o=(o,...t)=>r(e,o,...t),t=new Set,n="";return o.once=(o,...n)=>{t.has(o)||(t.add(o),r(e,o,...n));},o.first=(o,...t)=>{o!==n&&(n=o,r(e,o,...t));},o},t={};return ["log","info","warn","error","debug"].forEach(e=>{t[e]=o(e);}),t};
|
|
2
2
|
|
|
3
3
|
export { createConsole, createConsole as default };
|
package/index.cjs.js
CHANGED
|
@@ -153,6 +153,7 @@ var uid = require('./uid.cjs.js');
|
|
|
153
153
|
var updateLinkParams = require('./updateLinkParams.cjs.js');
|
|
154
154
|
var updateUrlQueryParams = require('./updateUrlQueryParams.cjs.js');
|
|
155
155
|
var uppercase = require('./uppercase.cjs.js');
|
|
156
|
+
var urlSearchParamsSerializer = require('./urlSearchParamsSerializer.cjs.js');
|
|
156
157
|
var uuid = require('./uuid.cjs.js');
|
|
157
158
|
var uuidNumeric = require('./uuidNumeric.cjs.js');
|
|
158
159
|
var wait = require('./wait.cjs.js');
|
|
@@ -312,6 +313,7 @@ exports.uid = uid.uid;
|
|
|
312
313
|
exports.updateLinkParams = updateLinkParams.updateLinkParams;
|
|
313
314
|
exports.updateUrlQueryParams = updateUrlQueryParams.updateUrlQueryParams;
|
|
314
315
|
exports.uppercase = uppercase.uppercase;
|
|
316
|
+
exports.urlSearchParamsSerializer = urlSearchParamsSerializer.urlSearchParamsSerializer;
|
|
315
317
|
exports.uuid = uuid.uuid;
|
|
316
318
|
exports.uuidNumeric = uuidNumeric.uuidNumeric;
|
|
317
319
|
exports.wait = wait.wait;
|
package/index.d.ts
CHANGED
|
@@ -153,10 +153,11 @@ export { uid } from "./uid";
|
|
|
153
153
|
export { updateLinkParams } from "./updateLinkParams";
|
|
154
154
|
export { updateUrlQueryParams } from "./updateUrlQueryParams";
|
|
155
155
|
export { uppercase } from "./uppercase";
|
|
156
|
+
export { urlSearchParamsSerializer, type UrlSearchParamSerializer } from "./urlSearchParamsSerializer";
|
|
156
157
|
export { uuid } from "./uuid";
|
|
157
158
|
export { uuidNumeric } from "./uuidNumeric";
|
|
158
159
|
export { wait } from "./wait";
|
|
159
|
-
export type { AnythingFalsy, FlatObjectFirstLevel, KeysStartsWith, KeysTailsStartsWith, NonNullableObjectDeep, NullableObjectDeep, OmitNever, PickStartsWith, PickStartsWithTails, RequiredNonNullableObjectDeep, RequiredObjectDeep, Reverse, TestType, } from "./types";
|
|
160
|
+
export type { AnythingFalsy, FlatObjectFirstLevel, KeysStartsWith, KeysTailsStartsWith, KeysOfValue, NonNullableObjectDeep, NullableObjectDeep, OmitNever, PickStartsWith, PickStartsWithTails, RequiredNonNullableObjectDeep, RequiredObjectDeep, Reverse, TestType, OverloadsToTuple } from "./types";
|
|
160
161
|
/**
|
|
161
162
|
* These types should not be documented by using [`excludeExternals` TypeDoc flag](https://typedoc.org/options/input/#excludeexternals)
|
|
162
163
|
*/
|
package/index.esm.js
CHANGED
|
@@ -151,6 +151,7 @@ export { uid } from './uid.esm.js';
|
|
|
151
151
|
export { updateLinkParams } from './updateLinkParams.esm.js';
|
|
152
152
|
export { updateUrlQueryParams } from './updateUrlQueryParams.esm.js';
|
|
153
153
|
export { uppercase } from './uppercase.esm.js';
|
|
154
|
+
export { urlSearchParamsSerializer } from './urlSearchParamsSerializer.esm.js';
|
|
154
155
|
export { uuid } from './uuid.esm.js';
|
|
155
156
|
export { uuidNumeric } from './uuidNumeric.esm.js';
|
|
156
157
|
export { wait } from './wait.esm.js';
|
package/package.json
CHANGED
|
@@ -984,6 +984,12 @@
|
|
|
984
984
|
"import": "./uppercase.cjs.mjs",
|
|
985
985
|
"default": "./uppercase.cjs.js"
|
|
986
986
|
},
|
|
987
|
+
"./urlSearchParamsSerializer": {
|
|
988
|
+
"module": "./urlSearchParamsSerializer.esm.js",
|
|
989
|
+
"types": "./urlSearchParamsSerializer.esm.d.ts",
|
|
990
|
+
"import": "./urlSearchParamsSerializer.cjs.mjs",
|
|
991
|
+
"default": "./urlSearchParamsSerializer.cjs.js"
|
|
992
|
+
},
|
|
987
993
|
"./uuid": {
|
|
988
994
|
"module": "./uuid.esm.js",
|
|
989
995
|
"types": "./uuid.esm.d.ts",
|
|
@@ -1015,5 +1021,5 @@
|
|
|
1015
1021
|
"module": "./index.esm.js",
|
|
1016
1022
|
"main": "./index.cjs.js",
|
|
1017
1023
|
"types": "./index.esm.d.ts",
|
|
1018
|
-
"version": "2.0.0-beta.
|
|
1024
|
+
"version": "2.0.0-beta.189"
|
|
1019
1025
|
}
|
package/types.d.ts
CHANGED
|
@@ -64,6 +64,13 @@ export type PickStartsWithTails<T extends object, S extends string> = {
|
|
|
64
64
|
* @category type
|
|
65
65
|
*/
|
|
66
66
|
export type KeysTailsStartsWith<T extends object, S extends string> = keyof PickStartsWithTails<T, S>;
|
|
67
|
+
/**
|
|
68
|
+
* @borrows [Matt Pocock's _Get Keys of an Object Where Values Are of a Given Type_](https://www.totaltypescript.com/get-keys-of-an-object-where-values-are-of-a-given-type)
|
|
69
|
+
* @category type
|
|
70
|
+
*/
|
|
71
|
+
export type KeysOfValue<T, TCondition> = {
|
|
72
|
+
[K in keyof T]: T[K] extends TCondition ? K : never;
|
|
73
|
+
}[keyof T];
|
|
67
74
|
/**
|
|
68
75
|
* @borrows [SO's answer by 钵钵鸡实力代购](https://stackoverflow.com/a/64994122/1938970)
|
|
69
76
|
*/
|
|
@@ -118,3 +125,30 @@ type B = OmitNever<{ a: never; b: 1 }> // B = { b: 1; }
|
|
|
118
125
|
export type OmitNever<T> = {
|
|
119
126
|
[K in keyof T as T[K] extends never ? never : K]: T[K];
|
|
120
127
|
};
|
|
128
|
+
export type OverloadsToTuple<T> = OverloadsToTuple5<T>;
|
|
129
|
+
type OverloadsToTuple5<T> = T extends {
|
|
130
|
+
(...args: infer P1): infer R1;
|
|
131
|
+
(...args: infer P2): infer R2;
|
|
132
|
+
(...args: infer P3): infer R3;
|
|
133
|
+
(...args: infer P4): infer R4;
|
|
134
|
+
(...args: infer P5): infer R5;
|
|
135
|
+
} ? [(...args: P1) => R1, (...args: P2) => R2, (...args: P3) => R3, (...args: P4) => R4, (...args: P5) => R5] : OverloadsToTuple4<T>;
|
|
136
|
+
type OverloadsToTuple4<T> = T extends {
|
|
137
|
+
(...args: infer P1): infer R1;
|
|
138
|
+
(...args: infer P2): infer R2;
|
|
139
|
+
(...args: infer P3): infer R3;
|
|
140
|
+
(...args: infer P4): infer R4;
|
|
141
|
+
} ? [(...args: P1) => R1, (...args: P2) => R2, (...args: P3) => R3, (...args: P4) => R4] : OverloadsToTuple3<T>;
|
|
142
|
+
type OverloadsToTuple3<T> = T extends {
|
|
143
|
+
(...args: infer P1): infer R1;
|
|
144
|
+
(...args: infer P2): infer R2;
|
|
145
|
+
(...args: infer P3): infer R3;
|
|
146
|
+
} ? [(...args: P1) => R1, (...args: P2) => R2, (...args: P3) => R3] : OverloadsToTuple2<T>;
|
|
147
|
+
type OverloadsToTuple2<T> = T extends {
|
|
148
|
+
(...args: infer P1): infer R1;
|
|
149
|
+
(...args: infer P2): infer R2;
|
|
150
|
+
} ? [(...args: P1) => R1, (...args: P2) => R2] : OverloadsToTuple1<T>;
|
|
151
|
+
type OverloadsToTuple1<T> = T extends {
|
|
152
|
+
(...args: infer P1): infer R1;
|
|
153
|
+
} ? [(...args: P1) => R1] : never;
|
|
154
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./urlSearchParamsSerializer.cjs.js').default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const urlSearchParamsSerializer=(e,r)=>{let t=Object.keys(e).reduce((r,t)=>(r[t]=e[t][1],r),{}),l=e=>r?`${r}_${e}`:e,a=Object.keys(e).reduce((r,t)=>(r[t]=l(e[t][0]),r),{});return {names:Object.values(a),toNames:a,defaults:t,fromUrl:r=>{let t={};for(let a in e){let[u,c,o]=e[a],s=r.get(l(u));t[a]=s?o(s):c;}return t},toUrl:r=>{let a={};for(let u in t){let[t,c,,o]=e[u],s=o(r[u]??c);s&&(a[l(t)]=s);}return a}}};
|
|
6
|
+
|
|
7
|
+
exports.default = urlSearchParamsSerializer;
|
|
8
|
+
exports.urlSearchParamsSerializer = urlSearchParamsSerializer;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} searchParamName
|
|
3
|
+
* @param {any} defaultValue
|
|
4
|
+
* @param {(valueFromUrl: string) => DefaultValue} serializeFromUrlSearchParamValue
|
|
5
|
+
* @param {(valueToUrl: DefaultValue) => string} serializeToUrlSearchParamValue
|
|
6
|
+
*/
|
|
7
|
+
export type UrlSearchParamSerializer<NameInUrl extends string, DefaultValue> = [
|
|
8
|
+
NameInUrl,
|
|
9
|
+
DefaultValue,
|
|
10
|
+
(valueFromUrl: string) => DefaultValue,
|
|
11
|
+
(valueToUrl: DefaultValue) => string
|
|
12
|
+
];
|
|
13
|
+
export declare const urlSearchParamsSerializer: <Serializers extends Record<string, UrlSearchParamSerializer<any, any>>, Prefix extends string | undefined>(serializers: Serializers, prefix?: Prefix) => {
|
|
14
|
+
/**
|
|
15
|
+
* Array of the search params `names` as they appear in the URL
|
|
16
|
+
*/
|
|
17
|
+
names: { [Key in keyof Serializers]: Prefix extends undefined ? Serializers[Key][0] : `${Prefix}_${Serializers[Key][0]}`; }[keyof Serializers][];
|
|
18
|
+
/**
|
|
19
|
+
* Map of the search params `state` name to the `name` as it appears in the URL
|
|
20
|
+
*/
|
|
21
|
+
toNames: { [Key in keyof Serializers]: Prefix extends undefined ? Serializers[Key][0] : `${Prefix}_${Serializers[Key][0]}`; };
|
|
22
|
+
/**
|
|
23
|
+
* Default state of the search params value
|
|
24
|
+
*/
|
|
25
|
+
defaults: { [Key_1 in keyof Serializers]: Serializers[Key_1][1]; };
|
|
26
|
+
/**
|
|
27
|
+
* Deserialize search params state from the URL ones
|
|
28
|
+
*/
|
|
29
|
+
fromUrl: (searchParams: URLSearchParams) => { [Key_2 in keyof Serializers]: Serializers[Key_2][1]; };
|
|
30
|
+
/**
|
|
31
|
+
* Serialize state to URL search params
|
|
32
|
+
*/
|
|
33
|
+
toUrl: (data: { [Key_2 in keyof Serializers]?: Serializers[Key_2][1]; }) => Record<string, string>;
|
|
34
|
+
};
|
|
35
|
+
export default urlSearchParamsSerializer;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const urlSearchParamsSerializer=(e,r)=>{let t=Object.keys(e).reduce((r,t)=>(r[t]=e[t][1],r),{}),l=e=>r?`${r}_${e}`:e,a=Object.keys(e).reduce((r,t)=>(r[t]=l(e[t][0]),r),{});return {names:Object.values(a),toNames:a,defaults:t,fromUrl:r=>{let t={};for(let a in e){let[u,c,o]=e[a],s=r.get(l(u));t[a]=s?o(s):c;}return t},toUrl:r=>{let a={};for(let u in t){let[t,c,,o]=e[u],s=o(r[u]??c);s&&(a[l(t)]=s);}return a}}};
|
|
2
|
+
|
|
3
|
+
export { urlSearchParamsSerializer as default, urlSearchParamsSerializer };
|