"use strict"; const { validateOptions } = require("@validatem/core"); const wrapValueAsOption = require("./"); const isFunction = require("@validatem/is-function"); const isString = require("@validatem/is-string"); const required = require("@validatem/required"); function someFunction(_optionsOrHandler) { let optionsOrHandler = validateOptions(arguments, [ wrapValueAsOption("handler"), { handler: [ required, isFunction ], label: [ isString ] } ]); console.log(optionsOrHandler); } someFunction({ handler: function () { /* function body goes here */ }, label: "Hello world!" }); // { handler: [Function: handler], label: 'Hello world!' } someFunction(() => { /* function body goes here */ }); // { handler: [Function] } someFunction(); // undefined