@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 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 (...[interpolationValues]) => (interpolationValues
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 (...[interpolationValues]) => (interpolationValues
40
+ function createInterpolation(value, _strict) {
41
+ return (interpolationValues) => (interpolationValues
42
42
  ? value.replace(/\{([^}]*)\}/g, (match, interpolationId) => interpolationValues[interpolationId])
43
43
  : value);
44
44
  }
@@ -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>>(value: GenericValue): <GenericInterpolationMapperValue extends string, GenericInterpolationValues extends Record<GenericInterpolationId, GenericInterpolationMapperValue>>(...[interpolationValues]: IsEqual<GenericInterpolationId, never> extends true ? [] : [interpolationValues: GenericInterpolationValues]) => ReplaceInterpolationIdByValues<GenericValue, GenericInterpolationValues>;
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
+ }>;
@@ -1,6 +1,9 @@
1
- export type SimplifyType<T> = T extends Record<number, unknown> ? {
2
- [K in keyof T]: SimplifyType<T[K]>;
3
- } : T;
4
- export type SimplifyTypeForce<T> = T extends object ? {
5
- [K in keyof T]: SimplifyTypeForce<T[K]>;
6
- } : T;
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/utils",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "author": "mathcovax",
5
5
  "license": "MIT",
6
6
  "type": "module",