UNPKG

@fly/cdn

Version:
32 lines 3.63 kB
/** * @module Backends */ import { proxy } from "../proxy"; import { normalizeOptions } from "./subdomain_service"; /** * Creates a `fetch` like function for proxying requests to hosted Squarespace. * * Example: * ```typescript * import { squarespace } from "./src/backends"; * const backend = squarespace({ * subdomain: "archmotorcycle", * directory: "/", * hostname: "www.archmotorcycle.com" * }); * ``` * @param options SquareSpace information. Accepts subdomain as a string. */ export function squarespace(options) { const config = normalizeOptions(options); const squarespaceHost = `${config.subdomain}.squarespace.com`; const uri = `https://${squarespaceHost}${config.directory}`; const headers = { "host": squarespaceHost, "x-forwarded-host": config.hostname || false }; const fn = proxy(uri, { headers: headers, rewriteLocationHeaders: true }); return Object.assign(fn, { proxyConfig: config }); } squarespace.normalizeOptions = normalizeOptions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3F1YXJlc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFja2VuZHMvc3F1YXJlc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFpQixNQUFNLFVBQVUsQ0FBQztBQUNoRCxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBa0M7SUFDNUQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsTUFBTSxlQUFlLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQTtJQUM3RCxNQUFNLEdBQUcsR0FBRyxXQUFXLGVBQWUsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDM0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsZUFBZTtRQUN2QixrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7S0FDN0MsQ0FBQTtJQUVELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDekUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUM7QUFFRCxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQmFja2VuZHNcbiAqL1xuXG5pbXBvcnQgeyBwcm94eSwgUHJveHlGdW5jdGlvbiB9IGZyb20gXCIuLi9wcm94eVwiO1xuaW1wb3J0IHsgU3ViZG9tYWluT3B0aW9ucywgbm9ybWFsaXplT3B0aW9ucyB9IGZyb20gXCIuL3N1YmRvbWFpbl9zZXJ2aWNlXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBmZXRjaGAgbGlrZSBmdW5jdGlvbiBmb3IgcHJveHlpbmcgcmVxdWVzdHMgdG8gaG9zdGVkIFNxdWFyZXNwYWNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBzcXVhcmVzcGFjZSB9IGZyb20gXCIuL3NyYy9iYWNrZW5kc1wiO1xuICogY29uc3QgYmFja2VuZCA9IHNxdWFyZXNwYWNlKHtcbiAqICBzdWJkb21haW46IFwiYXJjaG1vdG9yY3ljbGVcIiwgXG4gKiAgZGlyZWN0b3J5OiBcIi9cIixcbiAqICBob3N0bmFtZTogXCJ3d3cuYXJjaG1vdG9yY3ljbGUuY29tXCJcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyBTcXVhcmVTcGFjZSBpbmZvcm1hdGlvbi4gQWNjZXB0cyBzdWJkb21haW4gYXMgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcXVhcmVzcGFjZShvcHRpb25zOiBTdWJkb21haW5PcHRpb25zIHwgc3RyaW5nKTogUHJveHlGdW5jdGlvbjxTdWJkb21haW5PcHRpb25zPiB7XG4gIGNvbnN0IGNvbmZpZyA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgY29uc3Qgc3F1YXJlc3BhY2VIb3N0ID0gYCR7Y29uZmlnLnN1YmRvbWFpbn0uc3F1YXJlc3BhY2UuY29tYFxuICBjb25zdCB1cmkgPSBgaHR0cHM6Ly8ke3NxdWFyZXNwYWNlSG9zdH0ke2NvbmZpZy5kaXJlY3Rvcnl9YFxuICBjb25zdCBoZWFkZXJzID0ge1xuICAgIFwiaG9zdFwiOiBzcXVhcmVzcGFjZUhvc3QsXG4gICAgXCJ4LWZvcndhcmRlZC1ob3N0XCI6IGNvbmZpZy5ob3N0bmFtZSB8fCBmYWxzZVxuICB9XG5cbiAgY29uc3QgZm4gPSBwcm94eSh1cmksIHsgaGVhZGVyczogaGVhZGVycywgcmV3cml0ZUxvY2F0aW9uSGVhZGVyczogdHJ1ZSB9KVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihmbiwgeyBwcm94eUNvbmZpZzogY29uZmlnfSlcbn1cblxuc3F1YXJlc3BhY2Uubm9ybWFsaXplT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGlvbnM7XG4iXX0=