UNPKG

@bcherny/json-schema-ref-parser

Version:

Parse, Resolve, and Dereference JSON Schema $ref pointers

52 lines (45 loc) 1.09 kB
import Options from "./options.js"; export default normalizeArgs; /** * Normalizes the given arguments, accounting for optional args. * * @param {Arguments} args * @returns {object} */ function normalizeArgs (args) { let path, schema, options, callback; args = Array.prototype.slice.call(args); if (typeof args[args.length - 1] === "function") { // The last parameter is a callback function callback = args.pop(); } if (typeof args[0] === "string") { // The first parameter is the path path = args[0]; if (typeof args[2] === "object") { // The second parameter is the schema, and the third parameter is the options schema = args[1]; options = args[2]; } else { // The second parameter is the options schema = undefined; options = args[1]; } } else { // The first parameter is the schema path = ""; schema = args[0]; options = args[1]; } if (!(options instanceof Options)) { options = new Options(options); } return { path, schema, options, callback }; }