@fanoutio/grip
Version:
GRIP Interface Library
25 lines (24 loc) • 935 B
JavaScript
import { PUBLIC_KEY_FASTLY_FANOUT_JWK } from './keys.js';
import { parseGripUri } from '../utilities/grip.js';
export function buildFanoutGripConfig(params) {
const gripUrl = buildFanoutGripUrl(params);
return parseGripUri(gripUrl);
}
export function buildFanoutGripUrl(params) {
const { serviceId, apiToken, baseUrl, verifyIss, verifyKey, } = params;
const url = new URL(baseUrl ?? `https://api.fastly.com/service/${serviceId}`);
url.searchParams.set('key', apiToken);
url.searchParams.set('verify-iss', verifyIss ?? `fastly:${serviceId}`);
let verifyKeyValue;
if (typeof verifyKey === 'string') {
verifyKeyValue = verifyKey;
}
else if (verifyKey != null) {
verifyKeyValue = JSON.stringify(verifyKey);
}
else {
verifyKeyValue = JSON.stringify(PUBLIC_KEY_FASTLY_FANOUT_JWK);
}
url.searchParams.set('verify-key', verifyKeyValue);
return String(url);
}