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 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
- Extract the valid types.
47
+ Infer types.
44
48
 
45
49
  ## Features
46
50
 
47
- - Extract multiple types
48
- - Extracts integer and float types
49
- - It infers the type from a string
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
- typof
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
- Extract the valid types.
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'); // [ 'string' ]
123
+ > typof('test'); // [ "string" ]
119
124
  >
120
- > typof('0'); // [ 'string', 'number', 'integer' ]
121
- > typof(0); // [ 'number', 'integer' ]
125
+ > typof('0'); // [ "string", "number", "integer" ]
126
+ > typof(0); // [ "number", "integer" ]
122
127
  >
123
- > typof('0.5'); // [ 'string', 'number', 'float' ]
124
- > typof(0.5); // [ 'number', 'float' ]
128
+ > typof('0.5'); // [ "string", "number", "float" ]
129
+ > typof(0.5); // [ "number", "float" ]
125
130
  >
126
- > typof('true'); // [ 'string', 'boolean' ]
127
- > typof(true); // [ 'boolean' ]
131
+ > typof('true'); // [ "string", "boolean" ]
132
+ > typof(true); // [ "boolean" ]
128
133
  >
129
- > typof('{"key": "value"}'); // [ 'string', 'object' ]
130
- > typof({ key: 'value' }); // [ 'object' ]
134
+ > typof('{"key": "value"}'); // [ "string", "object" ]
135
+ > typof({ key: 'value' }); // [ "object" ]
131
136
  >
132
- > typof('["test"]'); // [ 'string', 'array' ]
133
- > typof(['test']); // [ 'array' ]
137
+ > typof('["test"]'); // [ "string", "array" ]
138
+ > typof(['test']); // [ "array" ]
134
139
  >
135
- > typof('2025-01-01'); // [ 'string', 'date' ]
136
- > typof(new Date('2025-01-01')); // [ 'object', 'date' ]
140
+ > typof('2025-01-01'); // [ "string", "date" ]
141
+ > typof(new Date('2025-01-01')); // [ "object", "date" ]
137
142
  >
138
- > typof('null'); // [ 'string, 'null' ]
139
- > typof(null); // [ 'null' ]
143
+ > typof('null'); // [ "string", "null" ]
144
+ > typof(null); // [ "null" ]
140
145
  >
141
- > typof('undefined'); // [ 'string, 'undefined' ]
142
- > typof(undefined); // [ '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, float, integer, number, object, string, typof };
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, float, integer, number, object, string, typof };
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") ? Number.parseInt(string(value)) : NaN;
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") ? Number.parseInt(string(value)) : NaN;
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.2",
4
- "description": "Extract the valid types.",
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
  }