Initial commit

This commit is contained in:
abrendan
2023-11-30 14:15:19 +00:00
commit e4599df811
5457 changed files with 500139 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
interface PolicyBuilderOptions {
directives: {
[directive: string]: string[] | string | boolean;
};
}
declare const _default: ({ directives }: PolicyBuilderOptions) => string;
export = _default;

View File

@@ -0,0 +1,33 @@
"use strict";
function dashify(str) {
return str
.replace(/([a-z])([A-Z])/g, '$1-$2')
.toLowerCase();
}
module.exports = function (_a) {
var directives = _a.directives;
var keysSeen = {};
return Object.keys(directives).reduce(function (result, originalKey) {
var directive = dashify(originalKey);
if (keysSeen[directive]) {
throw new Error(originalKey + " is specified more than once");
}
keysSeen[directive] = true;
var value = directives[originalKey];
if (Array.isArray(value)) {
value = value.join(' ');
}
else if (value === true) {
value = '';
}
else if (value === false) {
return result;
}
if (value) {
return result.concat(directive + " " + value);
}
else {
return result.concat(directive);
}
}, []).join('; ');
};