typof 1.0.2 → 1.0.4
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 +209 -26
- package/dist/main.d.mts +3 -2
- package/dist/main.d.ts +3 -2
- package/dist/main.js +11 -4
- package/dist/main.mjs +9 -3
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
[String]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
2
2
|
[Number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
|
|
3
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
4
|
[Object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
6
5
|
[Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
|
|
6
|
+
[Date]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
|
|
7
7
|
[Buffer]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
|
|
8
|
-
[Function]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
|
|
9
8
|
[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
10
9
|
[Void]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Undefined
|
|
10
|
+
[Null]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null
|
|
11
|
+
[Undefined]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Undefined
|
|
12
|
+
|
|
13
|
+
<!---->
|
|
14
|
+
|
|
11
15
|
[Types]: ./src/types/Types.type.ts
|
|
12
16
|
|
|
13
17
|
<div align="center">
|
|
@@ -40,13 +44,13 @@
|
|
|
40
44
|
|
|
41
45
|
## About
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
Infer types.
|
|
44
48
|
|
|
45
49
|
## Features
|
|
46
50
|
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
51
|
+
- Infers multiple types
|
|
52
|
+
- Infers integer and float types
|
|
53
|
+
- Infers the type from a string
|
|
50
54
|
- There are simple type converters
|
|
51
55
|
|
|
52
56
|
## Installation
|
|
@@ -77,17 +81,18 @@ deno add typof
|
|
|
77
81
|
Briefly as follows.
|
|
78
82
|
|
|
79
83
|
```typescript
|
|
80
|
-
|
|
84
|
+
Typof
|
|
81
85
|
│
|
|
82
86
|
├── typof(value)
|
|
83
87
|
├── string(value)
|
|
84
88
|
├── number(value)
|
|
85
89
|
├── integer(value)
|
|
86
|
-
├── float(value)
|
|
87
90
|
├── boolean(value)
|
|
88
91
|
├── object(value)
|
|
89
92
|
├── array(value)
|
|
90
93
|
├── date(value)
|
|
94
|
+
├── _null(value)
|
|
95
|
+
├── _undefined(value)
|
|
91
96
|
│
|
|
92
97
|
└── type Types
|
|
93
98
|
```
|
|
@@ -104,7 +109,7 @@ import { typof } from 'typof';
|
|
|
104
109
|
|
|
105
110
|
`typof(value)`
|
|
106
111
|
|
|
107
|
-
|
|
112
|
+
Infers types.
|
|
108
113
|
|
|
109
114
|
> | Parameter | Default | Description |
|
|
110
115
|
> | --------- | ------- | ----------------------------------- |
|
|
@@ -115,36 +120,214 @@ Extract the valid types.
|
|
|
115
120
|
> Example:
|
|
116
121
|
>
|
|
117
122
|
> ```typescript
|
|
118
|
-
> typof('test'); // [
|
|
123
|
+
> typof('test'); // [ "string" ]
|
|
119
124
|
>
|
|
120
|
-
> typof('0'); // [
|
|
121
|
-
> typof(0); // [
|
|
125
|
+
> typof('0'); // [ "string", "number", "integer" ]
|
|
126
|
+
> typof(0); // [ "number", "integer" ]
|
|
122
127
|
>
|
|
123
|
-
> typof('0.5'); // [
|
|
124
|
-
> typof(0.5); // [
|
|
128
|
+
> typof('0.5'); // [ "string", "number", "float" ]
|
|
129
|
+
> typof(0.5); // [ "number", "float" ]
|
|
125
130
|
>
|
|
126
|
-
> typof('true'); // [
|
|
127
|
-
> typof(true); // [
|
|
131
|
+
> typof('true'); // [ "string", "boolean" ]
|
|
132
|
+
> typof(true); // [ "boolean" ]
|
|
128
133
|
>
|
|
129
|
-
> typof('{"key": "value"}'); // [
|
|
130
|
-
> typof({ key: 'value' }); // [
|
|
134
|
+
> typof('{"key": "value"}'); // [ "string", "object" ]
|
|
135
|
+
> typof({ key: 'value' }); // [ "object" ]
|
|
131
136
|
>
|
|
132
|
-
> typof('["test"]'); // [
|
|
133
|
-
> typof(['test']); // [
|
|
137
|
+
> typof('["test"]'); // [ "string", "array" ]
|
|
138
|
+
> typof(['test']); // [ "array" ]
|
|
134
139
|
>
|
|
135
|
-
> typof('2025-01-01'); // [
|
|
136
|
-
> typof(new Date('2025-01-01')); // [
|
|
140
|
+
> typof('2025-01-01'); // [ "string", "date" ]
|
|
141
|
+
> typof(new Date('2025-01-01')); // [ "object", "date" ]
|
|
137
142
|
>
|
|
138
|
-
> typof('null'); // [
|
|
139
|
-
> typof(null); // [
|
|
143
|
+
> typof('null'); // [ "string", "null" ]
|
|
144
|
+
> typof(null); // [ "null" ]
|
|
140
145
|
>
|
|
141
|
-
> typof('undefined'); // [
|
|
142
|
-
> typof(undefined); // [
|
|
146
|
+
> typof('undefined'); // [ "string", "undefined" ]
|
|
147
|
+
> typof(undefined); // [ "undefined" ]
|
|
143
148
|
>
|
|
144
149
|
> // Tests are as follows. (Is this an integer?)
|
|
145
150
|
> if (typof(0).includes('integer')) console.log('This is an integer!');
|
|
146
151
|
> ```
|
|
147
152
|
|
|
153
|
+
<br/>
|
|
154
|
+
|
|
155
|
+
`string(value)`
|
|
156
|
+
|
|
157
|
+
Convert to string.
|
|
158
|
+
|
|
159
|
+
> | Parameter | Default | Description |
|
|
160
|
+
> | --------- | ------- | ----------------------------- |
|
|
161
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
162
|
+
>
|
|
163
|
+
> returns [String]
|
|
164
|
+
>
|
|
165
|
+
> Example:
|
|
166
|
+
>
|
|
167
|
+
> ```typescript
|
|
168
|
+
> string(0.5); // "0.5"
|
|
169
|
+
> string(true); // "true"
|
|
170
|
+
> string({ key: 'value' }); // '{"key":"value"}'
|
|
171
|
+
> string(['test']); // '["test"]'
|
|
172
|
+
> string(new Date('2025-01-01')); // "2025-01-01T00:00:00.000Z"
|
|
173
|
+
> string(null); // "null"
|
|
174
|
+
> string(undefined); // "undefined"
|
|
175
|
+
> ```
|
|
176
|
+
|
|
177
|
+
<br/>
|
|
178
|
+
|
|
179
|
+
`number(value)`
|
|
180
|
+
|
|
181
|
+
Convert to number.
|
|
182
|
+
|
|
183
|
+
> | Parameter | Default | Description |
|
|
184
|
+
> | --------- | ------- | ----------------------------- |
|
|
185
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
186
|
+
>
|
|
187
|
+
> returns [Number]
|
|
188
|
+
>
|
|
189
|
+
> Example:
|
|
190
|
+
>
|
|
191
|
+
> ```typescript
|
|
192
|
+
> number('0.5'); // 0.5
|
|
193
|
+
> ```
|
|
194
|
+
|
|
195
|
+
<br/>
|
|
196
|
+
|
|
197
|
+
`integer(value)`
|
|
198
|
+
|
|
199
|
+
Convert to integer.
|
|
200
|
+
|
|
201
|
+
> | Parameter | Default | Description |
|
|
202
|
+
> | --------- | ------- | ----------------------------- |
|
|
203
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
204
|
+
>
|
|
205
|
+
> returns [Number]
|
|
206
|
+
>
|
|
207
|
+
> Example:
|
|
208
|
+
>
|
|
209
|
+
> ```typescript
|
|
210
|
+
> integer('0.5'); // 0
|
|
211
|
+
> integer(0.5); // 0
|
|
212
|
+
> ```
|
|
213
|
+
|
|
214
|
+
<br/>
|
|
215
|
+
|
|
216
|
+
`boolean(value)`
|
|
217
|
+
|
|
218
|
+
Convert to boolean.
|
|
219
|
+
|
|
220
|
+
> | Parameter | Default | Description |
|
|
221
|
+
> | --------- | ------- | ----------------------------- |
|
|
222
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
223
|
+
>
|
|
224
|
+
> returns [Boolean] | Value
|
|
225
|
+
>
|
|
226
|
+
> Example:
|
|
227
|
+
>
|
|
228
|
+
> ```typescript
|
|
229
|
+
> boolean('true'); // true
|
|
230
|
+
> boolean(true); // true
|
|
231
|
+
> boolean('test'); // "test"
|
|
232
|
+
> ```
|
|
233
|
+
|
|
234
|
+
<br/>
|
|
235
|
+
|
|
236
|
+
`object(value)`
|
|
237
|
+
|
|
238
|
+
Convert to object.
|
|
239
|
+
|
|
240
|
+
> | Parameter | Default | Description |
|
|
241
|
+
> | --------- | ------- | ----------------------------- |
|
|
242
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
243
|
+
>
|
|
244
|
+
> returns [Object] | Value
|
|
245
|
+
>
|
|
246
|
+
> Example:
|
|
247
|
+
>
|
|
248
|
+
> ```typescript
|
|
249
|
+
> object('{"key":"value"}'); // { key: "value" }
|
|
250
|
+
> object('["test"]'); // '["test"]'
|
|
251
|
+
> ```
|
|
252
|
+
|
|
253
|
+
<br/>
|
|
254
|
+
|
|
255
|
+
`array(value)`
|
|
256
|
+
|
|
257
|
+
Convert to array.
|
|
258
|
+
|
|
259
|
+
> | Parameter | Default | Description |
|
|
260
|
+
> | --------- | ------- | ----------------------------- |
|
|
261
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
262
|
+
>
|
|
263
|
+
> returns [Array] | Value
|
|
264
|
+
>
|
|
265
|
+
> Example:
|
|
266
|
+
>
|
|
267
|
+
> ```typescript
|
|
268
|
+
> array('["test"]'); // [ "test" ]
|
|
269
|
+
> array('{"key":"value"}'); // '{"key":"value"}'
|
|
270
|
+
> ```
|
|
271
|
+
|
|
272
|
+
<br/>
|
|
273
|
+
|
|
274
|
+
`date(value)`
|
|
275
|
+
|
|
276
|
+
Convert to date.
|
|
277
|
+
|
|
278
|
+
> | Parameter | Default | Description |
|
|
279
|
+
> | --------- | ------- | ----------------------------- |
|
|
280
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
281
|
+
>
|
|
282
|
+
> returns [Date] | Value
|
|
283
|
+
>
|
|
284
|
+
> Example:
|
|
285
|
+
>
|
|
286
|
+
> ```typescript
|
|
287
|
+
> date('2025-01-01'); // 2025-01-01T00:00:00.000Z
|
|
288
|
+
> date('test'); // "test"
|
|
289
|
+
> ```
|
|
290
|
+
|
|
291
|
+
<br/>
|
|
292
|
+
|
|
293
|
+
`_null(value)`
|
|
294
|
+
|
|
295
|
+
Convert to null.
|
|
296
|
+
|
|
297
|
+
> | Parameter | Default | Description |
|
|
298
|
+
> | --------- | ------- | ----------------------------- |
|
|
299
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
300
|
+
>
|
|
301
|
+
> returns [Null] | Value
|
|
302
|
+
>
|
|
303
|
+
> Example:
|
|
304
|
+
>
|
|
305
|
+
> ```typescript
|
|
306
|
+
> _null('null'); // null
|
|
307
|
+
> _null(null); // null
|
|
308
|
+
> _null('test'); // "test"
|
|
309
|
+
> ```
|
|
310
|
+
|
|
311
|
+
<br/>
|
|
312
|
+
|
|
313
|
+
`_undefined(value)`
|
|
314
|
+
|
|
315
|
+
Convert to undefined.
|
|
316
|
+
|
|
317
|
+
> | Parameter | Default | Description |
|
|
318
|
+
> | --------- | ------- | ----------------------------- |
|
|
319
|
+
> | value | | Unknown<br/>Value to convert. |
|
|
320
|
+
>
|
|
321
|
+
> returns [Undefined] | Value
|
|
322
|
+
>
|
|
323
|
+
> Example:
|
|
324
|
+
>
|
|
325
|
+
> ```typescript
|
|
326
|
+
> _undefined('undefined'); // undefined
|
|
327
|
+
> _undefined(undefined); // undefined
|
|
328
|
+
> _undefined('test'); // "test"
|
|
329
|
+
> ```
|
|
330
|
+
|
|
148
331
|
### Types
|
|
149
332
|
|
|
150
333
|
| Type |
|
package/dist/main.d.mts
CHANGED
|
@@ -4,10 +4,11 @@ declare const typof: (value: unknown) => Types[];
|
|
|
4
4
|
declare const string: (value: unknown) => string;
|
|
5
5
|
declare const number: (value: unknown) => number;
|
|
6
6
|
declare const integer: (value: unknown) => number;
|
|
7
|
-
declare const float: (value: unknown) => number;
|
|
8
7
|
declare const boolean: <Value>(value: Value) => boolean | Value;
|
|
9
8
|
declare const object: <Value>(value: Value) => object | Value;
|
|
10
9
|
declare const array: <Value>(value: Value) => unknown[] | Value;
|
|
11
10
|
declare const date: (value: unknown) => Date;
|
|
11
|
+
declare const _null: <Value>(value: Value) => null | Value;
|
|
12
|
+
declare const _undefined: <Value>(value: Value) => undefined | Value;
|
|
12
13
|
|
|
13
|
-
export { type Types, array, boolean, date,
|
|
14
|
+
export { type Types, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
|
package/dist/main.d.ts
CHANGED
|
@@ -4,10 +4,11 @@ declare const typof: (value: unknown) => Types[];
|
|
|
4
4
|
declare const string: (value: unknown) => string;
|
|
5
5
|
declare const number: (value: unknown) => number;
|
|
6
6
|
declare const integer: (value: unknown) => number;
|
|
7
|
-
declare const float: (value: unknown) => number;
|
|
8
7
|
declare const boolean: <Value>(value: Value) => boolean | Value;
|
|
9
8
|
declare const object: <Value>(value: Value) => object | Value;
|
|
10
9
|
declare const array: <Value>(value: Value) => unknown[] | Value;
|
|
11
10
|
declare const date: (value: unknown) => Date;
|
|
11
|
+
declare const _null: <Value>(value: Value) => null | Value;
|
|
12
|
+
declare const _undefined: <Value>(value: Value) => undefined | Value;
|
|
12
13
|
|
|
13
|
-
export { type Types, array, boolean, date,
|
|
14
|
+
export { type Types, _null, _undefined, array, boolean, date, integer, number, object, string, typof };
|
package/dist/main.js
CHANGED
|
@@ -20,10 +20,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/main.ts
|
|
21
21
|
var main_exports = {};
|
|
22
22
|
__export(main_exports, {
|
|
23
|
+
_null: () => _null,
|
|
24
|
+
_undefined: () => _undefined,
|
|
23
25
|
array: () => array,
|
|
24
26
|
boolean: () => boolean,
|
|
25
27
|
date: () => date,
|
|
26
|
-
float: () => float,
|
|
27
28
|
integer: () => integer,
|
|
28
29
|
number: () => number,
|
|
29
30
|
object: () => object,
|
|
@@ -104,9 +105,8 @@ var number = (value) => {
|
|
|
104
105
|
return typof(value).includes("number") ? Number(value) : NaN;
|
|
105
106
|
};
|
|
106
107
|
var integer = (value) => {
|
|
107
|
-
return typof(value).includes("number") ?
|
|
108
|
+
return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
|
|
108
109
|
};
|
|
109
|
-
var float = number;
|
|
110
110
|
var boolean = (value) => {
|
|
111
111
|
if (typof(value).includes("boolean") && typof(value).includes("string")) {
|
|
112
112
|
if (value === "true") {
|
|
@@ -129,12 +129,19 @@ var array = (value) => {
|
|
|
129
129
|
var date = (value) => {
|
|
130
130
|
return new Date(value);
|
|
131
131
|
};
|
|
132
|
+
var _null = (value) => {
|
|
133
|
+
return typof(value).includes("null") ? null : value;
|
|
134
|
+
};
|
|
135
|
+
var _undefined = (value) => {
|
|
136
|
+
return typof(value).includes("undefined") ? void 0 : value;
|
|
137
|
+
};
|
|
132
138
|
// Annotate the CommonJS export names for ESM import in node:
|
|
133
139
|
0 && (module.exports = {
|
|
140
|
+
_null,
|
|
141
|
+
_undefined,
|
|
134
142
|
array,
|
|
135
143
|
boolean,
|
|
136
144
|
date,
|
|
137
|
-
float,
|
|
138
145
|
integer,
|
|
139
146
|
number,
|
|
140
147
|
object,
|
package/dist/main.mjs
CHANGED
|
@@ -70,9 +70,8 @@ var number = (value) => {
|
|
|
70
70
|
return typof(value).includes("number") ? Number(value) : NaN;
|
|
71
71
|
};
|
|
72
72
|
var integer = (value) => {
|
|
73
|
-
return typof(value).includes("number") ?
|
|
73
|
+
return typof(value).includes("number") ? Math.trunc(Number(value)) : NaN;
|
|
74
74
|
};
|
|
75
|
-
var float = number;
|
|
76
75
|
var boolean = (value) => {
|
|
77
76
|
if (typof(value).includes("boolean") && typof(value).includes("string")) {
|
|
78
77
|
if (value === "true") {
|
|
@@ -95,11 +94,18 @@ var array = (value) => {
|
|
|
95
94
|
var date = (value) => {
|
|
96
95
|
return new Date(value);
|
|
97
96
|
};
|
|
97
|
+
var _null = (value) => {
|
|
98
|
+
return typof(value).includes("null") ? null : value;
|
|
99
|
+
};
|
|
100
|
+
var _undefined = (value) => {
|
|
101
|
+
return typof(value).includes("undefined") ? void 0 : value;
|
|
102
|
+
};
|
|
98
103
|
export {
|
|
104
|
+
_null,
|
|
105
|
+
_undefined,
|
|
99
106
|
array,
|
|
100
107
|
boolean,
|
|
101
108
|
date,
|
|
102
|
-
float,
|
|
103
109
|
integer,
|
|
104
110
|
number,
|
|
105
111
|
object,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typof",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.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",
|
|
@@ -29,7 +29,13 @@
|
|
|
29
29
|
"keywords": [
|
|
30
30
|
"type",
|
|
31
31
|
"typeof",
|
|
32
|
+
"string",
|
|
33
|
+
"number",
|
|
32
34
|
"integer",
|
|
33
|
-
"float"
|
|
35
|
+
"float",
|
|
36
|
+
"boolean",
|
|
37
|
+
"object",
|
|
38
|
+
"array",
|
|
39
|
+
"date"
|
|
34
40
|
]
|
|
35
41
|
}
|