@ntnyq/utils 0.1.1 → 0.1.3

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/index.cjs CHANGED
@@ -24,17 +24,33 @@ __export(src_exports, {
24
24
  cAF: () => cAF,
25
25
  camelCase: () => camelCase,
26
26
  capitalize: () => capitalize,
27
+ chunk: () => chunk,
28
+ clamp: () => clamp,
27
29
  days: () => days,
28
30
  flatCase: () => flatCase,
31
+ getObjectType: () => getObjectType,
32
+ hasOwnProperty: () => hasOwnProperty,
29
33
  hours: () => hours,
34
+ isArray: () => isArray,
35
+ isBoolean: () => isBoolean,
30
36
  isBrowser: () => isBrowser,
37
+ isFunction: () => isFunction,
38
+ isInteger: () => isInteger,
39
+ isNativePromise: () => isNativePromise,
40
+ isNull: () => isNull,
41
+ isNumber: () => isNumber,
42
+ isPromise: () => isPromise,
43
+ isString: () => isString,
44
+ isUndefined: () => isUndefined,
31
45
  isUppercase: () => isUppercase,
32
46
  join: () => join,
33
47
  kebabCase: () => kebabCase,
34
48
  lowerFirst: () => lowerFirst,
35
49
  minutes: () => minutes,
36
50
  noop: () => noop,
51
+ omit: () => omit,
37
52
  pascalCase: () => pascalCase,
53
+ pick: () => pick,
38
54
  rAF: () => rAF,
39
55
  seconds: () => seconds,
40
56
  snakeCase: () => snakeCase,
@@ -51,6 +67,44 @@ __export(src_exports, {
51
67
  });
52
68
  module.exports = __toCommonJS(src_exports);
53
69
 
70
+ // src/is/index.ts
71
+ function getObjectType(value) {
72
+ return Object.prototype.toString.call(value).slice(8, -1);
73
+ }
74
+ function isString(value) {
75
+ return typeof value === "string";
76
+ }
77
+ function isNumber(value) {
78
+ return typeof value === "number";
79
+ }
80
+ function isInteger(value) {
81
+ return Number.isInteger(value);
82
+ }
83
+ function isBoolean(value) {
84
+ return typeof value === "boolean";
85
+ }
86
+ function isFunction(value) {
87
+ return typeof value === "function";
88
+ }
89
+ function isArray(value) {
90
+ return Array.isArray(value);
91
+ }
92
+ function isUndefined(value) {
93
+ return value === void 0;
94
+ }
95
+ function isNull(value) {
96
+ return value === null;
97
+ }
98
+ function isNativePromise(value) {
99
+ return getObjectType(value) === "Promise";
100
+ }
101
+ function hasPromiseApi(value) {
102
+ return isFunction(value?.then) && isFunction(value?.catch);
103
+ }
104
+ function isPromise(value) {
105
+ return isNativePromise(value) || hasPromiseApi(value);
106
+ }
107
+
54
108
  // src/fn/noop.ts
55
109
  var noop = () => {
56
110
  };
@@ -183,6 +237,11 @@ function weeks(count) {
183
237
  return count * ONE_WEEK;
184
238
  }
185
239
 
240
+ // src/misc/clamp.ts
241
+ function clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {
242
+ return Math.min(Math.max(value, min), max);
243
+ }
244
+
186
245
  // src/misc/waitFor.ts
187
246
  function waitFor(ms) {
188
247
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -198,6 +257,15 @@ var warnOnce = (message) => {
198
257
  console.warn(message);
199
258
  };
200
259
 
260
+ // src/array/chunk.ts
261
+ function chunk(array, size) {
262
+ const result = [];
263
+ for (let i = 0; i < array.length; i += size) {
264
+ result.push(array.slice(i, i + size));
265
+ }
266
+ return result;
267
+ }
268
+
201
269
  // src/array/unique.ts
202
270
  function unique(array) {
203
271
  return Array.from(new Set(array));
@@ -224,23 +292,62 @@ function join(array, options = {}) {
224
292
  if (!Array.isArray(array) || !array.length) return "";
225
293
  return array.filter((v) => Boolean(v) || v === 0).join(separator);
226
294
  }
295
+
296
+ // src/object/omit.ts
297
+ function omit(object, ...keys) {
298
+ keys.forEach((key) => delete object[key]);
299
+ return object;
300
+ }
301
+
302
+ // src/object/hasOwnProperty.ts
303
+ function hasOwnProperty(object, key) {
304
+ return Object.prototype.hasOwnProperty.call(object, key);
305
+ }
306
+
307
+ // src/object/pick.ts
308
+ function pick(object, keys) {
309
+ return Object.assign(
310
+ {},
311
+ ...keys.map((key) => {
312
+ if (object && hasOwnProperty(object, key)) {
313
+ return { [key]: object[key] };
314
+ }
315
+ })
316
+ );
317
+ }
227
318
  // Annotate the CommonJS export names for ESM import in node:
228
319
  0 && (module.exports = {
229
320
  NOOP,
230
321
  cAF,
231
322
  camelCase,
232
323
  capitalize,
324
+ chunk,
325
+ clamp,
233
326
  days,
234
327
  flatCase,
328
+ getObjectType,
329
+ hasOwnProperty,
235
330
  hours,
331
+ isArray,
332
+ isBoolean,
236
333
  isBrowser,
334
+ isFunction,
335
+ isInteger,
336
+ isNativePromise,
337
+ isNull,
338
+ isNumber,
339
+ isPromise,
340
+ isString,
341
+ isUndefined,
237
342
  isUppercase,
238
343
  join,
239
344
  kebabCase,
240
345
  lowerFirst,
241
346
  minutes,
242
347
  noop,
348
+ omit,
243
349
  pascalCase,
350
+ pick,
244
351
  rAF,
245
352
  seconds,
246
353
  snakeCase,
package/dist/index.d.cts CHANGED
@@ -1,6 +1,23 @@
1
1
  import { upperFirst } from 'scule';
2
2
  export * from 'scule';
3
3
 
4
+ /**
5
+ * @file is utils
6
+ * @category is
7
+ * @copyright {@link https://github.com/sindresorhus/is}
8
+ */
9
+ declare function getObjectType(value: unknown): string;
10
+ declare function isString(value: unknown): value is string;
11
+ declare function isNumber(value: unknown): value is number;
12
+ declare function isInteger(value: unknown): value is number;
13
+ declare function isBoolean(value: unknown): value is boolean;
14
+ declare function isFunction(value: unknown): value is Function;
15
+ declare function isArray(value: unknown): value is unknown[];
16
+ declare function isUndefined(value: unknown): value is undefined;
17
+ declare function isNull(value: unknown): value is null;
18
+ declare function isNativePromise<T = unknown>(value: unknown): value is Promise<T>;
19
+ declare function isPromise<T = unknown>(value: unknown): value is Promise<T>;
20
+
4
21
  /**
5
22
  * A function that does nothing.
6
23
  */
@@ -57,6 +74,15 @@ declare function hours(count: number): number;
57
74
  declare function days(count: number): number;
58
75
  declare function weeks(count: number): number;
59
76
 
77
+ /**
78
+ * Clamps a number between a minimum and maximum value
79
+ * @param value the value to clamp within the given range
80
+ * @param min the minimum value to clamp
81
+ * @param max the maximum value to clamp
82
+ * @returns the new value
83
+ */
84
+ declare function clamp(value: number, min?: number, max?: number): number;
85
+
60
86
  /**
61
87
  * Wait for a number of milliseconds
62
88
  *
@@ -74,6 +100,14 @@ declare function waitFor(ms: number): Promise<unknown>;
74
100
 
75
101
  declare const warnOnce: (message: string) => void;
76
102
 
103
+ /**
104
+ * Splits an array into smaller chunks of a given size.
105
+ * @param array The array to split
106
+ * @param size The size of each chunk
107
+ * @returns An array of arrays, where each sub-array has `size` elements from the original array.
108
+ */
109
+ declare function chunk<T>(array: T[], size: number): T[][];
110
+
77
111
  /**
78
112
  * Returns a new array with unique values.
79
113
  * @param array - The array to process.
@@ -117,4 +151,10 @@ interface JoinOptions {
117
151
  */
118
152
  declare function join(array: JoinableValue[], options?: JoinOptions): string;
119
153
 
120
- export { type AnyFn, type Arrayable, type Awaitable, type MayBe, NOOP, type Nullable, type Prettify, cAF, capitalize, days, hours, isBrowser, join, minutes, noop, rAF, seconds, toArray, unique, uniqueBy, waitFor, warnOnce, weeks };
154
+ declare function omit<T, K extends keyof T>(object: T, ...keys: K[]): Omit<T, K>;
155
+
156
+ declare function pick<T, K extends keyof T>(object: T, keys: K[]): Pick<T, K>;
157
+
158
+ declare function hasOwnProperty<T, K extends keyof T>(object: T, key: K): boolean;
159
+
160
+ export { type AnyFn, type Arrayable, type Awaitable, type MayBe, NOOP, type Nullable, type Prettify, cAF, capitalize, chunk, clamp, days, getObjectType, hasOwnProperty, hours, isArray, isBoolean, isBrowser, isFunction, isInteger, isNativePromise, isNull, isNumber, isPromise, isString, isUndefined, join, minutes, noop, omit, pick, rAF, seconds, toArray, unique, uniqueBy, waitFor, warnOnce, weeks };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,23 @@
1
1
  import { upperFirst } from 'scule';
2
2
  export * from 'scule';
3
3
 
4
+ /**
5
+ * @file is utils
6
+ * @category is
7
+ * @copyright {@link https://github.com/sindresorhus/is}
8
+ */
9
+ declare function getObjectType(value: unknown): string;
10
+ declare function isString(value: unknown): value is string;
11
+ declare function isNumber(value: unknown): value is number;
12
+ declare function isInteger(value: unknown): value is number;
13
+ declare function isBoolean(value: unknown): value is boolean;
14
+ declare function isFunction(value: unknown): value is Function;
15
+ declare function isArray(value: unknown): value is unknown[];
16
+ declare function isUndefined(value: unknown): value is undefined;
17
+ declare function isNull(value: unknown): value is null;
18
+ declare function isNativePromise<T = unknown>(value: unknown): value is Promise<T>;
19
+ declare function isPromise<T = unknown>(value: unknown): value is Promise<T>;
20
+
4
21
  /**
5
22
  * A function that does nothing.
6
23
  */
@@ -57,6 +74,15 @@ declare function hours(count: number): number;
57
74
  declare function days(count: number): number;
58
75
  declare function weeks(count: number): number;
59
76
 
77
+ /**
78
+ * Clamps a number between a minimum and maximum value
79
+ * @param value the value to clamp within the given range
80
+ * @param min the minimum value to clamp
81
+ * @param max the maximum value to clamp
82
+ * @returns the new value
83
+ */
84
+ declare function clamp(value: number, min?: number, max?: number): number;
85
+
60
86
  /**
61
87
  * Wait for a number of milliseconds
62
88
  *
@@ -74,6 +100,14 @@ declare function waitFor(ms: number): Promise<unknown>;
74
100
 
75
101
  declare const warnOnce: (message: string) => void;
76
102
 
103
+ /**
104
+ * Splits an array into smaller chunks of a given size.
105
+ * @param array The array to split
106
+ * @param size The size of each chunk
107
+ * @returns An array of arrays, where each sub-array has `size` elements from the original array.
108
+ */
109
+ declare function chunk<T>(array: T[], size: number): T[][];
110
+
77
111
  /**
78
112
  * Returns a new array with unique values.
79
113
  * @param array - The array to process.
@@ -117,4 +151,10 @@ interface JoinOptions {
117
151
  */
118
152
  declare function join(array: JoinableValue[], options?: JoinOptions): string;
119
153
 
120
- export { type AnyFn, type Arrayable, type Awaitable, type MayBe, NOOP, type Nullable, type Prettify, cAF, capitalize, days, hours, isBrowser, join, minutes, noop, rAF, seconds, toArray, unique, uniqueBy, waitFor, warnOnce, weeks };
154
+ declare function omit<T, K extends keyof T>(object: T, ...keys: K[]): Omit<T, K>;
155
+
156
+ declare function pick<T, K extends keyof T>(object: T, keys: K[]): Pick<T, K>;
157
+
158
+ declare function hasOwnProperty<T, K extends keyof T>(object: T, key: K): boolean;
159
+
160
+ export { type AnyFn, type Arrayable, type Awaitable, type MayBe, NOOP, type Nullable, type Prettify, cAF, capitalize, chunk, clamp, days, getObjectType, hasOwnProperty, hours, isArray, isBoolean, isBrowser, isFunction, isInteger, isNativePromise, isNull, isNumber, isPromise, isString, isUndefined, join, minutes, noop, omit, pick, rAF, seconds, toArray, unique, uniqueBy, waitFor, warnOnce, weeks };
package/dist/index.js CHANGED
@@ -1,3 +1,41 @@
1
+ // src/is/index.ts
2
+ function getObjectType(value) {
3
+ return Object.prototype.toString.call(value).slice(8, -1);
4
+ }
5
+ function isString(value) {
6
+ return typeof value === "string";
7
+ }
8
+ function isNumber(value) {
9
+ return typeof value === "number";
10
+ }
11
+ function isInteger(value) {
12
+ return Number.isInteger(value);
13
+ }
14
+ function isBoolean(value) {
15
+ return typeof value === "boolean";
16
+ }
17
+ function isFunction(value) {
18
+ return typeof value === "function";
19
+ }
20
+ function isArray(value) {
21
+ return Array.isArray(value);
22
+ }
23
+ function isUndefined(value) {
24
+ return value === void 0;
25
+ }
26
+ function isNull(value) {
27
+ return value === null;
28
+ }
29
+ function isNativePromise(value) {
30
+ return getObjectType(value) === "Promise";
31
+ }
32
+ function hasPromiseApi(value) {
33
+ return isFunction(value?.then) && isFunction(value?.catch);
34
+ }
35
+ function isPromise(value) {
36
+ return isNativePromise(value) || hasPromiseApi(value);
37
+ }
38
+
1
39
  // src/fn/noop.ts
2
40
  var noop = () => {
3
41
  };
@@ -130,6 +168,11 @@ function weeks(count) {
130
168
  return count * ONE_WEEK;
131
169
  }
132
170
 
171
+ // src/misc/clamp.ts
172
+ function clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {
173
+ return Math.min(Math.max(value, min), max);
174
+ }
175
+
133
176
  // src/misc/waitFor.ts
134
177
  function waitFor(ms) {
135
178
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -145,6 +188,15 @@ var warnOnce = (message) => {
145
188
  console.warn(message);
146
189
  };
147
190
 
191
+ // src/array/chunk.ts
192
+ function chunk(array, size) {
193
+ const result = [];
194
+ for (let i = 0; i < array.length; i += size) {
195
+ result.push(array.slice(i, i + size));
196
+ }
197
+ return result;
198
+ }
199
+
148
200
  // src/array/unique.ts
149
201
  function unique(array) {
150
202
  return Array.from(new Set(array));
@@ -171,22 +223,61 @@ function join(array, options = {}) {
171
223
  if (!Array.isArray(array) || !array.length) return "";
172
224
  return array.filter((v) => Boolean(v) || v === 0).join(separator);
173
225
  }
226
+
227
+ // src/object/omit.ts
228
+ function omit(object, ...keys) {
229
+ keys.forEach((key) => delete object[key]);
230
+ return object;
231
+ }
232
+
233
+ // src/object/hasOwnProperty.ts
234
+ function hasOwnProperty(object, key) {
235
+ return Object.prototype.hasOwnProperty.call(object, key);
236
+ }
237
+
238
+ // src/object/pick.ts
239
+ function pick(object, keys) {
240
+ return Object.assign(
241
+ {},
242
+ ...keys.map((key) => {
243
+ if (object && hasOwnProperty(object, key)) {
244
+ return { [key]: object[key] };
245
+ }
246
+ })
247
+ );
248
+ }
174
249
  export {
175
250
  NOOP,
176
251
  cAF,
177
252
  camelCase,
178
253
  capitalize,
254
+ chunk,
255
+ clamp,
179
256
  days,
180
257
  flatCase,
258
+ getObjectType,
259
+ hasOwnProperty,
181
260
  hours,
261
+ isArray,
262
+ isBoolean,
182
263
  isBrowser,
264
+ isFunction,
265
+ isInteger,
266
+ isNativePromise,
267
+ isNull,
268
+ isNumber,
269
+ isPromise,
270
+ isString,
271
+ isUndefined,
183
272
  isUppercase,
184
273
  join,
185
274
  kebabCase,
186
275
  lowerFirst,
187
276
  minutes,
188
277
  noop,
278
+ omit,
189
279
  pascalCase,
280
+ pick,
190
281
  rAF,
191
282
  seconds,
192
283
  snakeCase,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ntnyq/utils",
3
3
  "type": "module",
4
- "version": "0.1.1",
4
+ "version": "0.1.3",
5
5
  "description": "Common used utils.",
6
6
  "keywords": [
7
7
  "utils"
@@ -40,19 +40,19 @@
40
40
  "scule": "^1.3.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@ntnyq/eslint-config": "^3.0.0-beta.17",
43
+ "@ntnyq/eslint-config": "^3.0.0-beta.19",
44
44
  "@ntnyq/prettier-config": "^1.21.3",
45
- "@vitest/coverage-v8": "^2.1.1",
46
- "bumpp": "^9.5.2",
47
- "eslint": "^9.11.1",
45
+ "@vitest/coverage-v8": "^2.1.2",
46
+ "bumpp": "^9.7.1",
47
+ "eslint": "^9.12.0",
48
48
  "husky": "^9.1.6",
49
49
  "nano-staged": "^0.8.0",
50
50
  "npm-run-all2": "^6.2.3",
51
- "pnpm": "^9.11.0",
51
+ "pnpm": "^9.12.1",
52
52
  "prettier": "^3.3.3",
53
53
  "tsup": "^8.3.0",
54
- "typescript": "^5.6.2",
55
- "vitest": "^2.1.1"
54
+ "typescript": "^5.6.3",
55
+ "vitest": "^2.1.2"
56
56
  },
57
57
  "engines": {
58
58
  "node": ">=18.18.0"