@fly/cdn
Version:
Fly's TypeScript CDN
25 lines • 3.52 kB
JavaScript
import * as middleware from "../middleware";
const factories = new Map([
["https-upgrader", [middleware.httpsUpgrader]],
["response-headers", [middleware.responseHeaders]],
["inject-html", [middleware.injectHTML]],
["http-cache", [middleware.httpCache]]
]);
function getFactory(type) {
const def = factories.get(type);
if (!def) {
throw new Error(`Unknown middleware type '${type}'`);
}
return def;
}
export function buildMiddleware(fetch, config) {
const [factory, validator] = getFactory(config.type);
return factory(fetch, config);
}
export function validateMiddleware(config) {
const [factory, validator] = getFactory(config.type);
if (validator) {
validator(config);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBNEI7SUFDbkQsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsYUFBYSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQ3ZDLENBQUMsQ0FBQztBQUVILFNBQVMsVUFBVSxDQUFDLElBQVk7SUFDOUIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsSUFBSSxHQUFHLENBQUMsQ0FBQztLQUN0RDtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBb0IsRUFBRSxNQUFrQjtJQUN0RSxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBa0I7SUFDbkQsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksU0FBUyxFQUFFO1FBQ2IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ25CO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIENvbmZpZyAqL1xuaW1wb3J0IHsgRmV0Y2hGYWN0b3J5LCBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIi4uL2ZldGNoXCI7XG5pbXBvcnQgKiBhcyBtaWRkbGV3YXJlIGZyb20gXCIuLi9taWRkbGV3YXJlXCI7XG5pbXBvcnQgeyBJdGVtQ29uZmlnIH0gZnJvbSBcIi4vaW5kZXhcIjtcblxudHlwZSBGYWN0b3J5RGVmaW5pdGlvbiA9IFtGZXRjaEZhY3RvcnksICgob3B0aW9uczogYW55KSA9PiBib29sZWFuKT9dO1xuXG5jb25zdCBmYWN0b3JpZXMgPSBuZXcgTWFwPHN0cmluZywgRmFjdG9yeURlZmluaXRpb24+KFtcbiAgW1wiaHR0cHMtdXBncmFkZXJcIiwgW21pZGRsZXdhcmUuaHR0cHNVcGdyYWRlcl1dLFxuICBbXCJyZXNwb25zZS1oZWFkZXJzXCIsIFttaWRkbGV3YXJlLnJlc3BvbnNlSGVhZGVyc11dLFxuICBbXCJpbmplY3QtaHRtbFwiLCBbbWlkZGxld2FyZS5pbmplY3RIVE1MXV0sXG4gIFtcImh0dHAtY2FjaGVcIiwgW21pZGRsZXdhcmUuaHR0cENhY2hlXV1cbl0pO1xuXG5mdW5jdGlvbiBnZXRGYWN0b3J5KHR5cGU6IHN0cmluZyk6IEZhY3RvcnlEZWZpbml0aW9uIHtcbiAgY29uc3QgZGVmID0gZmFjdG9yaWVzLmdldCh0eXBlKTtcbiAgaWYgKCFkZWYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gbWlkZGxld2FyZSB0eXBlICcke3R5cGV9J2ApO1xuICB9XG4gIHJldHVybiBkZWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1pZGRsZXdhcmUoZmV0Y2g6IEZldGNoRnVuY3Rpb24sIGNvbmZpZzogSXRlbUNvbmZpZyk6IEZldGNoRnVuY3Rpb24ge1xuICBjb25zdCBbZmFjdG9yeSwgdmFsaWRhdG9yXSA9IGdldEZhY3RvcnkoY29uZmlnLnR5cGUpO1xuICByZXR1cm4gZmFjdG9yeShmZXRjaCwgY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTWlkZGxld2FyZShjb25maWc6IEl0ZW1Db25maWcpIHtcbiAgY29uc3QgW2ZhY3RvcnksIHZhbGlkYXRvcl0gPSBnZXRGYWN0b3J5KGNvbmZpZy50eXBlKTtcbiAgaWYgKHZhbGlkYXRvcikge1xuICAgIHZhbGlkYXRvcihjb25maWcpO1xuICB9XG59XG4iXX0=