typof 1.0.16 → 1.0.18

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/README.md CHANGED
@@ -1,17 +1,5 @@
1
- [String]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
2
- [Number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
3
- [Boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
4
- [Date]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
5
- [Buffer]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
6
- [Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
7
- [Void]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Undefined
8
- [Null]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null
9
- [Undefined]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Undefined
10
-
11
- <!---->
12
-
13
- [Types]: ./src/types/Types.type.ts
14
- [UnknownObject]: ./src/types/UnknownObject.type.ts
1
+ [Types]: ./src/types/types.ts
2
+ [UnknownObject]: ./src/types/unknown_object.ts
15
3
 
16
4
  <div align="center">
17
5
  <br/>
@@ -126,31 +114,31 @@ Infer types.
126
114
  > // Index zero always ensures reliable type checking. As the index increases, species depth also increases.
127
115
  > if (typof('0.5')[0] === 'string') console.log('This is a string.');
128
116
  >
129
- > typof('test'); // [ "string" ]
117
+ > typof('test'); // ['string']
130
118
  >
131
- > typof('0'); // [ "string", "number", "integer" ]
132
- > typof(0); // [ "number", "integer" ]
119
+ > typof('0'); // ['string', 'number', 'integer']
120
+ > typof(0); // ['number', 'integer']
133
121
  >
134
- > typof('0.5'); // [ "string", "number", "float" ]
135
- > typof(0.5); // [ "number", "float" ]
122
+ > typof('0.5'); // ['string', 'number', 'float']
123
+ > typof(0.5); // ['number', 'float']
136
124
  >
137
- > typof('true'); // [ "string", "boolean" ]
138
- > typof(true); // [ "boolean" ]
125
+ > typof('true'); // ['string', 'boolean']
126
+ > typof(true); // ['boolean']
139
127
  >
140
- > typof('2025-01-01'); // [ "string", "date" ]
141
- > typof(new Date('2025-01-01')); // [ "object", "date" ]
128
+ > typof('2025-01-01'); // ['string', 'date']
129
+ > typof(new Date('2025-01-01')); // ['object', 'date']
142
130
  >
143
- > typof('{"key":"value"}'); // [ "string", "object" ]
144
- > typof({ key: 'value' }); // [ "object" ]
131
+ > typof('{"key":"value"}'); // ['string', 'object']
132
+ > typof({ key: 'value' }); // ['object']
145
133
  >
146
- > typof('["test"]'); // [ "string", "array" ]
147
- > typof(['test']); // [ "array" ]
134
+ > typof('["test"]'); // ['string', 'array']
135
+ > typof(['test']); // ['array']
148
136
  >
149
- > typof('null'); // [ "string", "null" ]
150
- > typof(null); // [ "null" ]
137
+ > typof('null'); // ['string', 'null']
138
+ > typof(null); // ['null']
151
139
  >
152
- > typof('undefined'); // [ "string", "undefined" ]
153
- > typof(undefined); // [ "undefined" ]
140
+ > typof('undefined'); // ['string', 'undefined']
141
+ > typof(undefined); // ['undefined']
154
142
  > ```
155
143
 
156
144
  <br/>
@@ -163,18 +151,18 @@ Convert to string.
163
151
  > | --------- | ------- | ------- | ----------------- |
164
152
  > | `value` | Unknown | | Value to convert. |
165
153
  >
166
- > returns [String]
154
+ > returns String
167
155
  >
168
156
  > Example:
169
157
  >
170
158
  > ```typescript
171
- > string(0.5); // "0.5"
172
- > string(true); // "true"
173
- > string(new Date('2025-01-01')); // "2025-01-01T00:00:00.000Z"
159
+ > string(0.5); // '0.5'
160
+ > string(true); // 'true'
161
+ > string(new Date('2025-01-01')); // '2025-01-01T00:00:00.000Z'
174
162
  > string({ key: 'value' }); // '{"key":"value"}'
175
163
  > string(['test']); // '["test"]'
176
- > string(null); // "null"
177
- > string(undefined); // "undefined"
164
+ > string(null); // 'null'
165
+ > string(undefined); // 'undefined'
178
166
  > ```
179
167
 
180
168
  <br/>
@@ -187,7 +175,7 @@ Convert to number.
187
175
  > | --------- | ------- | ------- | ----------------- |
188
176
  > | `value` | Unknown | | Value to convert. |
189
177
  >
190
- > returns [Number]
178
+ > returns Number
191
179
  >
192
180
  > Example:
193
181
  >
@@ -207,7 +195,7 @@ Convert to integer.
207
195
  > | --------- | ------- | ------- | ----------------- |
208
196
  > | `value` | Unknown | | Value to convert. |
209
197
  >
210
- > returns [Number]
198
+ > returns Number
211
199
  >
212
200
  > Example:
213
201
  >
@@ -227,14 +215,14 @@ Convert to boolean.
227
215
  > | --------- | ------- | ------- | ----------------- |
228
216
  > | `value` | Unknown | | Value to convert. |
229
217
  >
230
- > returns [Boolean] | Value
218
+ > returns Boolean | Value
231
219
  >
232
220
  > Example:
233
221
  >
234
222
  > ```typescript
235
223
  > boolean('true'); // true
236
224
  > boolean(true); // true
237
- > boolean('test'); // "test"
225
+ > boolean('test'); // 'test'
238
226
  > ```
239
227
 
240
228
  <br/>
@@ -247,14 +235,14 @@ Convert to date.
247
235
  > | --------- | ------- | ------- | ----------------- |
248
236
  > | `value` | Unknown | | Value to convert. |
249
237
  >
250
- > returns [Date] | Value
238
+ > returns Date | Value
251
239
  >
252
240
  > Example:
253
241
  >
254
242
  > ```typescript
255
243
  > date('2025-01-01'); // 2025-01-01T00:00:00.000Z
256
244
  > date(new Date('2025-01-01')); // 2025-01-01T00:00:00.000Z
257
- > date('test'); // "test"
245
+ > date('test'); // 'test'
258
246
  > ```
259
247
 
260
248
  <br/>
@@ -272,7 +260,7 @@ Convert to object.
272
260
  > Example:
273
261
  >
274
262
  > ```typescript
275
- > object('{"key":"value"}'); // { key: "value" }
263
+ > object('{"key":"value"}'); // { key: 'value' }
276
264
  > object('["test"]'); // '["test"]'
277
265
  > ```
278
266
 
@@ -291,7 +279,7 @@ Convert to array.
291
279
  > Example:
292
280
  >
293
281
  > ```typescript
294
- > array('["test"]'); // [ "test" ]
282
+ > array('["test"]'); // ['test']
295
283
  > array('{"key":"value"}'); // '{"key":"value"}'
296
284
  > ```
297
285
 
@@ -305,14 +293,14 @@ Convert to null.
305
293
  > | --------- | ------- | ------- | ----------------- |
306
294
  > | `value` | Unknown | | Value to convert. |
307
295
  >
308
- > returns [Null] | Value
296
+ > returns Null | Value
309
297
  >
310
298
  > Example:
311
299
  >
312
300
  > ```typescript
313
301
  > _null('null'); // null
314
302
  > _null(null); // null
315
- > _null('test'); // "test"
303
+ > _null('test'); // 'test'
316
304
  > ```
317
305
 
318
306
  <br/>
@@ -325,14 +313,14 @@ Convert to undefined.
325
313
  > | --------- | ------- | ------- | ----------------- |
326
314
  > | `value` | Unknown | | Value to convert. |
327
315
  >
328
- > returns [Undefined] | Value
316
+ > returns Undefined | Value
329
317
  >
330
318
  > Example:
331
319
  >
332
320
  > ```typescript
333
321
  > _undefined('undefined'); // undefined
334
322
  > _undefined(undefined); // undefined
335
- > _undefined('test'); // "test"
323
+ > _undefined('test'); // 'test'
336
324
  > ```
337
325
 
338
326
  ### Types
package/dist/main.cjs ADDED
@@ -0,0 +1,98 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/utils/is_iso_date.ts
3
+ const is_iso_date = (value) => {
4
+ if (!/^\d{4}-\d{2}-\d{2}.*$/.test(value)) return false;
5
+ return !Number.isNaN(new Date(value).getTime());
6
+ };
7
+ //#endregion
8
+ //#region src/utils/is_object.ts
9
+ const is_object = (value) => {
10
+ if (typeof value === "object" && value !== null) return true;
11
+ if (typeof value === "string") try {
12
+ const parsed = JSON.parse(value);
13
+ return typeof parsed === "object" && parsed !== null;
14
+ } catch {
15
+ return false;
16
+ }
17
+ return false;
18
+ };
19
+ //#endregion
20
+ //#region src/utils/typof.ts
21
+ const typof = (value) => {
22
+ const types = [];
23
+ if (typeof value === "string") {
24
+ value = value.trim();
25
+ if (typeof value !== "string") return types;
26
+ types.push("string");
27
+ if (value === "") return types;
28
+ if (Number.isFinite(Number(value))) {
29
+ const number = Number(value);
30
+ types.push("number");
31
+ if (Number.isInteger(number)) types.push("integer");
32
+ else types.push("float");
33
+ }
34
+ if (value === "true" || value === "false") types.push("boolean");
35
+ if (is_iso_date(value)) types.push("date");
36
+ if (is_object(value) && !Array.isArray(JSON.parse(value))) types.push("object");
37
+ if (is_object(value) && Array.isArray(JSON.parse(value))) types.push("array");
38
+ if (value === "null") types.push("null");
39
+ if (value === "undefined") types.push("undefined");
40
+ } else if (typeof value === "number") {
41
+ if (!Number.isFinite(value)) return types;
42
+ types.push("number");
43
+ if (Number.isInteger(value)) types.push("integer");
44
+ else types.push("float");
45
+ } else if (typeof value === "boolean") types.push("boolean");
46
+ else if (is_object(value) && !Array.isArray(value)) {
47
+ types.push("object");
48
+ if (value instanceof Date) types.push("date");
49
+ } else if (is_object(value) && Array.isArray(value)) types.push("array");
50
+ else if (value === null) types.push("null");
51
+ else if (value === void 0) types.push("undefined");
52
+ return types;
53
+ };
54
+ const string = (value) => {
55
+ const types = typof(value);
56
+ return types.includes("object") || types.includes("array") ? JSON.stringify(value) : String(value);
57
+ };
58
+ const number = (value) => {
59
+ return typof(value).includes("number") ? Number(value) : NaN;
60
+ };
61
+ const integer = (value) => {
62
+ return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
63
+ };
64
+ const boolean = (value) => {
65
+ const types = typof(value);
66
+ if (types.includes("boolean") && types.includes("string")) if (value === "true") return true;
67
+ else if (value === "false") return false;
68
+ else return value;
69
+ else return value;
70
+ };
71
+ const date = (value) => {
72
+ return typof(value).includes("date") ? new Date(value) : value;
73
+ };
74
+ const object = (value) => {
75
+ const types = typof(value);
76
+ return types.includes("object") && types.includes("string") ? JSON.parse(value) : value;
77
+ };
78
+ const array = (value) => {
79
+ const types = typof(value);
80
+ return types.includes("array") && types.includes("string") ? JSON.parse(value) : value;
81
+ };
82
+ const _null = (value) => {
83
+ return typof(value).includes("null") ? null : value;
84
+ };
85
+ const _undefined = (value) => {
86
+ return typof(value).includes("undefined") ? void 0 : value;
87
+ };
88
+ //#endregion
89
+ exports._null = _null;
90
+ exports._undefined = _undefined;
91
+ exports.array = array;
92
+ exports.boolean = boolean;
93
+ exports.date = date;
94
+ exports.integer = integer;
95
+ exports.number = number;
96
+ exports.object = object;
97
+ exports.string = string;
98
+ exports.typof = typof;
@@ -1,7 +1,10 @@
1
+ //#region src/types/types.d.ts
1
2
  type Types = 'string' | 'number' | 'integer' | 'float' | 'boolean' | 'date' | 'object' | 'array' | 'null' | 'undefined';
2
-
3
+ //#endregion
4
+ //#region src/types/unknown_object.d.ts
3
5
  type UnknownObject = Record<string, unknown>;
4
-
6
+ //#endregion
7
+ //#region src/utils/typof.d.ts
5
8
  declare const typof: (value: unknown) => Types[];
6
9
  declare const string: (value: unknown) => string;
7
10
  declare const number: (value: unknown) => number;
@@ -12,5 +15,5 @@ declare const object: <Value>(value: Value) => UnknownObject | Value;
12
15
  declare const array: <Value>(value: Value) => unknown[] | Value;
13
16
  declare const _null: <Value>(value: Value) => null | Value;
14
17
  declare const _undefined: <Value>(value: Value) => undefined | Value;
15
-
16
- export { type Types, type UnknownObject, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
18
+ //#endregion
19
+ export { type Types, type UnknownObject, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
package/dist/main.d.mts CHANGED
@@ -1,7 +1,10 @@
1
+ //#region src/types/types.d.ts
1
2
  type Types = 'string' | 'number' | 'integer' | 'float' | 'boolean' | 'date' | 'object' | 'array' | 'null' | 'undefined';
2
-
3
+ //#endregion
4
+ //#region src/types/unknown_object.d.ts
3
5
  type UnknownObject = Record<string, unknown>;
4
-
6
+ //#endregion
7
+ //#region src/utils/typof.d.ts
5
8
  declare const typof: (value: unknown) => Types[];
6
9
  declare const string: (value: unknown) => string;
7
10
  declare const number: (value: unknown) => number;
@@ -12,5 +15,5 @@ declare const object: <Value>(value: Value) => UnknownObject | Value;
12
15
  declare const array: <Value>(value: Value) => unknown[] | Value;
13
16
  declare const _null: <Value>(value: Value) => null | Value;
14
17
  declare const _undefined: <Value>(value: Value) => undefined | Value;
15
-
16
- export { type Types, type UnknownObject, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
18
+ //#endregion
19
+ export { type Types, type UnknownObject, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
package/dist/main.mjs CHANGED
@@ -1,108 +1,88 @@
1
- // src/utils/IsISODate.util.ts
2
- var isISODate = (value) => {
3
- if (!/^\d{4}-\d{2}-\d{2}.*$/.test(value)) return false;
4
- return !Number.isNaN(new Date(value).getTime());
1
+ //#region src/utils/is_iso_date.ts
2
+ const is_iso_date = (value) => {
3
+ if (!/^\d{4}-\d{2}-\d{2}.*$/.test(value)) return false;
4
+ return !Number.isNaN(new Date(value).getTime());
5
5
  };
6
-
7
- // src/utils/IsObject.util.ts
8
- var isObject = (value) => {
9
- if (typeof value === "object" && value !== null) return true;
10
- if (typeof value === "string") {
11
- try {
12
- const parsed = JSON.parse(value);
13
- return typeof parsed === "object" && parsed !== null;
14
- } catch {
15
- return false;
16
- }
17
- }
18
- return false;
6
+ //#endregion
7
+ //#region src/utils/is_object.ts
8
+ const is_object = (value) => {
9
+ if (typeof value === "object" && value !== null) return true;
10
+ if (typeof value === "string") try {
11
+ const parsed = JSON.parse(value);
12
+ return typeof parsed === "object" && parsed !== null;
13
+ } catch {
14
+ return false;
15
+ }
16
+ return false;
19
17
  };
20
-
21
- // src/utils/Typof.util.ts
22
- var typof = (value) => {
23
- const types = [];
24
- if (typeof value === "string") {
25
- value = value.trim();
26
- if (typeof value !== "string") return types;
27
- types.push("string");
28
- if (value === "") return types;
29
- if (Number.isFinite(Number(value))) {
30
- const number2 = Number(value);
31
- types.push("number");
32
- if (Number.isInteger(number2)) {
33
- types.push("integer");
34
- } else types.push("float");
35
- }
36
- if (value === "true" || value === "false") types.push("boolean");
37
- if (isISODate(value)) types.push("date");
38
- if (isObject(value) && !Array.isArray(JSON.parse(value))) types.push("object");
39
- if (isObject(value) && Array.isArray(JSON.parse(value))) types.push("array");
40
- if (value === "null") types.push("null");
41
- if (value === "undefined") types.push("undefined");
42
- } else if (typeof value === "number") {
43
- if (!Number.isFinite(value)) return types;
44
- types.push("number");
45
- if (Number.isInteger(value)) {
46
- types.push("integer");
47
- } else types.push("float");
48
- } else if (typeof value === "boolean") {
49
- types.push("boolean");
50
- } else if (isObject(value) && !Array.isArray(value)) {
51
- types.push("object");
52
- if (value instanceof Date) types.push("date");
53
- } else if (isObject(value) && Array.isArray(value)) {
54
- types.push("array");
55
- } else if (value === null) {
56
- types.push("null");
57
- } else if (value === void 0) types.push("undefined");
58
- return types;
18
+ //#endregion
19
+ //#region src/utils/typof.ts
20
+ const typof = (value) => {
21
+ const types = [];
22
+ if (typeof value === "string") {
23
+ value = value.trim();
24
+ if (typeof value !== "string") return types;
25
+ types.push("string");
26
+ if (value === "") return types;
27
+ if (Number.isFinite(Number(value))) {
28
+ const number = Number(value);
29
+ types.push("number");
30
+ if (Number.isInteger(number)) types.push("integer");
31
+ else types.push("float");
32
+ }
33
+ if (value === "true" || value === "false") types.push("boolean");
34
+ if (is_iso_date(value)) types.push("date");
35
+ if (is_object(value) && !Array.isArray(JSON.parse(value))) types.push("object");
36
+ if (is_object(value) && Array.isArray(JSON.parse(value))) types.push("array");
37
+ if (value === "null") types.push("null");
38
+ if (value === "undefined") types.push("undefined");
39
+ } else if (typeof value === "number") {
40
+ if (!Number.isFinite(value)) return types;
41
+ types.push("number");
42
+ if (Number.isInteger(value)) types.push("integer");
43
+ else types.push("float");
44
+ } else if (typeof value === "boolean") types.push("boolean");
45
+ else if (is_object(value) && !Array.isArray(value)) {
46
+ types.push("object");
47
+ if (value instanceof Date) types.push("date");
48
+ } else if (is_object(value) && Array.isArray(value)) types.push("array");
49
+ else if (value === null) types.push("null");
50
+ else if (value === void 0) types.push("undefined");
51
+ return types;
59
52
  };
60
- var string = (value) => {
61
- const types = typof(value);
62
- return types.includes("object") || types.includes("array") ? JSON.stringify(value) : String(value);
53
+ const string = (value) => {
54
+ const types = typof(value);
55
+ return types.includes("object") || types.includes("array") ? JSON.stringify(value) : String(value);
63
56
  };
64
- var number = (value) => {
65
- return typof(value).includes("number") ? Number(value) : NaN;
57
+ const number = (value) => {
58
+ return typof(value).includes("number") ? Number(value) : NaN;
66
59
  };
67
- var integer = (value) => {
68
- return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
60
+ const integer = (value) => {
61
+ return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
69
62
  };
70
- var boolean = (value) => {
71
- const types = typof(value);
72
- if (types.includes("boolean") && types.includes("string")) {
73
- if (value === "true") {
74
- return true;
75
- } else if (value === "false") {
76
- return false;
77
- } else return value;
78
- } else return value;
63
+ const boolean = (value) => {
64
+ const types = typof(value);
65
+ if (types.includes("boolean") && types.includes("string")) if (value === "true") return true;
66
+ else if (value === "false") return false;
67
+ else return value;
68
+ else return value;
79
69
  };
80
- var date = (value) => {
81
- return typof(value).includes("date") ? new Date(value) : value;
70
+ const date = (value) => {
71
+ return typof(value).includes("date") ? new Date(value) : value;
82
72
  };
83
- var object = (value) => {
84
- const types = typof(value);
85
- return types.includes("object") && types.includes("string") ? JSON.parse(value) : value;
73
+ const object = (value) => {
74
+ const types = typof(value);
75
+ return types.includes("object") && types.includes("string") ? JSON.parse(value) : value;
86
76
  };
87
- var array = (value) => {
88
- const types = typof(value);
89
- return types.includes("array") && types.includes("string") ? JSON.parse(value) : value;
77
+ const array = (value) => {
78
+ const types = typof(value);
79
+ return types.includes("array") && types.includes("string") ? JSON.parse(value) : value;
90
80
  };
91
- var _null = (value) => {
92
- return typof(value).includes("null") ? null : value;
81
+ const _null = (value) => {
82
+ return typof(value).includes("null") ? null : value;
93
83
  };
94
- var _undefined = (value) => {
95
- return typof(value).includes("undefined") ? void 0 : value;
96
- };
97
- export {
98
- _null,
99
- _undefined,
100
- array,
101
- boolean,
102
- date,
103
- integer,
104
- number,
105
- object,
106
- string,
107
- typof
84
+ const _undefined = (value) => {
85
+ return typof(value).includes("undefined") ? void 0 : value;
108
86
  };
87
+ //#endregion
88
+ export { _null, _undefined, array, boolean, date, integer, number, object, string, typof };
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "typof",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "Infer types.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/keift/typof",
7
7
  "bugs": "https://github.com/keift/typof/issues",
8
- "main": "./dist/main.js",
8
+ "main": "./dist/main.cjs",
9
9
  "module": "./dist/main.mjs",
10
- "types": "./dist/main.d.ts",
10
+ "types": "./dist/main.d.mts",
11
11
  "scripts": {
12
12
  "tests": "bun run lint && bun test",
13
- "build": "tsup",
13
+ "build": "tsdown",
14
14
  "prettier": "prettier --write ./",
15
15
  "lint": "eslint ./"
16
16
  },
@@ -18,7 +18,8 @@
18
18
  "devDependencies": {
19
19
  "prettier": "latest",
20
20
  "rulint": "latest",
21
- "tsup": "latest"
21
+ "tsdown": "latest",
22
+ "unrun": "latest"
22
23
  },
23
24
  "repository": {
24
25
  "type": "git",
package/dist/main.js DELETED
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/main.ts
21
- var main_exports = {};
22
- __export(main_exports, {
23
- _null: () => _null,
24
- _undefined: () => _undefined,
25
- array: () => array,
26
- boolean: () => boolean,
27
- date: () => date,
28
- integer: () => integer,
29
- number: () => number,
30
- object: () => object,
31
- string: () => string,
32
- typof: () => typof
33
- });
34
- module.exports = __toCommonJS(main_exports);
35
-
36
- // src/utils/IsISODate.util.ts
37
- var isISODate = (value) => {
38
- if (!/^\d{4}-\d{2}-\d{2}.*$/.test(value)) return false;
39
- return !Number.isNaN(new Date(value).getTime());
40
- };
41
-
42
- // src/utils/IsObject.util.ts
43
- var isObject = (value) => {
44
- if (typeof value === "object" && value !== null) return true;
45
- if (typeof value === "string") {
46
- try {
47
- const parsed = JSON.parse(value);
48
- return typeof parsed === "object" && parsed !== null;
49
- } catch {
50
- return false;
51
- }
52
- }
53
- return false;
54
- };
55
-
56
- // src/utils/Typof.util.ts
57
- var typof = (value) => {
58
- const types = [];
59
- if (typeof value === "string") {
60
- value = value.trim();
61
- if (typeof value !== "string") return types;
62
- types.push("string");
63
- if (value === "") return types;
64
- if (Number.isFinite(Number(value))) {
65
- const number2 = Number(value);
66
- types.push("number");
67
- if (Number.isInteger(number2)) {
68
- types.push("integer");
69
- } else types.push("float");
70
- }
71
- if (value === "true" || value === "false") types.push("boolean");
72
- if (isISODate(value)) types.push("date");
73
- if (isObject(value) && !Array.isArray(JSON.parse(value))) types.push("object");
74
- if (isObject(value) && Array.isArray(JSON.parse(value))) types.push("array");
75
- if (value === "null") types.push("null");
76
- if (value === "undefined") types.push("undefined");
77
- } else if (typeof value === "number") {
78
- if (!Number.isFinite(value)) return types;
79
- types.push("number");
80
- if (Number.isInteger(value)) {
81
- types.push("integer");
82
- } else types.push("float");
83
- } else if (typeof value === "boolean") {
84
- types.push("boolean");
85
- } else if (isObject(value) && !Array.isArray(value)) {
86
- types.push("object");
87
- if (value instanceof Date) types.push("date");
88
- } else if (isObject(value) && Array.isArray(value)) {
89
- types.push("array");
90
- } else if (value === null) {
91
- types.push("null");
92
- } else if (value === void 0) types.push("undefined");
93
- return types;
94
- };
95
- var string = (value) => {
96
- const types = typof(value);
97
- return types.includes("object") || types.includes("array") ? JSON.stringify(value) : String(value);
98
- };
99
- var number = (value) => {
100
- return typof(value).includes("number") ? Number(value) : NaN;
101
- };
102
- var integer = (value) => {
103
- return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
104
- };
105
- var boolean = (value) => {
106
- const types = typof(value);
107
- if (types.includes("boolean") && types.includes("string")) {
108
- if (value === "true") {
109
- return true;
110
- } else if (value === "false") {
111
- return false;
112
- } else return value;
113
- } else return value;
114
- };
115
- var date = (value) => {
116
- return typof(value).includes("date") ? new Date(value) : value;
117
- };
118
- var object = (value) => {
119
- const types = typof(value);
120
- return types.includes("object") && types.includes("string") ? JSON.parse(value) : value;
121
- };
122
- var array = (value) => {
123
- const types = typof(value);
124
- return types.includes("array") && types.includes("string") ? JSON.parse(value) : value;
125
- };
126
- var _null = (value) => {
127
- return typof(value).includes("null") ? null : value;
128
- };
129
- var _undefined = (value) => {
130
- return typof(value).includes("undefined") ? void 0 : value;
131
- };
132
- // Annotate the CommonJS export names for ESM import in node:
133
- 0 && (module.exports = {
134
- _null,
135
- _undefined,
136
- array,
137
- boolean,
138
- date,
139
- integer,
140
- number,
141
- object,
142
- string,
143
- typof
144
- });