typetify 0.1.4 → 2.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/chunk-IGA3VEZM.mjs +503 -0
- package/dist/chunk-IGA3VEZM.mjs.map +1 -0
- package/dist/chunk-JQAQV75V.js +561 -0
- package/dist/chunk-JQAQV75V.js.map +1 -0
- package/dist/guards/index.d.mts +413 -1
- package/dist/guards/index.d.ts +413 -1
- package/dist/guards/index.js +180 -16
- package/dist/guards/index.mjs +1 -1
- package/dist/index.d.mts +1397 -9
- package/dist/index.d.ts +1397 -9
- package/dist/index.js +1742 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1491 -5
- package/dist/index.mjs.map +1 -1
- package/dist/typed/index.d.mts +2 -2
- package/dist/typed/index.d.ts +2 -2
- package/dist/{types-Db0vauC3.d.mts → types-CPlzx7Jp.d.mts} +1 -1
- package/dist/{types-Db0vauC3.d.ts → types-CPlzx7Jp.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-44Y5JSGU.js +0 -145
- package/dist/chunk-44Y5JSGU.js.map +0 -1
- package/dist/chunk-L3M7LGKL.mjs +0 -128
- package/dist/chunk-L3M7LGKL.mjs.map +0 -1
package/dist/chunk-L3M7LGKL.mjs
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
|
-
|
|
3
|
-
// src/guards/index.ts
|
|
4
|
-
var guards_exports = {};
|
|
5
|
-
__export(guards_exports, {
|
|
6
|
-
hasKey: () => hasKey,
|
|
7
|
-
hasKeys: () => hasKeys,
|
|
8
|
-
isArray: () => isArray,
|
|
9
|
-
isBoolean: () => isBoolean,
|
|
10
|
-
isDate: () => isDate,
|
|
11
|
-
isEmpty: () => isEmpty,
|
|
12
|
-
isError: () => isError,
|
|
13
|
-
isFunction: () => isFunction,
|
|
14
|
-
isNonEmpty: () => isNonEmpty,
|
|
15
|
-
isNumber: () => isNumber,
|
|
16
|
-
isObject: () => isObject,
|
|
17
|
-
isPlainObject: () => isPlainObject,
|
|
18
|
-
isPromise: () => isPromise,
|
|
19
|
-
isString: () => isString,
|
|
20
|
-
isSymbol: () => isSymbol
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// src/guards/isObject.ts
|
|
24
|
-
function isObject(value) {
|
|
25
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// src/guards/isPlainObject.ts
|
|
29
|
-
function isPlainObject(value) {
|
|
30
|
-
if (typeof value !== "object" || value === null) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
const prototype = Object.getPrototypeOf(value);
|
|
34
|
-
return prototype === null || prototype === Object.prototype;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// src/guards/isString.ts
|
|
38
|
-
function isString(value) {
|
|
39
|
-
return typeof value === "string";
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// src/guards/isNumber.ts
|
|
43
|
-
function isNumber(value) {
|
|
44
|
-
return typeof value === "number" && !Number.isNaN(value);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// src/guards/isBoolean.ts
|
|
48
|
-
function isBoolean(value) {
|
|
49
|
-
return typeof value === "boolean";
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// src/guards/isFunction.ts
|
|
53
|
-
function isFunction(value) {
|
|
54
|
-
return typeof value === "function";
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// src/guards/isArray.ts
|
|
58
|
-
function isArray(value, guard) {
|
|
59
|
-
if (!Array.isArray(value)) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
if (guard) {
|
|
63
|
-
return value.every(guard);
|
|
64
|
-
}
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/guards/isDate.ts
|
|
69
|
-
function isDate(value) {
|
|
70
|
-
return value instanceof Date && !Number.isNaN(value.getTime());
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// src/guards/isPromise.ts
|
|
74
|
-
function isPromise(value) {
|
|
75
|
-
return value instanceof Promise || value !== null && typeof value === "object" && "then" in value && typeof value.then === "function";
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// src/guards/isError.ts
|
|
79
|
-
function isError(value) {
|
|
80
|
-
return value instanceof Error;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// src/guards/isSymbol.ts
|
|
84
|
-
function isSymbol(value) {
|
|
85
|
-
return typeof value === "symbol";
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// src/guards/hasKey.ts
|
|
89
|
-
function hasKey(obj, key) {
|
|
90
|
-
return obj !== null && typeof obj === "object" && key in obj;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// src/guards/hasKeys.ts
|
|
94
|
-
function hasKeys(obj, keys) {
|
|
95
|
-
if (obj === null || typeof obj !== "object") {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
return keys.every((key) => key in obj);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// src/guards/isEmpty.ts
|
|
102
|
-
function isEmpty(value) {
|
|
103
|
-
if (value === null || value === void 0) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
if (typeof value === "string") {
|
|
107
|
-
return value.trim().length === 0;
|
|
108
|
-
}
|
|
109
|
-
if (Array.isArray(value)) {
|
|
110
|
-
return value.length === 0;
|
|
111
|
-
}
|
|
112
|
-
if (value instanceof Map || value instanceof Set) {
|
|
113
|
-
return value.size === 0;
|
|
114
|
-
}
|
|
115
|
-
if (typeof value === "object") {
|
|
116
|
-
return Object.keys(value).length === 0;
|
|
117
|
-
}
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// src/guards/isNonEmpty.ts
|
|
122
|
-
function isNonEmpty(value) {
|
|
123
|
-
return !isEmpty(value);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export { guards_exports, hasKey, hasKeys, isArray, isBoolean, isDate, isEmpty, isError, isFunction, isNonEmpty, isNumber, isObject, isPlainObject, isPromise, isString, isSymbol };
|
|
127
|
-
//# sourceMappingURL=chunk-L3M7LGKL.mjs.map
|
|
128
|
-
//# sourceMappingURL=chunk-L3M7LGKL.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/guards/index.ts","../src/guards/isObject.ts","../src/guards/isPlainObject.ts","../src/guards/isString.ts","../src/guards/isNumber.ts","../src/guards/isBoolean.ts","../src/guards/isFunction.ts","../src/guards/isArray.ts","../src/guards/isDate.ts","../src/guards/isPromise.ts","../src/guards/isError.ts","../src/guards/isSymbol.ts","../src/guards/hasKey.ts","../src/guards/hasKeys.ts","../src/guards/isEmpty.ts","../src/guards/isNonEmpty.ts"],"names":[],"mappings":"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","file":"chunk-L3M7LGKL.mjs","sourcesContent":["export { isObject } from './isObject'\nexport { isPlainObject } from './isPlainObject'\nexport { isString } from './isString'\nexport { isNumber } from './isNumber'\nexport { isBoolean } from './isBoolean'\nexport { isFunction } from './isFunction'\nexport { isArray } from './isArray'\nexport { isDate } from './isDate'\nexport { isPromise } from './isPromise'\nexport { isError } from './isError'\nexport { isSymbol } from './isSymbol'\nexport { hasKey } from './hasKey'\nexport { hasKeys } from './hasKeys'\nexport { isEmpty } from './isEmpty'\nexport { isNonEmpty } from './isNonEmpty'\n","/**\n * Checks if a value is an object (not null, not an array).\n *\n * @example\n * if (isObject(value)) {\n * // value is Record<string, unknown>\n * }\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","/**\n * Checks if a value is a plain object (created by {} or Object.create(null)).\n * Excludes class instances, arrays, and other object types.\n *\n * @example\n * isPlainObject({}) // true\n * isPlainObject(new Date()) // false\n * isPlainObject([]) // false\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== 'object' || value === null) {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n return prototype === null || prototype === Object.prototype\n}\n","/**\n * Checks if a value is a string.\n *\n * @example\n * if (isString(value)) {\n * console.log(value.toUpperCase())\n * }\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n","/**\n * Checks if a value is a number (excludes NaN).\n *\n * @example\n * isNumber(42) // true\n * isNumber(NaN) // false\n * isNumber('42') // false\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && !Number.isNaN(value)\n}\n","/**\n * Checks if a value is a boolean.\n *\n * @example\n * isBoolean(true) // true\n * isBoolean(1) // false\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n","/**\n * Checks if a value is a function.\n *\n * @example\n * isFunction(() => {}) // true\n * isFunction(console.log) // true\n */\nexport function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function'\n}\n","/**\n * Checks if a value is an array.\n * Optionally checks if all elements match a guard function.\n *\n * @example\n * isArray([1, 2, 3]) // true\n * isArray([1, 2, 3], isNumber) // true\n * isArray([1, '2', 3], isNumber) // false\n */\nexport function isArray(value: unknown): value is unknown[]\nexport function isArray<T>(\n value: unknown,\n guard: (item: unknown) => item is T\n): value is T[]\nexport function isArray<T>(\n value: unknown,\n guard?: (item: unknown) => item is T\n): value is T[] {\n if (!Array.isArray(value)) {\n return false\n }\n\n if (guard) {\n return value.every(guard)\n }\n\n return true\n}\n","/**\n * Checks if a value is a valid Date object.\n * Returns false for invalid dates (e.g., new Date('invalid')).\n *\n * @example\n * isDate(new Date()) // true\n * isDate(new Date('invalid')) // false\n * isDate('2024-01-01') // false\n */\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime())\n}\n","/**\n * Checks if a value is a Promise or Promise-like object.\n *\n * @example\n * isPromise(Promise.resolve()) // true\n * isPromise({ then: () => {} }) // true\n * isPromise({}) // false\n */\nexport function isPromise<T = unknown>(value: unknown): value is Promise<T> {\n return (\n value instanceof Promise ||\n (value !== null &&\n typeof value === 'object' &&\n 'then' in value &&\n typeof (value as Record<string, unknown>).then === 'function')\n )\n}\n","/**\n * Checks if a value is an Error instance.\n *\n * @example\n * isError(new Error('oops')) // true\n * isError(new TypeError('bad')) // true\n * isError({ message: 'fake' }) // false\n */\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n","/**\n * Checks if a value is a symbol.\n *\n * @example\n * isSymbol(Symbol('test')) // true\n * isSymbol('symbol') // false\n */\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n","/**\n * Checks if an object has a specific key.\n * Narrows the type to include that key.\n *\n * @example\n * const obj: unknown = { name: 'John' }\n * if (hasKey(obj, 'name')) {\n * console.log(obj.name) // safe access\n * }\n */\nexport function hasKey<K extends PropertyKey>(\n obj: unknown,\n key: K\n): obj is Record<K, unknown> {\n return obj !== null && typeof obj === 'object' && key in obj\n}\n","/**\n * Checks if an object has all specified keys.\n * Narrows the type to include those keys.\n *\n * @example\n * const obj: unknown = { name: 'John', age: 30 }\n * if (hasKeys(obj, ['name', 'age'])) {\n * console.log(obj.name, obj.age) // safe access\n * }\n */\nexport function hasKeys<K extends PropertyKey>(\n obj: unknown,\n keys: readonly K[]\n): obj is Record<K, unknown> {\n if (obj === null || typeof obj !== 'object') {\n return false\n }\n\n return keys.every((key) => key in obj)\n}\n","/**\n * Checks if a value is empty.\n * - String: empty or whitespace only\n * - Array: length is 0\n * - Object: no own enumerable keys\n * - null/undefined: true\n * - Map/Set: size is 0\n *\n * @example\n * isEmpty('') // true\n * isEmpty(' ') // true\n * isEmpty([]) // true\n * isEmpty({}) // true\n * isEmpty(null) // true\n * isEmpty([1]) // false\n */\nexport function isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) {\n return true\n }\n\n if (typeof value === 'string') {\n return value.trim().length === 0\n }\n\n if (Array.isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false\n}\n","import { isEmpty } from './isEmpty'\n\n/**\n * Checks if a value is not empty.\n * Opposite of isEmpty.\n *\n * @example\n * isNonEmpty('hello') // true\n * isNonEmpty([1, 2]) // true\n * isNonEmpty({}) // false\n */\nexport function isNonEmpty(value: unknown): boolean {\n return !isEmpty(value)\n}\n"]}
|