ac-koa
Version:
Modules for building Atlassian Connect and HipChat Connect add-ons
21 lines (18 loc) • 663 B
JavaScript
var check = require('check-types');
var verify = check.verify;
var urls = require('url');
exports.isDomainWhitelisted = function (whitelist, url) {
whitelist = whitelist || [];
verify.array(whitelist);
verify.maybe.webUrl(url);
if (whitelist.length === 0 || !url) return false;
var hostname = urls.parse(url).hostname;
if (!hostname) return false;
return whitelist.some(function (glob) {
var re = new RegExp('^' + glob.replace(/\./g, '\\.').replace(/\*/g, '[^.]*') + '$');
return re.test(hostname);
});
};
exports.isGeneratorFunction = function (obj) {
return obj && obj.constructor && obj.constructor.name === 'GeneratorFunction';
};