sveltekit-superforms
Version:
Making SvelteKit forms a pleasure to use!
42 lines (41 loc) • 1.28 kB
JavaScript
import { createAdapter, createJsonSchema } from './adapters.js';
import { memoize } from '../memoize.js';
async function modules() {
const { type } = await import(/* webpackIgnore: true */ 'arktype');
return { type };
}
const fetchModule = /* @__PURE__ */ memoize(modules);
async function _validate(schema, data) {
const { type } = await fetchModule();
const result = schema(data);
if (!(result instanceof type.errors)) {
return {
data: result,
success: true
};
}
const issues = [];
for (const error of result) {
issues.push({ message: error.problem, path: Array.from(error.path) });
}
return {
issues,
success: false
};
}
function _arktype(schema, options) {
return createAdapter({
superFormValidationLibrary: 'arktype',
defaults: options.defaults,
jsonSchema: createJsonSchema(options),
validate: async (data) => _validate(schema, data)
});
}
function _arktypeClient(schema) {
return {
superFormValidationLibrary: 'arktype',
validate: async (data) => _validate(schema, data)
};
}
export const arktype = /* @__PURE__ */ memoize(_arktype);
export const arktypeClient = /* @__PURE__ */ memoize(_arktypeClient);