@h3ravel/support 0.6.1 → 0.7.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @h3ravel/support
2
2
 
3
+ ## 0.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - chore: add download count to readme
8
+
9
+ ## 0.7.0
10
+
11
+ ### Minor Changes
12
+
13
+ - b0d1b7c: feat: flip @h3ravel/shared dependency on @h3ravel/support as it should be.
14
+
15
+ ### Patch Changes
16
+
17
+ - ce51a92: fix: re-export @h3ravel/shared object contract interfaces as types
18
+
3
19
  ## 0.6.0
4
20
 
5
21
  ### Minor Changes
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Framework][ix]][lx]
4
4
  [![Support Package Version][i1]][l1]
5
+ [![Downloads][d1]][d1]
5
6
 
6
7
  # About H3ravel/support
7
8
 
@@ -27,3 +28,4 @@ The H3ravel framework is open-sourced software licensed under the [MIT license](
27
28
  [lx]: https://www.npmjs.com/package/@h3ravel/core
28
29
  [i1]: https://img.shields.io/npm/v/%40h3ravel%2Fsupport?style=flat-square&label=@h3ravel/support&color=%230970ce
29
30
  [l1]: https://www.npmjs.com/package/@h3ravel/support
31
+ [d1]: https://img.shields.io/npm/dt/%40h3ravel%2Fsupport?style=flat-square&label=Downloads&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2F%40h3ravel%2Fsupport
package/dist/index.d.cts CHANGED
@@ -1,36 +1,11 @@
1
+ import { DotFlatten, DotNestedKeys, DotNestedValue } from '@h3ravel/shared';
2
+ export { DotFlatten, DotNestedKeys, DotNestedValue } from '@h3ravel/shared';
3
+
1
4
  /**
2
5
  * Converts CamelCased strings to snake_case
3
6
  */
4
7
  type CamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? `${T extends Capitalize<T> ? '_' : ''}${Lowercase<T>}${CamelToSnakeCase<U>}` : S;
5
8
 
6
- /**
7
- * Adds a dot prefix to nested keys
8
- */
9
- type DotPrefix<T extends string, U extends string> = T extends '' ? U : `${T}.${U}`;
10
- /**
11
- * Converts a union of objects into a single merged object
12
- */
13
- type MergeUnion<T> = (T extends any ? (k: T) => void : never) extends (k: infer I) => void ? {
14
- [K in keyof I]: I[K];
15
- } : never;
16
- /**
17
- * Flattens nested objects into dotted keys
18
- */
19
- type DotFlatten<T, Prefix extends string = ''> = MergeUnion<{
20
- [K in keyof T & string]: T[K] extends Record<string, any> ? DotFlatten<T[K], DotPrefix<Prefix, K>> : {
21
- [P in DotPrefix<Prefix, K>]: T[K];
22
- };
23
- }[keyof T & string]>;
24
- /**
25
- * Builds "nested.key" paths for autocompletion
26
- */
27
- type DotNestedKeys<T> = {
28
- [K in keyof T & string]: T[K] extends object ? `${K}` | `${K}.${DotNestedKeys<T[K]>}` : `${K}`;
29
- }[keyof T & string];
30
- /**
31
- * Retrieves type at a given dot-path
32
- */
33
- type DotNestedValue<T, Path extends string> = Path extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? DotNestedValue<T[Key], Rest> : never : Path extends keyof T ? T[Path] : never;
34
9
  /**
35
10
  * Convert CamelCased Object keys to snake_case
36
11
  */
@@ -268,4 +243,4 @@ declare const substitute: (str: string, data?: Record<string, unknown>, def?: st
268
243
  */
269
244
  declare const truncate: (str: string, len?: number, suffix?: string) => string;
270
245
 
271
- export { type CamelToSnakeCase, type DotFlatten, type DotNestedKeys, type DotNestedValue, type KeysToSnakeCase, abbreviate, after, afterLast, before, beforeLast, capitalize, chunk, dot, extractProperties, getValue, humanize, modObj, pluralize, range, safeDot, setNested, singularize, slugify, slugifyKeys, subString, substitute, toBytes, toHumanTime, truncate };
246
+ export { type CamelToSnakeCase, type KeysToSnakeCase, abbreviate, after, afterLast, before, beforeLast, capitalize, chunk, dot, extractProperties, getValue, humanize, modObj, pluralize, range, safeDot, setNested, singularize, slugify, slugifyKeys, subString, substitute, toBytes, toHumanTime, truncate };
package/dist/index.d.ts CHANGED
@@ -1,36 +1,11 @@
1
+ import { DotFlatten, DotNestedKeys, DotNestedValue } from '@h3ravel/shared';
2
+ export { DotFlatten, DotNestedKeys, DotNestedValue } from '@h3ravel/shared';
3
+
1
4
  /**
2
5
  * Converts CamelCased strings to snake_case
3
6
  */
4
7
  type CamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? `${T extends Capitalize<T> ? '_' : ''}${Lowercase<T>}${CamelToSnakeCase<U>}` : S;
5
8
 
6
- /**
7
- * Adds a dot prefix to nested keys
8
- */
9
- type DotPrefix<T extends string, U extends string> = T extends '' ? U : `${T}.${U}`;
10
- /**
11
- * Converts a union of objects into a single merged object
12
- */
13
- type MergeUnion<T> = (T extends any ? (k: T) => void : never) extends (k: infer I) => void ? {
14
- [K in keyof I]: I[K];
15
- } : never;
16
- /**
17
- * Flattens nested objects into dotted keys
18
- */
19
- type DotFlatten<T, Prefix extends string = ''> = MergeUnion<{
20
- [K in keyof T & string]: T[K] extends Record<string, any> ? DotFlatten<T[K], DotPrefix<Prefix, K>> : {
21
- [P in DotPrefix<Prefix, K>]: T[K];
22
- };
23
- }[keyof T & string]>;
24
- /**
25
- * Builds "nested.key" paths for autocompletion
26
- */
27
- type DotNestedKeys<T> = {
28
- [K in keyof T & string]: T[K] extends object ? `${K}` | `${K}.${DotNestedKeys<T[K]>}` : `${K}`;
29
- }[keyof T & string];
30
- /**
31
- * Retrieves type at a given dot-path
32
- */
33
- type DotNestedValue<T, Path extends string> = Path extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? DotNestedValue<T[Key], Rest> : never : Path extends keyof T ? T[Path] : never;
34
9
  /**
35
10
  * Convert CamelCased Object keys to snake_case
36
11
  */
@@ -268,4 +243,4 @@ declare const substitute: (str: string, data?: Record<string, unknown>, def?: st
268
243
  */
269
244
  declare const truncate: (str: string, len?: number, suffix?: string) => string;
270
245
 
271
- export { type CamelToSnakeCase, type DotFlatten, type DotNestedKeys, type DotNestedValue, type KeysToSnakeCase, abbreviate, after, afterLast, before, beforeLast, capitalize, chunk, dot, extractProperties, getValue, humanize, modObj, pluralize, range, safeDot, setNested, singularize, slugify, slugifyKeys, subString, substitute, toBytes, toHumanTime, truncate };
246
+ export { type CamelToSnakeCase, type KeysToSnakeCase, abbreviate, after, afterLast, before, beforeLast, capitalize, chunk, dot, extractProperties, getValue, humanize, modObj, pluralize, range, safeDot, setNested, singularize, slugify, slugifyKeys, subString, substitute, toBytes, toHumanTime, truncate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@h3ravel/support",
3
- "version": "0.6.1",
3
+ "version": "0.7.1",
4
4
  "description": "Shared helpers, facades and utilities for H3ravel.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -8,8 +8,19 @@
8
8
  "publishConfig": {
9
9
  "access": "public"
10
10
  },
11
+ "keywords": [
12
+ "h3ravel",
13
+ "modern",
14
+ "web",
15
+ "H3",
16
+ "framework",
17
+ "nodejs",
18
+ "typescript",
19
+ "laravel"
20
+ ],
11
21
  "devDependencies": {
12
- "typescript": "^5.4.0"
22
+ "typescript": "^5.4.0",
23
+ "@h3ravel/shared": "0.7.1"
13
24
  },
14
25
  "scripts": {
15
26
  "barrel": "barrelsby --directory src --delete --singleQuotes",
@@ -1,49 +1,8 @@
1
1
  import { CamelToSnakeCase } from './StrContract'
2
2
 
3
- /**
4
- * Adds a dot prefix to nested keys
5
- */
6
- type DotPrefix<T extends string, U extends string> =
7
- T extends '' ? U : `${T}.${U}`
8
-
9
- /**
10
- * Converts a union of objects into a single merged object
11
- */
12
- type MergeUnion<T> =
13
- (T extends any ? (k: T) => void : never) extends
14
- (k: infer I) => void ? { [K in keyof I]: I[K] } : never
15
-
16
- /**
17
- * Flattens nested objects into dotted keys
18
- */
19
- export type DotFlatten<T, Prefix extends string = ''> = MergeUnion<{
20
- [K in keyof T & string]:
21
- T[K] extends Record<string, any>
22
- ? DotFlatten<T[K], DotPrefix<Prefix, K>>
23
- : { [P in DotPrefix<Prefix, K>]: T[K] }
24
- }[keyof T & string]>
25
-
26
- /**
27
- * Builds "nested.key" paths for autocompletion
28
- */
29
- export type DotNestedKeys<T> = {
30
- [K in keyof T & string]:
31
- T[K] extends object
32
- ? `${K}` | `${K}.${DotNestedKeys<T[K]>}`
33
- : `${K}`
34
- }[keyof T & string]
35
-
36
- /**
37
- * Retrieves type at a given dot-path
38
- */
39
- export type DotNestedValue<T, Path extends string> =
40
- Path extends `${infer Key}.${infer Rest}`
41
- ? Key extends keyof T
42
- ? DotNestedValue<T[Key], Rest>
43
- : never
44
- : Path extends keyof T
45
- ? T[Path]
46
- : never
3
+ export type { DotFlatten } from '@h3ravel/shared'
4
+ export type { DotNestedKeys } from '@h3ravel/shared'
5
+ export type { DotNestedValue } from '@h3ravel/shared'
47
6
 
48
7
  /**
49
8
  * Convert CamelCased Object keys to snake_case