@develit-io/backend-sdk 9.11.14 → 9.11.15

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.d.mts CHANGED
@@ -803,11 +803,11 @@ interface UseFetchOptions extends RequestInit {
803
803
  declare function useFetch<T = unknown>(url: string, { parseAs, ...options }?: UseFetchOptions): Promise<Result<T>>;
804
804
 
805
805
  type NullToOptional<T> = {
806
- [K in keyof T]: null extends T[K] ? Exclude<T[K], null> | undefined : T[K];
806
+ [K in keyof T]: null extends T[K] ? Exclude<T[K], null> extends object ? NullToOptional<Exclude<T[K], null>> | undefined : Exclude<T[K], null> | undefined : T[K] extends (infer U)[] ? U extends object ? NullToOptional<U>[] : T[K] : T[K] extends object ? NullToOptional<T[K]> : T[K];
807
807
  };
808
808
  declare function nullToOptional<T extends object>(obj: T): NullToOptional<T>;
809
809
  type OptionalToNull<T> = {
810
- [K in keyof T]: undefined extends T[K] ? Exclude<T[K], undefined> | null : T[K];
810
+ [K in keyof T]: undefined extends T[K] ? Exclude<T[K], undefined> extends object ? OptionalToNull<Exclude<T[K], undefined>> | null : Exclude<T[K], undefined> | null : T[K] extends (infer U)[] ? U extends object ? OptionalToNull<U>[] : T[K] : T[K] extends object ? OptionalToNull<T[K]> : T[K];
811
811
  };
812
812
  declare function optionalToNull<T extends object>(obj: T): OptionalToNull<T>;
813
813
 
package/dist/index.d.ts CHANGED
@@ -803,11 +803,11 @@ interface UseFetchOptions extends RequestInit {
803
803
  declare function useFetch<T = unknown>(url: string, { parseAs, ...options }?: UseFetchOptions): Promise<Result<T>>;
804
804
 
805
805
  type NullToOptional<T> = {
806
- [K in keyof T]: null extends T[K] ? Exclude<T[K], null> | undefined : T[K];
806
+ [K in keyof T]: null extends T[K] ? Exclude<T[K], null> extends object ? NullToOptional<Exclude<T[K], null>> | undefined : Exclude<T[K], null> | undefined : T[K] extends (infer U)[] ? U extends object ? NullToOptional<U>[] : T[K] : T[K] extends object ? NullToOptional<T[K]> : T[K];
807
807
  };
808
808
  declare function nullToOptional<T extends object>(obj: T): NullToOptional<T>;
809
809
  type OptionalToNull<T> = {
810
- [K in keyof T]: undefined extends T[K] ? Exclude<T[K], undefined> | null : T[K];
810
+ [K in keyof T]: undefined extends T[K] ? Exclude<T[K], undefined> extends object ? OptionalToNull<Exclude<T[K], undefined>> | null : Exclude<T[K], undefined> | null : T[K] extends (infer U)[] ? U extends object ? OptionalToNull<U>[] : T[K] : T[K] extends object ? OptionalToNull<T[K]> : T[K];
811
811
  };
812
812
  declare function optionalToNull<T extends object>(obj: T): OptionalToNull<T>;
813
813
 
package/dist/index.mjs CHANGED
@@ -681,14 +681,38 @@ async function useFetch(url, { parseAs = "json", ...options } = {}) {
681
681
 
682
682
  function nullToOptional(obj) {
683
683
  return Object.fromEntries(
684
- Object.entries(obj).map(([k, v]) => [k, v === null ? void 0 : v])
684
+ Object.entries(obj).map(([k, v]) => {
685
+ if (v === null) return [k, void 0];
686
+ if (Array.isArray(v))
687
+ return [
688
+ k,
689
+ v.map(
690
+ (item) => item !== null && typeof item === "object" ? nullToOptional(item) : item
691
+ )
692
+ ];
693
+ if (typeof v === "object" && v instanceof Date) return [k, v];
694
+ if (typeof v === "object") return [k, nullToOptional(v)];
695
+ return [k, v];
696
+ })
685
697
  );
686
698
  }
687
699
  function optionalToNull(obj) {
688
700
  const out = {};
689
701
  for (const key of Object.keys(obj)) {
690
702
  const value = obj[key];
691
- out[key] = value === void 0 ? null : value;
703
+ if (value === void 0) {
704
+ out[key] = null;
705
+ } else if (Array.isArray(value)) {
706
+ out[key] = value.map(
707
+ (item) => item !== void 0 && typeof item === "object" && !(item instanceof Date) ? optionalToNull(item) : item
708
+ );
709
+ } else if (typeof value === "object" && value !== null && !(value instanceof Date)) {
710
+ out[key] = optionalToNull(
711
+ value
712
+ );
713
+ } else {
714
+ out[key] = value;
715
+ }
692
716
  }
693
717
  return out;
694
718
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@develit-io/backend-sdk",
3
- "version": "9.11.14",
3
+ "version": "9.11.15",
4
4
  "description": "Develit Backend SDK",
5
5
  "author": "Develit.io",
6
6
  "license": "ISC",