@fly/edge
Version:
Fly's TypeScript Edge
31 lines • 3.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateMiddleware = exports.buildMiddleware = void 0;
const middleware = require("../middleware");
const factories = new Map([
["https-upgrader", [middleware.httpsUpgrader]],
["response-headers", [middleware.responseHeaders]],
["inject-html", [middleware.injectHTML]],
["http-cache", [middleware.httpCache]],
["auto-webp", [middleware.autoWebp]]
]);
function getFactory(type) {
const def = factories.get(type);
if (!def) {
throw new Error(`Unknown middleware type '${type}'`);
}
return def;
}
function buildMiddleware(fetch, config) {
const [factory, validator] = getFactory(config.type);
return factory(fetch, config);
}
exports.buildMiddleware = buildMiddleware;
function validateMiddleware(config) {
const [factory, validator] = getFactory(config.type);
if (validator) {
validator(config);
}
}
exports.validateMiddleware = validateMiddleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw0Q0FBNEM7QUFLNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQTRCO0lBQ25ELENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRCxDQUFDLGFBQWEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFFSCxTQUFTLFVBQVUsQ0FBQyxJQUFZO0lBQzlCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLElBQUksR0FBRyxDQUFDLENBQUM7S0FDdEQ7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBb0IsRUFBRSxNQUFrQjtJQUN0RSxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFIRCwwQ0FHQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE1BQWtCO0lBQ25ELE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLFNBQVMsRUFBRTtRQUNiLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNuQjtBQUNILENBQUM7QUFMRCxnREFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIENvbmZpZyAqL1xuaW1wb3J0IHsgRmV0Y2hGYWN0b3J5LCBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIi4uL2ZldGNoXCI7XG5pbXBvcnQgKiBhcyBtaWRkbGV3YXJlIGZyb20gXCIuLi9taWRkbGV3YXJlXCI7XG5pbXBvcnQgeyBJdGVtQ29uZmlnIH0gZnJvbSBcIi4vaW5kZXhcIjtcblxudHlwZSBGYWN0b3J5RGVmaW5pdGlvbiA9IFtGZXRjaEZhY3RvcnksICgob3B0aW9uczogYW55KSA9PiBib29sZWFuKT9dO1xuXG5jb25zdCBmYWN0b3JpZXMgPSBuZXcgTWFwPHN0cmluZywgRmFjdG9yeURlZmluaXRpb24+KFtcbiAgW1wiaHR0cHMtdXBncmFkZXJcIiwgW21pZGRsZXdhcmUuaHR0cHNVcGdyYWRlcl1dLFxuICBbXCJyZXNwb25zZS1oZWFkZXJzXCIsIFttaWRkbGV3YXJlLnJlc3BvbnNlSGVhZGVyc11dLFxuICBbXCJpbmplY3QtaHRtbFwiLCBbbWlkZGxld2FyZS5pbmplY3RIVE1MXV0sXG4gIFtcImh0dHAtY2FjaGVcIiwgW21pZGRsZXdhcmUuaHR0cENhY2hlXV0sXG4gIFtcImF1dG8td2VicFwiLCBbbWlkZGxld2FyZS5hdXRvV2VicF1dXG5dKTtcblxuZnVuY3Rpb24gZ2V0RmFjdG9yeSh0eXBlOiBzdHJpbmcpOiBGYWN0b3J5RGVmaW5pdGlvbiB7XG4gIGNvbnN0IGRlZiA9IGZhY3Rvcmllcy5nZXQodHlwZSk7XG4gIGlmICghZGVmKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG1pZGRsZXdhcmUgdHlwZSAnJHt0eXBlfSdgKTtcbiAgfVxuICByZXR1cm4gZGVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRNaWRkbGV3YXJlKGZldGNoOiBGZXRjaEZ1bmN0aW9uLCBjb25maWc6IEl0ZW1Db25maWcpOiBGZXRjaEZ1bmN0aW9uIHtcbiAgY29uc3QgW2ZhY3RvcnksIHZhbGlkYXRvcl0gPSBnZXRGYWN0b3J5KGNvbmZpZy50eXBlKTtcbiAgcmV0dXJuIGZhY3RvcnkoZmV0Y2gsIGNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1pZGRsZXdhcmUoY29uZmlnOiBJdGVtQ29uZmlnKSB7XG4gIGNvbnN0IFtmYWN0b3J5LCB2YWxpZGF0b3JdID0gZ2V0RmFjdG9yeShjb25maWcudHlwZSk7XG4gIGlmICh2YWxpZGF0b3IpIHtcbiAgICB2YWxpZGF0b3IoY29uZmlnKTtcbiAgfVxufVxuIl19