@equinor/fusion-framework-cli
Version:
--- title: Fusion Framework CLI ---
49 lines • 2.74 kB
JavaScript
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