UNPKG

@fly/cdn

Version:
37 lines 4.88 kB
/** @module Config */ import * as backends from "../backends"; // type FactoryDefinition = [ProxyFactory, (options: any) => boolean]; const factories = new Map([ ["origin", backends.origin], ["github_pages", backends.githubPages], ["heroku", backends.heroku], ["ghost_pro", backends.ghostProBlog], ["glitch", backends.glitch], ["squarespace", backends.squarespace], ["aws_s3", backends.awsS3], ]); function getFactory(type) { const def = factories.get(type); if (!def) { throw new Error(`Unknown backend type '${type}'`); } return def; } export function buildBackend(config) { try { const factory = getFactory(config.type); return factory(config); } catch (err) { console.error("Exception building backend:", err, config); const backendError = async (..._) => new Response(err.toString(), { status: 500 }); return Object.assign(backendError, { proxyConfig: config }); } } export function validateBackend(config) { const factory = getFactory(config.type); if (factory.normalizeOptions) { factory.normalizeOptions(config); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2JhY2tlbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQjtBQUNyQixPQUFPLEtBQUssUUFBUSxNQUFNLGFBQWEsQ0FBQztBQU14Qyx1RUFBdUU7QUFFdkUsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQXVCO0lBQzlDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDcEMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7Q0FDM0IsQ0FBQyxDQUFDO0FBRUgsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLEdBQUcsQ0FBQyxDQUFDO0tBQ25EO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFrQjtJQUM3QyxJQUFHO1FBQ0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN4QjtJQUFBLE9BQU0sR0FBRyxFQUFDO1FBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDekQsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUUsQ0FBQTtRQUMxRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFFLENBQUE7S0FDNUQ7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFrQjtJQUNoRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO1FBQzVCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNsQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBDb25maWcgKi9cbmltcG9ydCAqIGFzIGJhY2tlbmRzIGZyb20gXCIuLi9iYWNrZW5kc1wiO1xuaW1wb3J0IHsgUHJveHlGdW5jdGlvbiwgUHJveHlGYWN0b3J5IH0gZnJvbSBcIi4uL3Byb3h5XCI7XG5pbXBvcnQgeyBJdGVtQ29uZmlnIH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuZXhwb3J0IHR5cGUgQmFja2VuZE1hcCA9IE1hcDxzdHJpbmcsIFByb3h5RmFjdG9yeT47XG5cbi8vIHR5cGUgRmFjdG9yeURlZmluaXRpb24gPSAgW1Byb3h5RmFjdG9yeSwgKG9wdGlvbnM6IGFueSkgPT4gYm9vbGVhbl07XG5cbmNvbnN0IGZhY3RvcmllcyA9IG5ldyBNYXA8c3RyaW5nLCBQcm94eUZhY3Rvcnk+KFtcbiAgW1wib3JpZ2luXCIsIGJhY2tlbmRzLm9yaWdpbl0sXG4gIFtcImdpdGh1Yl9wYWdlc1wiLCBiYWNrZW5kcy5naXRodWJQYWdlc10sXG4gIFtcImhlcm9rdVwiLCBiYWNrZW5kcy5oZXJva3VdLFxuICBbXCJnaG9zdF9wcm9cIiwgYmFja2VuZHMuZ2hvc3RQcm9CbG9nXSxcbiAgW1wiZ2xpdGNoXCIsIGJhY2tlbmRzLmdsaXRjaF0sXG4gIFtcInNxdWFyZXNwYWNlXCIsIGJhY2tlbmRzLnNxdWFyZXNwYWNlXSxcbiAgW1wiYXdzX3MzXCIsIGJhY2tlbmRzLmF3c1MzXSxcbl0pO1xuXG5mdW5jdGlvbiBnZXRGYWN0b3J5KHR5cGU6IHN0cmluZyk6IFByb3h5RmFjdG9yeSB7XG4gIGNvbnN0IGRlZiA9IGZhY3Rvcmllcy5nZXQodHlwZSk7XG4gIGlmICghZGVmKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGJhY2tlbmQgdHlwZSAnJHt0eXBlfSdgKTtcbiAgfVxuICByZXR1cm4gZGVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRCYWNrZW5kKGNvbmZpZzogSXRlbUNvbmZpZyk6IFByb3h5RnVuY3Rpb248YW55PiB7XG4gIHRyeXtcbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0RmFjdG9yeShjb25maWcudHlwZSk7XG4gICAgcmV0dXJuIGZhY3RvcnkoY29uZmlnKTtcbiAgfWNhdGNoKGVycil7XG4gICAgY29uc29sZS5lcnJvcihcIkV4Y2VwdGlvbiBidWlsZGluZyBiYWNrZW5kOlwiLCBlcnIsIGNvbmZpZylcbiAgICBjb25zdCBiYWNrZW5kRXJyb3IgPSBhc3luYyAoLi4uXzogYW55W10pID0+IG5ldyBSZXNwb25zZShlcnIudG9TdHJpbmcoKSwgeyBzdGF0dXM6IDUwMCB9IClcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihiYWNrZW5kRXJyb3IsIHsgcHJveHlDb25maWc6IGNvbmZpZ30gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUJhY2tlbmQoY29uZmlnOiBJdGVtQ29uZmlnKSB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRGYWN0b3J5KGNvbmZpZy50eXBlKTtcbiAgaWYgKGZhY3Rvcnkubm9ybWFsaXplT3B0aW9ucykge1xuICAgIGZhY3Rvcnkubm9ybWFsaXplT3B0aW9ucyhjb25maWcpO1xuICB9XG59XG4iXX0=