| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- "use strict";
- const Options = require("./options");
- module.exports = 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
- };
- }
|