feat(admin-sdk,admin-bundler,admin-shared,medusa): Restructure admin packages (#8988)
**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.
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import i18next from "i18next"
|
||||
import { z } from "zod"
|
||||
import { castNumber } from "./cast-number"
|
||||
|
||||
/**
|
||||
* Validates that an optional value is an integer.
|
||||
*/
|
||||
export const optionalInt = z
|
||||
.union([z.string(), z.number()])
|
||||
.optional()
|
||||
.refine(
|
||||
(value) => {
|
||||
if (value === "" || value === undefined) {
|
||||
return true
|
||||
}
|
||||
|
||||
return Number.isInteger(castNumber(value))
|
||||
},
|
||||
{
|
||||
message: i18next.t("validation.mustBeInt"),
|
||||
}
|
||||
)
|
||||
.refine(
|
||||
(value) => {
|
||||
if (value === "" || value === undefined) {
|
||||
return true
|
||||
}
|
||||
|
||||
return castNumber(value) >= 0
|
||||
},
|
||||
{
|
||||
message: i18next.t("validation.mustBePositive"),
|
||||
}
|
||||
)
|
||||
|
||||
/**
|
||||
* Schema for metadata form.
|
||||
*/
|
||||
export const metadataFormSchema = z.array(
|
||||
z.object({
|
||||
key: z.string(),
|
||||
value: z.unknown(),
|
||||
isInitial: z.boolean().optional(),
|
||||
isDeleted: z.boolean().optional(),
|
||||
isIgnored: z.boolean().optional(),
|
||||
})
|
||||
)
|
||||
Reference in New Issue
Block a user