chore(framework): Initial commit (#8221)
**What** - Initiate the framework package (which is just a place to move things around for now) - move the config loader and related resources as well as the `ConfigModule` type - Create a ConfigManager singleton which prepare and store the config (later can be stored entirely in the container) and allow for easier test override - re export the logger from the framework - replace medusa config loader with the framework one - `build` run type check on tests as well but `prepublishOnly` will not fail on build if tests are typed broken FIXES FRMW-2607 FIXES FRMW-2609 FIXES FRMW-2614 FIXES FRMW-2618
This commit is contained in:
committed by
GitHub
parent
97f64a5cfe
commit
47dde05517
@@ -6,9 +6,10 @@ import { isObject } from "./is-object"
|
||||
*
|
||||
* @param obj
|
||||
*/
|
||||
export function deepCopy<T extends Record<any, any> = Record<any, any>>(
|
||||
obj: T | T[]
|
||||
): T | T[] {
|
||||
export function deepCopy<
|
||||
T extends Record<any, any> | Record<any, any>[] = Record<any, any>,
|
||||
TOutput = T extends [] ? T[] : T
|
||||
>(obj: T): TOutput {
|
||||
if (obj === null || typeof obj !== "object") {
|
||||
return obj
|
||||
}
|
||||
@@ -18,14 +19,14 @@ export function deepCopy<T extends Record<any, any> = Record<any, any>>(
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
copy[i] = deepCopy(obj[i])
|
||||
}
|
||||
return copy
|
||||
return copy as TOutput
|
||||
}
|
||||
|
||||
if (isObject(obj)) {
|
||||
const copy: Record<any, any> = {}
|
||||
for (let attr in obj) {
|
||||
if (obj.hasOwnProperty(attr)) {
|
||||
copy[attr] = deepCopy(obj[attr])
|
||||
copy[attr] = deepCopy(obj[attr] as T)
|
||||
}
|
||||
}
|
||||
return copy
|
||||
|
||||
Reference in New Issue
Block a user