@fly/cdn
Version:
Fly's TypeScript CDN
35 lines • 3.75 kB
JavaScript
/**
* @module Backends
*/
import { proxy } from "../proxy";
import { optionNormalizer } from "./subdomain_service";
const normalizeOptions = optionNormalizer({ hostname: false, subdomain: "appName" });
/**
* Creates a `fetch` like function for proxying requests to Glitch apps.
*
* Example:
* ```typescript
* import { glitch } from "./src/backends";
*
* const backend = glitch({
* appName: "fly-example"
* })
* ```
*
* @param options Glitch app information. Accepts `appName` as a string.
*/
export function glitch(options) {
const config = normalizeOptions(options);
if (config.hostname) {
delete config.hostname;
}
const glitchHost = `${config.subdomain}.glitch.me`;
const uri = `https://${glitchHost}`;
const headers = {
"host": glitchHost
};
const fn = proxy(uri, { headers: headers });
return Object.assign(fn, { proxyConfig: config });
}
glitch.normalizeOptions = normalizeOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhY2tlbmRzL2dsaXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVd6RSxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtBQUVsRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUErQjtJQUNwRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxJQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUM7UUFDakIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFBO0tBQ3ZCO0lBRUQsTUFBTSxVQUFVLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxZQUFZLENBQUE7SUFDbEQsTUFBTSxHQUFHLEdBQUcsV0FBVyxVQUFVLEVBQUUsQ0FBQTtJQUNuQyxNQUFNLE9BQU8sR0FBRztRQUNkLE1BQU0sRUFBRSxVQUFVO0tBQ25CLENBQUE7SUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDM0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUM7QUFFRCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQmFja2VuZHNcbiAqL1xuXG5pbXBvcnQgeyBwcm94eSwgUHJveHlGdW5jdGlvbiB9IGZyb20gXCIuLi9wcm94eVwiO1xuaW1wb3J0IHsgU3ViZG9tYWluT3B0aW9ucywgb3B0aW9uTm9ybWFsaXplciB9IGZyb20gXCIuL3N1YmRvbWFpbl9zZXJ2aWNlXCI7XG4gXG4vKipcbiAqIEdsaXRjaCBjb25maWd1Z3JhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbGl0Y2hPcHRpb25zIHtcbiAgLyoqIEdsaXRjaCBhcHBsaWNhdGlvbiBuYW1lOiA8YXBwTmFtZT4uZ2xpdGNoLm1lICovXG4gIGFwcE5hbWU6IHN0cmluZ1xufVxuXG5cbmNvbnN0IG5vcm1hbGl6ZU9wdGlvbnMgPSBvcHRpb25Ob3JtYWxpemVyKHtob3N0bmFtZTogZmFsc2UsIHN1YmRvbWFpbjogXCJhcHBOYW1lXCJ9KVxuXG4vKipcbiAqIENyZWF0ZXMgYSBgZmV0Y2hgIGxpa2UgZnVuY3Rpb24gZm9yIHByb3h5aW5nIHJlcXVlc3RzIHRvIEdsaXRjaCBhcHBzLlxuICogXG4gKiBFeGFtcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgZ2xpdGNoIH0gZnJvbSBcIi4vc3JjL2JhY2tlbmRzXCI7XG4gKiBcbiAqIGNvbnN0IGJhY2tlbmQgPSBnbGl0Y2goe1xuICogIGFwcE5hbWU6IFwiZmx5LWV4YW1wbGVcIlxuICogfSlcbiAqIGBgYFxuICogXG4gKiBAcGFyYW0gb3B0aW9ucyBHbGl0Y2ggYXBwIGluZm9ybWF0aW9uLiBBY2NlcHRzIGBhcHBOYW1lYCBhcyBhIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdsaXRjaChvcHRpb25zOiBHbGl0Y2hPcHRpb25zIHwgc3RyaW5nKTogUHJveHlGdW5jdGlvbjxTdWJkb21haW5PcHRpb25zPiB7XG4gIGNvbnN0IGNvbmZpZyA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucyk7XG4gIGlmKGNvbmZpZy5ob3N0bmFtZSl7XG4gICAgZGVsZXRlIGNvbmZpZy5ob3N0bmFtZVxuICB9XG5cbiAgY29uc3QgZ2xpdGNoSG9zdCA9IGAke2NvbmZpZy5zdWJkb21haW59LmdsaXRjaC5tZWBcbiAgY29uc3QgdXJpID0gYGh0dHBzOi8vJHtnbGl0Y2hIb3N0fWBcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBcImhvc3RcIjogZ2xpdGNoSG9zdFxuICB9XG5cbiAgY29uc3QgZm4gPSBwcm94eSh1cmksIHsgaGVhZGVyczogaGVhZGVycyB9KVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihmbiwgeyBwcm94eUNvbmZpZzogY29uZmlnfSlcbn1cblxuZ2xpdGNoLm5vcm1hbGl6ZU9wdGlvbnMgPSBub3JtYWxpemVPcHRpb25zO1xuIl19