timeoutLog.js:
var apiCheckFactory = require('api-check'); var myCheck = apiCheckFactory(); module.exports = timeoutLog; var api = [ myCheck.number, myCheck.shape({ name: myCheck.string }), myCheck.func.optional ]; function timeoutLog(time, person, callback) { myCheck.throw(api, arguments); setTimeout(function() { console.log('Time is up for ' + person.name + '!'); callback && callback(person); }, time); }
index.js:
// just giving me some space... console.log(' ------ '); var timeoutLog = require('./timeoutLog'); var person = { name: 'Jane' }; timeoutLog(300, {name: 'Joe'}, function(thePerson) { console.log( 'Person is the same? ' + (person === thePerson) ); });
Error message something like:
Error: apiCheck failed! `Argument 1` passed, `value` at `Argument 2` must be `String` You passed: [ "wHY+jgNSE0HaoLsMgqkF4uGBX33bf6orJcLVGD0MdFx+tPoPnoJ9EreqOxuUixXoEOI2nGwJb8sXFAyrnXSjMpD98OVj0wg2menNJ65LzEtw3YYBsBZ4yzRtI6PD13zUy+R3S7WIhcWI30V+jZShvP5J2rm4=", true ] With the types: [ "string", "boolean" ] The API calls for: [ "String", "String" ]