@duplojs/utils 0.2.0 → 0.3.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/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/interpolation.d.ts +1 -1
- package/dist/mergeObjects.d.ts +4 -0
- package/dist/simplifyType.d.ts +9 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -39,8 +39,8 @@ function hasKey(obj, key) {
|
|
|
39
39
|
return key in obj;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
function createInterpolation(value) {
|
|
43
|
-
return (
|
|
42
|
+
function createInterpolation(value, _strict) {
|
|
43
|
+
return (interpolationValues) => (interpolationValues
|
|
44
44
|
? value.replace(/\{([^}]*)\}/g, (match, interpolationId) => interpolationValues[interpolationId])
|
|
45
45
|
: value);
|
|
46
46
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -37,8 +37,8 @@ function hasKey(obj, key) {
|
|
|
37
37
|
return key in obj;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
function createInterpolation(value) {
|
|
41
|
-
return (
|
|
40
|
+
function createInterpolation(value, _strict) {
|
|
41
|
+
return (interpolationValues) => (interpolationValues
|
|
42
42
|
? value.replace(/\{([^}]*)\}/g, (match, interpolationId) => interpolationValues[interpolationId])
|
|
43
43
|
: value);
|
|
44
44
|
}
|
package/dist/interpolation.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { type IsEqual } from "./isEqual";
|
|
|
2
2
|
export type ExtractInterpolationId<GenericValue extends string> = GenericValue extends `${string}{${infer InferedInterpolationId}}${infer InferedEndValue}` ? InferedInterpolationId | ExtractInterpolationId<InferedEndValue> : never;
|
|
3
3
|
export type ReplaceInterpolationIdByValues<GenericValue extends string, GenericInterpolationValues extends Record<string, string>> = GenericValue extends `${infer InferedStartValue}{${infer InferedInterpolationId}}${infer InferedEndValue}` ? InferedInterpolationId extends keyof GenericInterpolationValues ? `${InferedStartValue}${GenericInterpolationValues[InferedInterpolationId]}${ReplaceInterpolationIdByValues<InferedEndValue, GenericInterpolationValues>}` : `${InferedStartValue}${string}${ReplaceInterpolationIdByValues<InferedEndValue, GenericInterpolationValues>}` : GenericValue;
|
|
4
4
|
export type CreateInterpolationContract<GenericInterpolationFunction extends ((value: Record<string, string>) => string)> = ReplaceInterpolationIdByValues<ReturnType<GenericInterpolationFunction>, {}>;
|
|
5
|
-
export declare function createInterpolation<GenericValue extends string, GenericInterpolationId extends ExtractInterpolationId<GenericValue
|
|
5
|
+
export declare function createInterpolation<GenericValue extends string, GenericInterpolationId extends ExtractInterpolationId<GenericValue>, GenericStrict extends boolean>(value: GenericValue, strict?: GenericStrict): <GenericInterpolationMapperValue extends string, GenericInterpolationValues extends Record<GenericInterpolationId, GenericInterpolationMapperValue>>(...[interpolationValues]: IsEqual<GenericInterpolationId, never> extends true ? [] : [interpolationValues: GenericInterpolationValues]) => IsEqual<GenericStrict, true> extends true ? ReplaceInterpolationIdByValues<GenericValue, GenericInterpolationValues> : string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type SimplifyObjectTopLevel } from "./simplifyType";
|
|
2
|
+
export type MergeObject<GenericFirstObject extends object, GenericSecondObject extends object> = SimplifyObjectTopLevel<GenericSecondObject & {
|
|
3
|
+
[Prop in Exclude<keyof GenericFirstObject, keyof GenericSecondObject>]: GenericFirstObject[Prop];
|
|
4
|
+
}>;
|
package/dist/simplifyType.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
export type SimplifyType<
|
|
2
|
-
[
|
|
3
|
-
} :
|
|
4
|
-
export type SimplifyTypeForce<
|
|
5
|
-
[
|
|
6
|
-
} :
|
|
1
|
+
export type SimplifyType<GenericValue extends unknown> = GenericValue extends Record<number, unknown> ? {
|
|
2
|
+
[Prop in keyof GenericValue]: SimplifyType<GenericValue[Prop]>;
|
|
3
|
+
} : GenericValue;
|
|
4
|
+
export type SimplifyTypeForce<GenericValue extends unknown> = GenericValue extends object ? {
|
|
5
|
+
[Prop in keyof GenericValue]: SimplifyTypeForce<GenericValue[Prop]>;
|
|
6
|
+
} : GenericValue;
|
|
7
|
+
export type SimplifyObjectTopLevel<GenericObject extends object> = GenericObject extends object ? {
|
|
8
|
+
[Prop in keyof GenericObject]: GenericObject[Prop];
|
|
9
|
+
} : never;
|