@naturalcycles/js-lib 14.168.2 → 14.170.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/error/error.util.d.ts +5 -3
- package/dist/error/error.util.js +6 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/promise/pRetry.js +1 -2
- package/dist/promise/pTimeout.js +1 -2
- package/dist/web.d.ts +18 -0
- package/dist/web.js +37 -0
- package/dist-esm/error/error.util.js +6 -3
- package/dist-esm/index.js +1 -0
- package/dist-esm/promise/pRetry.js +1 -2
- package/dist-esm/promise/pTimeout.js +1 -2
- package/dist-esm/web.js +35 -0
- package/package.json +1 -1
- package/src/error/error.util.ts +10 -7
- package/src/index.ts +1 -0
- package/src/promise/pRetry.ts +1 -2
- package/src/promise/pTimeout.ts +1 -2
- package/src/web.ts +41 -0
|
@@ -27,14 +27,16 @@ export declare function _isErrorObject<DATA_TYPE extends ErrorData = ErrorData>(
|
|
|
27
27
|
export declare function _isErrorLike(o: any): o is ErrorLike;
|
|
28
28
|
/**
|
|
29
29
|
* Convenience function to safely add properties to Error's `data` object
|
|
30
|
-
* (even if it wasn't previously existing)
|
|
30
|
+
* (even if it wasn't previously existing).
|
|
31
|
+
* Mutates err.
|
|
32
|
+
* Returns err for convenience, so you can re-throw it directly.
|
|
31
33
|
*
|
|
32
34
|
* @example
|
|
33
35
|
*
|
|
34
36
|
* try {} catch (err) {
|
|
35
|
-
* _errorDataAppend(err, {
|
|
37
|
+
* throw _errorDataAppend(err, {
|
|
36
38
|
* httpStatusCode: 401,
|
|
37
39
|
* })
|
|
38
40
|
* }
|
|
39
41
|
*/
|
|
40
|
-
export declare function _errorDataAppend(err:
|
|
42
|
+
export declare function _errorDataAppend<ERR>(err: ERR, data?: ErrorData): ERR;
|
package/dist/error/error.util.js
CHANGED
|
@@ -154,22 +154,25 @@ function _isErrorLike(o) {
|
|
|
154
154
|
exports._isErrorLike = _isErrorLike;
|
|
155
155
|
/**
|
|
156
156
|
* Convenience function to safely add properties to Error's `data` object
|
|
157
|
-
* (even if it wasn't previously existing)
|
|
157
|
+
* (even if it wasn't previously existing).
|
|
158
|
+
* Mutates err.
|
|
159
|
+
* Returns err for convenience, so you can re-throw it directly.
|
|
158
160
|
*
|
|
159
161
|
* @example
|
|
160
162
|
*
|
|
161
163
|
* try {} catch (err) {
|
|
162
|
-
* _errorDataAppend(err, {
|
|
164
|
+
* throw _errorDataAppend(err, {
|
|
163
165
|
* httpStatusCode: 401,
|
|
164
166
|
* })
|
|
165
167
|
* }
|
|
166
168
|
*/
|
|
167
169
|
function _errorDataAppend(err, data) {
|
|
168
170
|
if (!data)
|
|
169
|
-
return;
|
|
171
|
+
return err;
|
|
170
172
|
err.data = {
|
|
171
173
|
...err.data,
|
|
172
174
|
...data,
|
|
173
175
|
};
|
|
176
|
+
return err;
|
|
174
177
|
}
|
|
175
178
|
exports._errorDataAppend = _errorDataAppend;
|
package/dist/index.d.ts
CHANGED
|
@@ -82,6 +82,7 @@ export * from './string/hash.util';
|
|
|
82
82
|
export * from './env/buildInfo';
|
|
83
83
|
export * from './form.util';
|
|
84
84
|
export * from './semver';
|
|
85
|
+
export * from './web';
|
|
85
86
|
export * from './zod/zod.util';
|
|
86
87
|
export * from './zod/zod.shared.schemas';
|
|
87
88
|
import { z, ZodSchema, ZodError, ZodIssue } from 'zod';
|
package/dist/index.js
CHANGED
|
@@ -86,6 +86,7 @@ tslib_1.__exportStar(require("./string/hash.util"), exports);
|
|
|
86
86
|
tslib_1.__exportStar(require("./env/buildInfo"), exports);
|
|
87
87
|
tslib_1.__exportStar(require("./form.util"), exports);
|
|
88
88
|
tslib_1.__exportStar(require("./semver"), exports);
|
|
89
|
+
tslib_1.__exportStar(require("./web"), exports);
|
|
89
90
|
tslib_1.__exportStar(require("./zod/zod.util"), exports);
|
|
90
91
|
tslib_1.__exportStar(require("./zod/zod.shared.schemas"), exports);
|
|
91
92
|
const zod_1 = require("zod");
|
package/dist/promise/pRetry.js
CHANGED
|
@@ -56,8 +56,7 @@ async function pRetry(fn, opt = {}) {
|
|
|
56
56
|
}
|
|
57
57
|
if (attempt >= maxAttempts || (predicate && !predicate(err, attempt, maxAttempts))) {
|
|
58
58
|
// Give up
|
|
59
|
-
(0, __1._errorDataAppend)(err, opt.errorData);
|
|
60
|
-
throw err;
|
|
59
|
+
throw (0, __1._errorDataAppend)(err, opt.errorData);
|
|
61
60
|
}
|
|
62
61
|
// Retry after delay
|
|
63
62
|
delay *= delayMultiplier;
|
package/dist/promise/pTimeout.js
CHANGED
|
@@ -46,8 +46,7 @@ async function pTimeout(fn, opt) {
|
|
|
46
46
|
catch (err) {
|
|
47
47
|
// keep original stack
|
|
48
48
|
err.stack = fakeError.stack.replace('Error: TimeoutError', err.name + ': ' + err.message);
|
|
49
|
-
(0, error_util_1._errorDataAppend)(err, opt.errorData);
|
|
50
|
-
reject(err);
|
|
49
|
+
reject((0, error_util_1._errorDataAppend)(err, opt.errorData));
|
|
51
50
|
}
|
|
52
51
|
return;
|
|
53
52
|
}
|
package/dist/web.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
import { StringMap } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Implements WebStorage API by using in-memory storage.
|
|
5
|
+
* Can be useful in SSR environment or unit tests.
|
|
6
|
+
*
|
|
7
|
+
* @experimental
|
|
8
|
+
*/
|
|
9
|
+
export declare class InMemoryWebStorage implements Storage {
|
|
10
|
+
data: StringMap;
|
|
11
|
+
constructor(data?: StringMap);
|
|
12
|
+
getItem(key: string): string | null;
|
|
13
|
+
setItem(key: string, value: string): void;
|
|
14
|
+
removeItem(key: string): void;
|
|
15
|
+
key(index: number): string | null;
|
|
16
|
+
clear(): void;
|
|
17
|
+
get length(): number;
|
|
18
|
+
}
|
package/dist/web.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/// <reference lib="dom"/>
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.InMemoryWebStorage = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Implements WebStorage API by using in-memory storage.
|
|
7
|
+
* Can be useful in SSR environment or unit tests.
|
|
8
|
+
*
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
class InMemoryWebStorage {
|
|
12
|
+
constructor(data = {}) {
|
|
13
|
+
this.data = data;
|
|
14
|
+
}
|
|
15
|
+
// Not implementing "free property access" now for simplicity,
|
|
16
|
+
// but can be implemented with Proxy
|
|
17
|
+
// [ name: string ]: any
|
|
18
|
+
getItem(key) {
|
|
19
|
+
return this.data[key] ?? null;
|
|
20
|
+
}
|
|
21
|
+
setItem(key, value) {
|
|
22
|
+
this.data[key] = String(value);
|
|
23
|
+
}
|
|
24
|
+
removeItem(key) {
|
|
25
|
+
delete this.data[key];
|
|
26
|
+
}
|
|
27
|
+
key(index) {
|
|
28
|
+
return Object.keys(this.data)[index] ?? null;
|
|
29
|
+
}
|
|
30
|
+
clear() {
|
|
31
|
+
this.data = {};
|
|
32
|
+
}
|
|
33
|
+
get length() {
|
|
34
|
+
return Object.keys(this.data).length;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.InMemoryWebStorage = InMemoryWebStorage;
|
|
@@ -141,18 +141,21 @@ export function _isErrorLike(o) {
|
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
143
|
* Convenience function to safely add properties to Error's `data` object
|
|
144
|
-
* (even if it wasn't previously existing)
|
|
144
|
+
* (even if it wasn't previously existing).
|
|
145
|
+
* Mutates err.
|
|
146
|
+
* Returns err for convenience, so you can re-throw it directly.
|
|
145
147
|
*
|
|
146
148
|
* @example
|
|
147
149
|
*
|
|
148
150
|
* try {} catch (err) {
|
|
149
|
-
* _errorDataAppend(err, {
|
|
151
|
+
* throw _errorDataAppend(err, {
|
|
150
152
|
* httpStatusCode: 401,
|
|
151
153
|
* })
|
|
152
154
|
* }
|
|
153
155
|
*/
|
|
154
156
|
export function _errorDataAppend(err, data) {
|
|
155
157
|
if (!data)
|
|
156
|
-
return;
|
|
158
|
+
return err;
|
|
157
159
|
err.data = Object.assign(Object.assign({}, err.data), data);
|
|
160
|
+
return err;
|
|
158
161
|
}
|
package/dist-esm/index.js
CHANGED
|
@@ -82,6 +82,7 @@ export * from './string/hash.util';
|
|
|
82
82
|
export * from './env/buildInfo';
|
|
83
83
|
export * from './form.util';
|
|
84
84
|
export * from './semver';
|
|
85
|
+
export * from './web';
|
|
85
86
|
export * from './zod/zod.util';
|
|
86
87
|
export * from './zod/zod.shared.schemas';
|
|
87
88
|
import { z, ZodSchema, ZodError } from 'zod';
|
|
@@ -52,8 +52,7 @@ export async function pRetry(fn, opt = {}) {
|
|
|
52
52
|
}
|
|
53
53
|
if (attempt >= maxAttempts || (predicate && !predicate(err, attempt, maxAttempts))) {
|
|
54
54
|
// Give up
|
|
55
|
-
_errorDataAppend(err, opt.errorData);
|
|
56
|
-
throw err;
|
|
55
|
+
throw _errorDataAppend(err, opt.errorData);
|
|
57
56
|
}
|
|
58
57
|
// Retry after delay
|
|
59
58
|
delay *= delayMultiplier;
|
|
@@ -41,8 +41,7 @@ export async function pTimeout(fn, opt) {
|
|
|
41
41
|
catch (err) {
|
|
42
42
|
// keep original stack
|
|
43
43
|
err.stack = fakeError.stack.replace('Error: TimeoutError', err.name + ': ' + err.message);
|
|
44
|
-
_errorDataAppend(err, opt.errorData);
|
|
45
|
-
reject(err);
|
|
44
|
+
reject(_errorDataAppend(err, opt.errorData));
|
|
46
45
|
}
|
|
47
46
|
return;
|
|
48
47
|
}
|
package/dist-esm/web.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference lib="dom"/>
|
|
2
|
+
/**
|
|
3
|
+
* Implements WebStorage API by using in-memory storage.
|
|
4
|
+
* Can be useful in SSR environment or unit tests.
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export class InMemoryWebStorage {
|
|
9
|
+
constructor(data = {}) {
|
|
10
|
+
this.data = data;
|
|
11
|
+
}
|
|
12
|
+
// Not implementing "free property access" now for simplicity,
|
|
13
|
+
// but can be implemented with Proxy
|
|
14
|
+
// [ name: string ]: any
|
|
15
|
+
getItem(key) {
|
|
16
|
+
var _a;
|
|
17
|
+
return (_a = this.data[key]) !== null && _a !== void 0 ? _a : null;
|
|
18
|
+
}
|
|
19
|
+
setItem(key, value) {
|
|
20
|
+
this.data[key] = String(value);
|
|
21
|
+
}
|
|
22
|
+
removeItem(key) {
|
|
23
|
+
delete this.data[key];
|
|
24
|
+
}
|
|
25
|
+
key(index) {
|
|
26
|
+
var _a;
|
|
27
|
+
return (_a = Object.keys(this.data)[index]) !== null && _a !== void 0 ? _a : null;
|
|
28
|
+
}
|
|
29
|
+
clear() {
|
|
30
|
+
this.data = {};
|
|
31
|
+
}
|
|
32
|
+
get length() {
|
|
33
|
+
return Object.keys(this.data).length;
|
|
34
|
+
}
|
|
35
|
+
}
|
package/package.json
CHANGED
package/src/error/error.util.ts
CHANGED
|
@@ -185,21 +185,24 @@ export function _isErrorLike(o: any): o is ErrorLike {
|
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
187
|
* Convenience function to safely add properties to Error's `data` object
|
|
188
|
-
* (even if it wasn't previously existing)
|
|
188
|
+
* (even if it wasn't previously existing).
|
|
189
|
+
* Mutates err.
|
|
190
|
+
* Returns err for convenience, so you can re-throw it directly.
|
|
189
191
|
*
|
|
190
192
|
* @example
|
|
191
193
|
*
|
|
192
194
|
* try {} catch (err) {
|
|
193
|
-
* _errorDataAppend(err, {
|
|
195
|
+
* throw _errorDataAppend(err, {
|
|
194
196
|
* httpStatusCode: 401,
|
|
195
197
|
* })
|
|
196
198
|
* }
|
|
197
199
|
*/
|
|
198
|
-
export function _errorDataAppend(err:
|
|
199
|
-
if (!data) return
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
...err.data,
|
|
200
|
+
export function _errorDataAppend<ERR>(err: ERR, data?: ErrorData): ERR {
|
|
201
|
+
if (!data) return err
|
|
202
|
+
;(err as any).data = {
|
|
203
|
+
...(err as any).data,
|
|
203
204
|
...data,
|
|
204
205
|
}
|
|
206
|
+
|
|
207
|
+
return err
|
|
205
208
|
}
|
package/src/index.ts
CHANGED
|
@@ -82,6 +82,7 @@ export * from './string/hash.util'
|
|
|
82
82
|
export * from './env/buildInfo'
|
|
83
83
|
export * from './form.util'
|
|
84
84
|
export * from './semver'
|
|
85
|
+
export * from './web'
|
|
85
86
|
export * from './zod/zod.util'
|
|
86
87
|
export * from './zod/zod.shared.schemas'
|
|
87
88
|
import { z, ZodSchema, ZodError, ZodIssue } from 'zod'
|
package/src/promise/pRetry.ts
CHANGED
|
@@ -163,8 +163,7 @@ export async function pRetry<T>(
|
|
|
163
163
|
|
|
164
164
|
if (attempt >= maxAttempts || (predicate && !predicate(err as Error, attempt, maxAttempts))) {
|
|
165
165
|
// Give up
|
|
166
|
-
_errorDataAppend(err, opt.errorData)
|
|
167
|
-
throw err
|
|
166
|
+
throw _errorDataAppend(err, opt.errorData)
|
|
168
167
|
}
|
|
169
168
|
|
|
170
169
|
// Retry after delay
|
package/src/promise/pTimeout.ts
CHANGED
|
@@ -82,8 +82,7 @@ export async function pTimeout<T>(fn: AnyAsyncFunction<T>, opt: PTimeoutOptions)
|
|
|
82
82
|
} catch (err: any) {
|
|
83
83
|
// keep original stack
|
|
84
84
|
err.stack = fakeError.stack!.replace('Error: TimeoutError', err.name + ': ' + err.message)
|
|
85
|
-
_errorDataAppend(err, opt.errorData)
|
|
86
|
-
reject(err)
|
|
85
|
+
reject(_errorDataAppend(err, opt.errorData))
|
|
87
86
|
}
|
|
88
87
|
return
|
|
89
88
|
}
|
package/src/web.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/// <reference lib="dom"/>
|
|
2
|
+
|
|
3
|
+
import { StringMap } from './types'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Implements WebStorage API by using in-memory storage.
|
|
7
|
+
* Can be useful in SSR environment or unit tests.
|
|
8
|
+
*
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
export class InMemoryWebStorage implements Storage {
|
|
12
|
+
constructor(public data: StringMap = {}) {}
|
|
13
|
+
|
|
14
|
+
// Not implementing "free property access" now for simplicity,
|
|
15
|
+
// but can be implemented with Proxy
|
|
16
|
+
// [ name: string ]: any
|
|
17
|
+
|
|
18
|
+
getItem(key: string): string | null {
|
|
19
|
+
return this.data[key] ?? null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
setItem(key: string, value: string): void {
|
|
23
|
+
this.data[key] = String(value)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
removeItem(key: string): void {
|
|
27
|
+
delete this.data[key]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
key(index: number): string | null {
|
|
31
|
+
return Object.keys(this.data)[index] ?? null
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
clear(): void {
|
|
35
|
+
this.data = {}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
get length(): number {
|
|
39
|
+
return Object.keys(this.data).length
|
|
40
|
+
}
|
|
41
|
+
}
|