**What** - Renames /admin-next -> /admin - Renames @medusajs/admin-sdk -> @medusajs/admin-bundler - Creates a new package called @medusajs/admin-sdk that will hold all tooling relevant to creating admin extensions. This is currently `defineRouteConfig` and `defineWidgetConfig`, but will eventually also export methods for adding custom fields, register translation, etc. - cc: @shahednasser we should update the examples in the docs so these functions are imported from `@medusajs/admin-sdk`. People will also need to install the package in their project, as it's no longer a transient dependency. - cc: @olivermrbl we might want to publish a changelog when this is merged, as it is a breaking change, and will require people to import the `defineXConfig` from the new package instead of `@medusajs/admin-shared`. - Updates CODEOWNERS so /admin packages does not require a review from the UI team.
33 lines
631 B
TypeScript
33 lines
631 B
TypeScript
/**
|
|
* Pick properties from an object and copy them to a new object
|
|
* @param obj
|
|
* @param keys
|
|
*/
|
|
export function pick(obj: Record<string, any>, keys: string[]) {
|
|
const ret: Record<string, any> = {}
|
|
|
|
keys.forEach((k) => {
|
|
if (k in obj) {
|
|
ret[k] = obj[k]
|
|
}
|
|
})
|
|
|
|
return ret
|
|
}
|
|
|
|
/**
|
|
* Remove properties that are `null` or `undefined` from the object.
|
|
* @param obj
|
|
*/
|
|
export function cleanNonValues(obj: Record<string, any>) {
|
|
const ret: Record<string, any> = {}
|
|
|
|
for (const key in obj) {
|
|
if (obj[key] !== null && typeof obj[key] !== "undefined") {
|
|
ret[key] = obj[key]
|
|
}
|
|
}
|
|
|
|
return ret
|
|
}
|