29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
var config_1 = __importDefault(require("../../config"));
|
|
var is_function_1 = __importDefault(require("../../is-function"));
|
|
module.exports = function sandboxCheck(key, value) {
|
|
if (value === false) {
|
|
return;
|
|
}
|
|
if (value === true) {
|
|
return;
|
|
}
|
|
if (!Array.isArray(value)) {
|
|
throw new Error("\"" + value + "\" is not a valid value for " + key + ". Use an array of strings or `true`.");
|
|
}
|
|
if (value.length === 0) {
|
|
throw new Error(key + " must have at least one value. To block everything, set " + key + " to `true`.");
|
|
}
|
|
value.forEach(function (expression) {
|
|
if (is_function_1.default(expression)) {
|
|
return;
|
|
}
|
|
if (config_1.default.sandboxDirectives.indexOf(expression) === -1) {
|
|
throw new Error("\"" + expression + "\" is not a valid " + key + " directive. Remove it.");
|
|
}
|
|
});
|
|
};
|