flight-path
Version:
Express style router for Fastly Compute@Edge
26 lines (25 loc) • 722 B
JavaScript
export class Fetcher {
constructor(sources) {
this.sources = sources;
}
async fetch() {
let results = {};
await Promise.all(Object.keys(this.sources).map(async (sourceName) => {
results[sourceName] = await this.getSourceData(this.sources[sourceName]);
}));
return results;
}
async getSourceData(source) {
let request = await fetch(source.url, {
backend: source.backend,
method: source.method,
body: source.body,
headers: source.headers,
cacheOverride: source.cache,
});
return {
source: source,
data: await request.text(),
};
}
}