@h3ravel/support 0.6.1 → 0.7.0
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 +10 -0
- package/dist/index.d.cts +4 -29
- package/dist/index.d.ts +4 -29
- package/package.json +13 -2
- package/src/Contracts/ObjContract.ts +3 -44
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @h3ravel/support
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- b0d1b7c: feat: flip @h3ravel/shared dependency on @h3ravel/support as it should be.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- ce51a92: fix: re-export @h3ravel/shared object contract interfaces as types
|
|
12
|
+
|
|
3
13
|
## 0.6.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
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
|
|
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
|
|
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.
|
|
3
|
+
"version": "0.7.0",
|
|
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.0"
|
|
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
|
-
|
|
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
|