Refactor routing in App component to enhance navigation and improve error handling by integrating dynamic routes and updating the NotFound route.
This commit is contained in:
72
node_modules/zod-to-json-schema/dist/cjs/parseDef.js
generated
vendored
Normal file
72
node_modules/zod-to-json-schema/dist/cjs/parseDef.js
generated
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseDef = void 0;
|
||||
const Options_js_1 = require("./Options.js");
|
||||
const selectParser_js_1 = require("./selectParser.js");
|
||||
function parseDef(def, refs, forceResolution = false) {
|
||||
const seenItem = refs.seen.get(def);
|
||||
if (refs.override) {
|
||||
const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);
|
||||
if (overrideResult !== Options_js_1.ignoreOverride) {
|
||||
return overrideResult;
|
||||
}
|
||||
}
|
||||
if (seenItem && !forceResolution) {
|
||||
const seenSchema = get$ref(seenItem, refs);
|
||||
if (seenSchema !== undefined) {
|
||||
return seenSchema;
|
||||
}
|
||||
}
|
||||
const newItem = { def, path: refs.currentPath, jsonSchema: undefined };
|
||||
refs.seen.set(def, newItem);
|
||||
const jsonSchemaOrGetter = (0, selectParser_js_1.selectParser)(def, def.typeName, refs);
|
||||
// If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)
|
||||
const jsonSchema = typeof jsonSchemaOrGetter === "function"
|
||||
? parseDef(jsonSchemaOrGetter(), refs)
|
||||
: jsonSchemaOrGetter;
|
||||
if (jsonSchema) {
|
||||
addMeta(def, refs, jsonSchema);
|
||||
}
|
||||
if (refs.postProcess) {
|
||||
const postProcessResult = refs.postProcess(jsonSchema, def, refs);
|
||||
newItem.jsonSchema = jsonSchema;
|
||||
return postProcessResult;
|
||||
}
|
||||
newItem.jsonSchema = jsonSchema;
|
||||
return jsonSchema;
|
||||
}
|
||||
exports.parseDef = parseDef;
|
||||
const get$ref = (item, refs) => {
|
||||
switch (refs.$refStrategy) {
|
||||
case "root":
|
||||
return { $ref: item.path.join("/") };
|
||||
case "relative":
|
||||
return { $ref: getRelativePath(refs.currentPath, item.path) };
|
||||
case "none":
|
||||
case "seen": {
|
||||
if (item.path.length < refs.currentPath.length &&
|
||||
item.path.every((value, index) => refs.currentPath[index] === value)) {
|
||||
console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`);
|
||||
return {};
|
||||
}
|
||||
return refs.$refStrategy === "seen" ? {} : undefined;
|
||||
}
|
||||
}
|
||||
};
|
||||
const getRelativePath = (pathA, pathB) => {
|
||||
let i = 0;
|
||||
for (; i < pathA.length && i < pathB.length; i++) {
|
||||
if (pathA[i] !== pathB[i])
|
||||
break;
|
||||
}
|
||||
return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
|
||||
};
|
||||
const addMeta = (def, refs, jsonSchema) => {
|
||||
if (def.description) {
|
||||
jsonSchema.description = def.description;
|
||||
if (refs.markdownDescription) {
|
||||
jsonSchema.markdownDescription = def.description;
|
||||
}
|
||||
}
|
||||
return jsonSchema;
|
||||
};
|
Reference in New Issue
Block a user