@postxl/utils 0.1.25 → 0.1.29
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/datetime.d.ts +18 -0
- package/dist/datetime.d.ts.map +1 -1
- package/dist/datetime.js +21 -0
- package/dist/datetime.js.map +1 -1
- package/dist/random.d.ts +7 -1
- package/dist/random.d.ts.map +1 -1
- package/dist/random.js +45 -6
- package/dist/random.js.map +1 -1
- package/dist/result.d.ts +28 -18
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +114 -44
- package/dist/result.js.map +1 -1
- package/dist/string.d.ts +13 -0
- package/dist/string.d.ts.map +1 -1
- package/dist/string.js +38 -0
- package/dist/string.js.map +1 -1
- package/dist/zod-excel.decoders.d.ts +12 -2
- package/dist/zod-excel.decoders.d.ts.map +1 -1
- package/dist/zod-excel.decoders.js +20 -7
- package/dist/zod-excel.decoders.js.map +1 -1
- package/package.json +1 -1
package/dist/datetime.d.ts
CHANGED
|
@@ -2,4 +2,22 @@
|
|
|
2
2
|
* returns the default time stamp in format YYMMDD HHMM
|
|
3
3
|
*/
|
|
4
4
|
export declare function timeStamp(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Checks if a value is a valid Date object.
|
|
7
|
+
* Returns true only for Date instances that are not Invalid Date.
|
|
8
|
+
* This function is isomorphic and works in both Node.js and browser environments.
|
|
9
|
+
*
|
|
10
|
+
* @param value - The value to check
|
|
11
|
+
* @returns true if the value is a valid Date object, false otherwise
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* isDate(new Date()) // true
|
|
15
|
+
* isDate(new Date('2023-01-01')) // true
|
|
16
|
+
* isDate(new Date('invalid')) // false (Invalid Date)
|
|
17
|
+
* isDate('2023-01-01') // false
|
|
18
|
+
* isDate(1234567890) // false
|
|
19
|
+
* isDate(null) // false
|
|
20
|
+
* isDate(undefined) // false
|
|
21
|
+
*/
|
|
22
|
+
export declare function isDate(value: unknown): value is Date;
|
|
5
23
|
//# sourceMappingURL=datetime.d.ts.map
|
package/dist/datetime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAQlC"}
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD"}
|
package/dist/datetime.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.timeStamp = timeStamp;
|
|
4
|
+
exports.isDate = isDate;
|
|
4
5
|
/**
|
|
5
6
|
* returns the default time stamp in format YYMMDD HHMM
|
|
6
7
|
*/
|
|
@@ -13,4 +14,24 @@ function timeStamp() {
|
|
|
13
14
|
const minute = date.getMinutes().toString().padStart(2, '0');
|
|
14
15
|
return `${year}${month}${day} ${hour}${minute}`;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a value is a valid Date object.
|
|
19
|
+
* Returns true only for Date instances that are not Invalid Date.
|
|
20
|
+
* This function is isomorphic and works in both Node.js and browser environments.
|
|
21
|
+
*
|
|
22
|
+
* @param value - The value to check
|
|
23
|
+
* @returns true if the value is a valid Date object, false otherwise
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* isDate(new Date()) // true
|
|
27
|
+
* isDate(new Date('2023-01-01')) // true
|
|
28
|
+
* isDate(new Date('invalid')) // false (Invalid Date)
|
|
29
|
+
* isDate('2023-01-01') // false
|
|
30
|
+
* isDate(1234567890) // false
|
|
31
|
+
* isDate(null) // false
|
|
32
|
+
* isDate(undefined) // false
|
|
33
|
+
*/
|
|
34
|
+
function isDate(value) {
|
|
35
|
+
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
36
|
+
}
|
|
16
37
|
//# sourceMappingURL=datetime.js.map
|
package/dist/datetime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":";;AAGA,8BAQC;
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":";;AAGA,8BAQC;AAmBD,wBAEC;AAhCD;;GAEG;AACH,SAAgB,SAAS;IACvB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5D,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,MAAM,EAAE,CAAA;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;AAChE,CAAC"}
|
package/dist/random.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a random integer between 0 (inclusive) and max (exclusive).
|
|
3
|
+
*
|
|
4
|
+
* Isomorphic implementation for Node.js, Deno, Bun, and browser environments.
|
|
5
|
+
*/
|
|
6
|
+
export declare function randomInt(max: number): number;
|
|
1
7
|
/**
|
|
2
8
|
* Returns a randomly generated alphanumeric string.
|
|
3
9
|
*/
|
|
4
|
-
export declare
|
|
10
|
+
export declare function generateRandomAlphanumericString(length: number): string;
|
|
5
11
|
//# sourceMappingURL=random.d.ts.map
|
package/dist/random.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAwB7C;AAmBD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMvE"}
|
package/dist/random.js
CHANGED
|
@@ -1,17 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.randomInt = randomInt;
|
|
4
|
+
exports.generateRandomAlphanumericString = generateRandomAlphanumericString;
|
|
5
|
+
/**
|
|
6
|
+
* Returns a random integer between 0 (inclusive) and max (exclusive).
|
|
7
|
+
*
|
|
8
|
+
* Isomorphic implementation for Node.js, Deno, Bun, and browser environments.
|
|
9
|
+
*/
|
|
10
|
+
function randomInt(max) {
|
|
11
|
+
// Browser environment
|
|
12
|
+
// prettier-ignore
|
|
13
|
+
if (typeof globalThis.window !== 'undefined') { // NOSONAR
|
|
14
|
+
return browserRandomInt(max);
|
|
15
|
+
}
|
|
16
|
+
// Try Node.js/Bun crypto.randomInt first
|
|
17
|
+
try {
|
|
18
|
+
const req = eval('typeof require !== "undefined" ? require : undefined');
|
|
19
|
+
if (req) {
|
|
20
|
+
const { randomInt } = req('node:crypto'); // NOSONAR
|
|
21
|
+
return randomInt(max);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Fall through to Web Crypto API
|
|
26
|
+
}
|
|
27
|
+
// Deno or other environments with Web Crypto API
|
|
28
|
+
if (typeof crypto !== 'undefined') {
|
|
29
|
+
return browserRandomInt(max);
|
|
30
|
+
}
|
|
31
|
+
throw new Error('No suitable random number generator available');
|
|
32
|
+
}
|
|
33
|
+
function browserRandomInt(max) {
|
|
34
|
+
// Browser - use rejection sampling to avoid modulo bias
|
|
35
|
+
const randomMax = 0x100000000; // 2^32
|
|
36
|
+
const range = randomMax - (randomMax % max);
|
|
37
|
+
let value;
|
|
38
|
+
do {
|
|
39
|
+
const array = new Uint32Array(1);
|
|
40
|
+
crypto.getRandomValues(array);
|
|
41
|
+
value = array[0];
|
|
42
|
+
} while (value >= range);
|
|
43
|
+
return value % max;
|
|
44
|
+
}
|
|
5
45
|
const CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
|
6
46
|
/**
|
|
7
47
|
* Returns a randomly generated alphanumeric string.
|
|
8
48
|
*/
|
|
9
|
-
|
|
49
|
+
function generateRandomAlphanumericString(length) {
|
|
10
50
|
let result = '';
|
|
11
51
|
for (let i = 0; i < length; i++) {
|
|
12
|
-
result += CHARS[
|
|
52
|
+
result += CHARS[randomInt(CHARS.length)];
|
|
13
53
|
}
|
|
14
54
|
return result;
|
|
15
|
-
}
|
|
16
|
-
exports.generateRandomAlphanumericString = generateRandomAlphanumericString;
|
|
55
|
+
}
|
|
17
56
|
//# sourceMappingURL=random.js.map
|
package/dist/random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":";;AAKA,8BAwBC;AAsBD,4EAMC;AAzDD;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,sBAAsB;IACtB,kBAAkB;IAClB,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC,CAAC,UAAU;QACxD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,sDAAsD,CAA4B,CAAA;QACnG,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,aAAa,CAAiC,CAAA,CAAC,UAAU;YACnF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,wDAAwD;IACxD,MAAM,SAAS,GAAG,WAAW,CAAA,CAAC,OAAO;IACrC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;IAE3C,IAAI,KAAa,CAAA;IACjB,GAAG,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7B,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;IACnB,CAAC,QAAQ,KAAK,IAAI,KAAK,EAAC;IAExB,OAAO,KAAK,GAAG,GAAG,CAAA;AACpB,CAAC;AAED,MAAM,KAAK,GAAG,sCAAsC,CAAA;AAEpD;;GAEG;AACH,SAAgB,gCAAgC,CAAC,MAAc;IAC7D,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/result.d.ts
CHANGED
|
@@ -1,25 +1,35 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export type SerializedResult<A, E> = {
|
|
2
|
+
tag: 'ok';
|
|
3
|
+
value: A;
|
|
4
|
+
} | {
|
|
5
|
+
tag: 'err';
|
|
6
|
+
err: E;
|
|
6
7
|
};
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
export declare class Result<A, E> {
|
|
9
|
+
#private;
|
|
10
|
+
static ok<A, E>(value: A): Result<A, E>;
|
|
11
|
+
static err<A, E>(value: E): Result<A, E>;
|
|
12
|
+
static fromThrowable<A, E>(f: () => A, handleError: (error: Error) => E): Result<A, E>;
|
|
13
|
+
static fromObject<A, E>(result: SerializedResult<A, E>): Result<A, E>;
|
|
14
|
+
static fromPromise<A, E>(promise: () => Promise<A>, handleError: (error: Error) => E): Promise<Result<A, E>>;
|
|
15
|
+
private constructor();
|
|
16
|
+
private constructor();
|
|
17
|
+
isOk(): this is Result<A, never>;
|
|
18
|
+
isErr(): this is Result<never, E>;
|
|
19
|
+
map<B>(f: (a: A) => B): Result<B, E>;
|
|
20
|
+
mapErr<X>(f: (e: E) => X): Result<A, X>;
|
|
21
|
+
andThen<B>(f: (a: A) => Result<B, E>): Result<B, E>;
|
|
22
|
+
withDefault(fallback: A): A;
|
|
23
|
+
unwrap(): A;
|
|
24
|
+
unwrapErr(): E;
|
|
25
|
+
toJSON(): SerializedResult<A, E>;
|
|
26
|
+
}
|
|
27
|
+
export declare const ok: typeof Result.ok;
|
|
28
|
+
export declare const err: typeof Result.err;
|
|
20
29
|
export type TypedError<T extends string> = {
|
|
21
30
|
type: T;
|
|
22
31
|
message: string;
|
|
23
32
|
error: Error;
|
|
24
33
|
};
|
|
34
|
+
export default Result;
|
|
25
35
|
//# sourceMappingURL=result.d.ts.map
|
package/dist/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAAA;AAErF,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;;IACtB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIvC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIxC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAQtF,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;WAQxD,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAelH,OAAO;IACP,OAAO;IAOP,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAIhC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAIjC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAQpC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAQvC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAQnD,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;IAI3B,MAAM,IAAI,CAAC;IAQX,SAAS,IAAI,CAAC;IAQd,MAAM,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;CAOjC;AAED,eAAO,MAAM,EAAE,kBAAY,CAAA;AAC3B,eAAO,MAAM,GAAG,mBAAa,CAAA;AAE7B,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IACzC,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAe,MAAM,CAAA"}
|
package/dist/result.js
CHANGED
|
@@ -1,50 +1,120 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
type: exports.OK,
|
|
8
|
-
value,
|
|
9
|
-
});
|
|
10
|
-
exports.ok = ok;
|
|
11
|
-
const err = (error) => ({
|
|
12
|
-
type: exports.ERR,
|
|
13
|
-
error,
|
|
14
|
-
});
|
|
15
|
-
exports.err = err;
|
|
16
|
-
const result = async (getValue, errHandler) => {
|
|
17
|
-
try {
|
|
18
|
-
return (0, exports.ok)(await getValue());
|
|
19
|
-
}
|
|
20
|
-
catch (e) {
|
|
21
|
-
return (0, exports.err)(errHandler(e));
|
|
22
|
-
}
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
23
7
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
exports.isErr = isErr;
|
|
29
|
-
const unwrap = (r) => {
|
|
30
|
-
if ((0, exports.isErr)(r)) {
|
|
31
|
-
throw new Error(typeof r.error === 'string' ? r.error : JSON.stringify(r.error));
|
|
32
|
-
}
|
|
33
|
-
return r.value;
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
34
12
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
13
|
+
var _Result_tag, _Result_value, _Result_error;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.err = exports.ok = exports.Result = void 0;
|
|
16
|
+
class Result {
|
|
17
|
+
static ok(value) {
|
|
18
|
+
return new Result('ok', value);
|
|
39
19
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
exports.withDefault = withDefault;
|
|
43
|
-
const map = (func, r) => {
|
|
44
|
-
if (r.type === exports.ERR) {
|
|
45
|
-
return r;
|
|
20
|
+
static err(value) {
|
|
21
|
+
return new Result('err', value);
|
|
46
22
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
23
|
+
static fromThrowable(f, handleError) {
|
|
24
|
+
try {
|
|
25
|
+
return Result.ok(f());
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return Result.err(handleError(error));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
static fromObject(result) {
|
|
32
|
+
if (result.tag === 'ok') {
|
|
33
|
+
return Result.ok(result.value);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return Result.err(result.err);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
static async fromPromise(promise, handleError) {
|
|
40
|
+
try {
|
|
41
|
+
return Result.ok(await promise());
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
return Result.err(handleError(error));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
constructor(tag, value) {
|
|
48
|
+
// We track the tag separately from the value and error to allow for us to use
|
|
49
|
+
// `null` as a valid value.
|
|
50
|
+
_Result_tag.set(this, void 0);
|
|
51
|
+
_Result_value.set(this, void 0);
|
|
52
|
+
_Result_error.set(this, void 0);
|
|
53
|
+
__classPrivateFieldSet(this, _Result_tag, tag, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _Result_value, tag === 'ok' ? value : null, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _Result_error, tag === 'err' ? value : null, "f");
|
|
56
|
+
}
|
|
57
|
+
isOk() {
|
|
58
|
+
return __classPrivateFieldGet(this, _Result_tag, "f") === 'ok';
|
|
59
|
+
}
|
|
60
|
+
isErr() {
|
|
61
|
+
return __classPrivateFieldGet(this, _Result_tag, "f") === 'err';
|
|
62
|
+
}
|
|
63
|
+
map(f) {
|
|
64
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'ok') {
|
|
65
|
+
return Result.ok(f(__classPrivateFieldGet(this, _Result_value, "f")));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
mapErr(f) {
|
|
72
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'err') {
|
|
73
|
+
return Result.err(f(__classPrivateFieldGet(this, _Result_error, "f")));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
andThen(f) {
|
|
80
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'ok') {
|
|
81
|
+
return f(__classPrivateFieldGet(this, _Result_value, "f"));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
withDefault(fallback) {
|
|
88
|
+
return __classPrivateFieldGet(this, _Result_tag, "f") === 'ok' ? __classPrivateFieldGet(this, _Result_value, "f") : fallback;
|
|
89
|
+
}
|
|
90
|
+
unwrap() {
|
|
91
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'ok') {
|
|
92
|
+
return __classPrivateFieldGet(this, _Result_value, "f");
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw new Error(typeof __classPrivateFieldGet(this, _Result_error, "f") === 'string' ? __classPrivateFieldGet(this, _Result_error, "f") : JSON.stringify(__classPrivateFieldGet(this, _Result_error, "f")));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
unwrapErr() {
|
|
99
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'err') {
|
|
100
|
+
return __classPrivateFieldGet(this, _Result_error, "f");
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
throw new Error('tried to unwrap an ok result');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
toJSON() {
|
|
107
|
+
if (__classPrivateFieldGet(this, _Result_tag, "f") === 'ok') {
|
|
108
|
+
return { tag: 'ok', value: __classPrivateFieldGet(this, _Result_value, "f") };
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
return { tag: 'err', err: __classPrivateFieldGet(this, _Result_error, "f") };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.Result = Result;
|
|
116
|
+
_Result_tag = new WeakMap(), _Result_value = new WeakMap(), _Result_error = new WeakMap();
|
|
117
|
+
exports.ok = Result.ok;
|
|
118
|
+
exports.err = Result.err;
|
|
119
|
+
exports.default = Result;
|
|
50
120
|
//# sourceMappingURL=result.js.map
|
package/dist/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
package/dist/string.d.ts
CHANGED
|
@@ -129,5 +129,18 @@ export type Conjugated = {
|
|
|
129
129
|
export declare function conjugateNames(name: string): Conjugated;
|
|
130
130
|
export declare function slugify(str: string): string;
|
|
131
131
|
export declare function isSlug(str: string): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Ensures that a string is unique within a list of existing values by appending a sequential number if necessary.
|
|
134
|
+
*
|
|
135
|
+
* If the base string is not in the list, it is returned as is.
|
|
136
|
+
* If it is, the function looks for existing strings in the format "base (n)" where n is a number,
|
|
137
|
+
* and returns the next available sequential string.
|
|
138
|
+
*
|
|
139
|
+
* @param value - The base string to ensure uniqueness for.
|
|
140
|
+
* @param existingValues - An array of existing strings to check against.
|
|
141
|
+
* @param maxChecks - Maximum number of checks to be performed. An error is thrown if this limit is exceeded. Default is 100
|
|
142
|
+
* @returns A unique string based on the base string.
|
|
143
|
+
*/
|
|
144
|
+
export declare const ensureUnique: (value: string, existingValues: string[], maxChecks?: number) => string;
|
|
132
145
|
export {};
|
|
133
146
|
//# sourceMappingURL=string.d.ts.map
|
package/dist/string.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"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"}
|
package/dist/string.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureUnique = void 0;
|
|
3
4
|
exports.upperFirst = upperFirst;
|
|
4
5
|
exports.lowerFirst = lowerFirst;
|
|
5
6
|
exports.pluralize = pluralize;
|
|
@@ -369,4 +370,41 @@ function slugify(str) {
|
|
|
369
370
|
function isSlug(str) {
|
|
370
371
|
return /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(str);
|
|
371
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* Ensures that a string is unique within a list of existing values by appending a sequential number if necessary.
|
|
375
|
+
*
|
|
376
|
+
* If the base string is not in the list, it is returned as is.
|
|
377
|
+
* If it is, the function looks for existing strings in the format "base (n)" where n is a number,
|
|
378
|
+
* and returns the next available sequential string.
|
|
379
|
+
*
|
|
380
|
+
* @param value - The base string to ensure uniqueness for.
|
|
381
|
+
* @param existingValues - An array of existing strings to check against.
|
|
382
|
+
* @param maxChecks - Maximum number of checks to be performed. An error is thrown if this limit is exceeded. Default is 100
|
|
383
|
+
* @returns A unique string based on the base string.
|
|
384
|
+
*/
|
|
385
|
+
const ensureUnique = (value, existingValues, maxChecks = 100) => {
|
|
386
|
+
// convert existingValues to a Set for faster lookup
|
|
387
|
+
const values = new Set(existingValues);
|
|
388
|
+
// if the base itself (without a number) is not in the list, return it
|
|
389
|
+
if (!values.has(value)) {
|
|
390
|
+
return value;
|
|
391
|
+
}
|
|
392
|
+
let base = value.trim();
|
|
393
|
+
let num = 0;
|
|
394
|
+
// Regex to match a numeric suffix like " (n)" at the end of the string.
|
|
395
|
+
// Using a targeted pattern avoids catastrophic backtracking for inputs without such a suffix.
|
|
396
|
+
const m = /\((\d{1,5})\)$/.exec(value);
|
|
397
|
+
if (m && /\s$/.test(value.slice(0, m.index))) {
|
|
398
|
+
base = value.slice(0, m.index).trimEnd();
|
|
399
|
+
}
|
|
400
|
+
while (num < maxChecks) {
|
|
401
|
+
const newValue = num === 0 ? base : `${base} (${num})`;
|
|
402
|
+
if (!values.has(newValue)) {
|
|
403
|
+
return newValue;
|
|
404
|
+
}
|
|
405
|
+
num++;
|
|
406
|
+
}
|
|
407
|
+
throw new Error(`Could not find a unique name for "${value}" after ${maxChecks} checks`);
|
|
408
|
+
};
|
|
409
|
+
exports.ensureUnique = ensureUnique;
|
|
372
410
|
//# sourceMappingURL=string.js.map
|
package/dist/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ export declare const excelStringStrictDecoder: z.ZodEffects<z.ZodUnion<[z.ZodStr
|
|
|
27
27
|
* - If the value is boolean, it'll return 'true' or 'false'
|
|
28
28
|
* - If the value is null or undefined, it'll return an empty string
|
|
29
29
|
* - If the value is any other type, it'll return an empty string
|
|
30
|
+
*
|
|
31
|
+
* Null handling: Null values/blank cells will be converted to a blank string.
|
|
30
32
|
*/
|
|
31
33
|
export declare const excelStringDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined, z.ZodAny]>, string, any>;
|
|
32
34
|
/**
|
|
@@ -38,10 +40,13 @@ export declare const excelStringDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z
|
|
|
38
40
|
*
|
|
39
41
|
* It'll perform casting based on the following rules:
|
|
40
42
|
* - If the value is a number, it'll be converted to a string
|
|
41
|
-
* - If the value is a string, it'll be returned as-is
|
|
43
|
+
* - If the value is a string, it'll be returned as-is - except blank strings, which will be converted to null
|
|
42
44
|
* - If the value is boolean, it'll return 'true' or 'false'
|
|
43
45
|
* - If the value is null or undefined, it'll return null
|
|
44
46
|
* - If the value is any other type, it'll return null
|
|
47
|
+
*
|
|
48
|
+
* Null handling: Blank strings will be converted to null. This is to reflect that in Excel a formula
|
|
49
|
+
* cannot return null. As a workaround, one often returns a blank string to represent null.
|
|
45
50
|
*/
|
|
46
51
|
export declare const excelStringNullableDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined, z.ZodAny]>, string | null, any>;
|
|
47
52
|
/**
|
|
@@ -63,6 +68,8 @@ export declare const excelNumberStrictDecoder: z.ZodEffects<z.ZodUnion<[z.ZodStr
|
|
|
63
68
|
* - If the value is a string, it'll try to parse it to a number. Blank strings and non-numerical strings will be converted to 0.
|
|
64
69
|
* - If the value is boolean, it'll return 1 or 0
|
|
65
70
|
* - If the value is any other type, it'll return 0
|
|
71
|
+
*
|
|
72
|
+
* Null handling: Null values/blank cells will be converted to blank strings.
|
|
66
73
|
*/
|
|
67
74
|
export declare const excelNumberDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined, z.ZodAny]>, number, any>;
|
|
68
75
|
/**
|
|
@@ -70,9 +77,12 @@ export declare const excelNumberDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z
|
|
|
70
77
|
|
|
71
78
|
* It'll perform casting based on the following rules:
|
|
72
79
|
* - If the value is a number, it'll be returned as-is
|
|
73
|
-
* - If the value is a string, it'll try to parse it to a number.
|
|
80
|
+
* - If the value is a string, it'll try to parse it to a number. Non-numerical and blank strings will be converted to null
|
|
74
81
|
* - If the value is boolean, it'll return 1 or 0
|
|
75
82
|
* - If the value is any other type, it'll return null
|
|
83
|
+
*
|
|
84
|
+
* Null handling: Blank strings will be converted to null. This is to reflect that in Excel a formula
|
|
85
|
+
* cannot return null. As a workaround, one often returns a blank string to represent null.
|
|
76
86
|
*/
|
|
77
87
|
export declare const excelNumberNullableDecoder: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNull, z.ZodNumber, z.ZodUndefined, z.ZodAny]>, number | null, any>;
|
|
78
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-excel.decoders.d.ts","sourceRoot":"","sources":["../src/zod-excel.decoders.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"zod-excel.decoders.d.ts","sourceRoot":"","sources":["../src/zod-excel.decoders.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.excelDateNullableDecoder = exports.excelDateDecoder = exports.excelBooleanNullableDecoder = exports.excelBooleanDecoder = exports.excelBooleanStrictDecoder = exports.excelBigIntNullableDecoder = exports.excelBigIntDecoder = exports.excelBigIntStrictDecoder = exports.excelIntNullableDecoder = exports.excelIntDecoder = exports.excelIntStrictDecoder = exports.excelNumberNullableDecoder = exports.excelNumberDecoder = exports.excelNumberStrictDecoder = exports.excelStringNullableDecoder = exports.excelStringDecoder = exports.excelStringStrictDecoder = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const datetime_1 = require("./datetime");
|
|
8
9
|
/**
|
|
9
10
|
* Transformer that verifies that the number is an integer
|
|
10
11
|
*/
|
|
@@ -24,7 +25,7 @@ const intValidator = (x, ctx) => {
|
|
|
24
25
|
* is applied
|
|
25
26
|
*/
|
|
26
27
|
const nullableTransformer = (transformer) => (x, ctx) => {
|
|
27
|
-
if (x === null || x === undefined) {
|
|
28
|
+
if (x === null || x === undefined || (typeof x === 'string' && x === '')) {
|
|
28
29
|
return null;
|
|
29
30
|
}
|
|
30
31
|
return transformer(x, ctx);
|
|
@@ -65,6 +66,8 @@ exports.excelStringStrictDecoder = zod_1.default.union([zod_1.default.string(),
|
|
|
65
66
|
* - If the value is boolean, it'll return 'true' or 'false'
|
|
66
67
|
* - If the value is null or undefined, it'll return an empty string
|
|
67
68
|
* - If the value is any other type, it'll return an empty string
|
|
69
|
+
*
|
|
70
|
+
* Null handling: Null values/blank cells will be converted to a blank string.
|
|
68
71
|
*/
|
|
69
72
|
exports.excelStringDecoder = zod_1.default.union([zod_1.default.string(), zod_1.default.number(), zod_1.default.boolean(), zod_1.default.null(), zod_1.default.undefined(), zod_1.default.any()]).transform((x) => {
|
|
70
73
|
if (x === null || x === undefined) {
|
|
@@ -90,10 +93,13 @@ exports.excelStringDecoder = zod_1.default.union([zod_1.default.string(), zod_1.
|
|
|
90
93
|
*
|
|
91
94
|
* It'll perform casting based on the following rules:
|
|
92
95
|
* - If the value is a number, it'll be converted to a string
|
|
93
|
-
* - If the value is a string, it'll be returned as-is
|
|
96
|
+
* - If the value is a string, it'll be returned as-is - except blank strings, which will be converted to null
|
|
94
97
|
* - If the value is boolean, it'll return 'true' or 'false'
|
|
95
98
|
* - If the value is null or undefined, it'll return null
|
|
96
99
|
* - If the value is any other type, it'll return null
|
|
100
|
+
*
|
|
101
|
+
* Null handling: Blank strings will be converted to null. This is to reflect that in Excel a formula
|
|
102
|
+
* cannot return null. As a workaround, one often returns a blank string to represent null.
|
|
97
103
|
*/
|
|
98
104
|
exports.excelStringNullableDecoder = zod_1.default.union([zod_1.default.string(), zod_1.default.number(), zod_1.default.boolean(), zod_1.default.null(), zod_1.default.undefined(), zod_1.default.any()]).transform((x) => {
|
|
99
105
|
if (x === null || x === undefined) {
|
|
@@ -106,6 +112,9 @@ exports.excelStringNullableDecoder = zod_1.default.union([zod_1.default.string()
|
|
|
106
112
|
return x ? 'true' : 'false';
|
|
107
113
|
}
|
|
108
114
|
if (typeof x === 'string') {
|
|
115
|
+
if (x === '') {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
109
118
|
return x;
|
|
110
119
|
}
|
|
111
120
|
return null;
|
|
@@ -116,7 +125,7 @@ const excelNumberTransformer = (x) => {
|
|
|
116
125
|
return null;
|
|
117
126
|
}
|
|
118
127
|
const parsed = parseFloat(x);
|
|
119
|
-
if (isNaN(parsed)) {
|
|
128
|
+
if (Number.isNaN(parsed)) {
|
|
120
129
|
return null;
|
|
121
130
|
}
|
|
122
131
|
return parsed;
|
|
@@ -158,6 +167,8 @@ exports.excelNumberStrictDecoder = zod_1.default.union([zod_1.default.string(),
|
|
|
158
167
|
* - If the value is a string, it'll try to parse it to a number. Blank strings and non-numerical strings will be converted to 0.
|
|
159
168
|
* - If the value is boolean, it'll return 1 or 0
|
|
160
169
|
* - If the value is any other type, it'll return 0
|
|
170
|
+
*
|
|
171
|
+
* Null handling: Null values/blank cells will be converted to blank strings.
|
|
161
172
|
*/
|
|
162
173
|
exports.excelNumberDecoder = zod_1.default.union([zod_1.default.string(), zod_1.default.number(), zod_1.default.boolean(), zod_1.default.null(), zod_1.default.undefined(), zod_1.default.any()]).transform((x) => {
|
|
163
174
|
const result = excelNumberTransformer(x);
|
|
@@ -171,9 +182,12 @@ exports.excelNumberDecoder = zod_1.default.union([zod_1.default.string(), zod_1.
|
|
|
171
182
|
|
|
172
183
|
* It'll perform casting based on the following rules:
|
|
173
184
|
* - If the value is a number, it'll be returned as-is
|
|
174
|
-
* - If the value is a string, it'll try to parse it to a number.
|
|
185
|
+
* - If the value is a string, it'll try to parse it to a number. Non-numerical and blank strings will be converted to null
|
|
175
186
|
* - If the value is boolean, it'll return 1 or 0
|
|
176
187
|
* - If the value is any other type, it'll return null
|
|
188
|
+
*
|
|
189
|
+
* Null handling: Blank strings will be converted to null. This is to reflect that in Excel a formula
|
|
190
|
+
* cannot return null. As a workaround, one often returns a blank string to represent null.
|
|
177
191
|
*/
|
|
178
192
|
exports.excelNumberNullableDecoder = zod_1.default.union([zod_1.default.string(), zod_1.default.null(), zod_1.default.number(), zod_1.default.undefined(), zod_1.default.any()]).transform(excelNumberTransformer);
|
|
179
193
|
/**
|
|
@@ -292,12 +306,11 @@ exports.excelBooleanDecoder = zod_1.default.union([zod_1.default.boolean(), zod_
|
|
|
292
306
|
exports.excelBooleanNullableDecoder = zod_1.default
|
|
293
307
|
.union([zod_1.default.boolean(), zod_1.default.number(), zod_1.default.null(), zod_1.default.string(), zod_1.default.undefined(), zod_1.default.any()])
|
|
294
308
|
.transform(excelBooleanNullableTransformer);
|
|
295
|
-
const isDate = (v) => Object.prototype.toString.call(v) === '[object Date]';
|
|
296
309
|
const excelDateNullableTransformer = (x, ctx) => {
|
|
297
310
|
if (x === null || x === undefined) {
|
|
298
311
|
return null;
|
|
299
312
|
}
|
|
300
|
-
if (isDate(x)) {
|
|
313
|
+
if ((0, datetime_1.isDate)(x)) {
|
|
301
314
|
return x;
|
|
302
315
|
}
|
|
303
316
|
if (typeof x === 'number') {
|
|
@@ -314,7 +327,7 @@ const excelDateNullableTransformer = (x, ctx) => {
|
|
|
314
327
|
return null;
|
|
315
328
|
}
|
|
316
329
|
const result = new Date(x);
|
|
317
|
-
if (isNaN(result.getTime())) {
|
|
330
|
+
if (Number.isNaN(result.getTime())) {
|
|
318
331
|
ctx.addIssue({
|
|
319
332
|
code: zod_1.default.ZodIssueCode.custom,
|
|
320
333
|
message: `Not a date: ${x}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-excel.decoders.js","sourceRoot":"","sources":["../src/zod-excel.decoders.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmB;AAEnB;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,GAAoB,EAAU,EAAE;IAC/D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,aAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,mBAAmB,CAAC,EAAE;SAChC,CAAC,CAAA;QACF,OAAO,aAAC,CAAC,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,mBAAmB,GACvB,CAAO,WAA8C,EAAE,EAAE,CACzD,CAAC,CAAuB,EAAE,GAAoB,EAAY,EAAE;IAC1D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"zod-excel.decoders.js","sourceRoot":"","sources":["../src/zod-excel.decoders.ts"],"names":[],"mappings":"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"}
|