UNPKG

@equinor/fusion-framework-cli

Version:

--- title: Fusion Framework CLI ---

49 lines 2.74 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import fetch from 'node-fetch'; /** * Retreive full endpoint URI to env in service-discovery * @param endpoint <string> The endpoint to call in+ uri * @param fusionEnv <FusionEnv> The Fusion env to get uri for * @param service <string> Custom service uri to use insted of Fusion * @param version <string> The version of the api to use * @returns <string> The uri with endpoint */ export const getEndpointUrl = (endpoint_1, fusionEnv_1, service_1, ...args_1) => __awaiter(void 0, [endpoint_1, fusionEnv_1, service_1, ...args_1], void 0, function* (endpoint, fusionEnv, service, version = '1.0') { const { CUSTOM_APPAPI, FUSION_CLI_ENV, FUSION_TOKEN } = process.env; /* use consumer provided api url */ if (service || CUSTOM_APPAPI) { return service !== null && service !== void 0 ? service : CUSTOM_APPAPI; } /* Env has changed get new api url */ if (FUSION_CLI_ENV !== fusionEnv || !process.env.FUSION_CLI_APPAPI) { process.env.FUSION_CLI_ENV = fusionEnv; const requestService = yield fetch(`https://discovery.fusion.equinor.com/service-registry/environments/${fusionEnv}/services/apps`, { headers: { Authorization: `Bearer ${FUSION_TOKEN}`, }, }); if (requestService.status === 401) { throw new Error(`The provided FUSION_TOKEN is not valid. Refresh your token and try again.`); } if (!requestService.ok) { const response = yield requestService.json(); console.error(response); throw new Error(`Failed getEndpointUrl from service-discovery. HTTP status: ${requestService.status} - ${requestService.statusText}`); } const responseService = (yield requestService.json()); process.env.FUSION_CLI_APPAPI = responseService.uri; } const uri = new URL(`${process.env.FUSION_CLI_APPAPI}/${endpoint}`); uri.searchParams.set('api-version', version); /* return fresh/cached endpoint url */ return uri.href; }); //# sourceMappingURL=getEndpointUrl.js.map