@modyo/cli
Version:
Modyo CLI Command line to expose local development tools
54 lines (53 loc) • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
/* eslint-disable unicorn/no-array-reduce */
/* eslint-disable functional/immutable-data */
const core_1 = require("@oclif/core");
const debug_1 = tslib_1.__importDefault(require("debug"));
const modyo_api_paths_1 = require("../push/modyo-api-paths");
const api_client_1 = tslib_1.__importDefault(require("../utils/api-client"));
const debug = (0, debug_1.default)('preview/get-modyo-site-host.ts');
const debugError = (0, debug_1.default)('error::preview/get-modyo-site-host.ts');
async function fetchSite(url, token) {
const response = await api_client_1.default.get(url, { headers: { Authorization: `Bearer ${token}` } });
if (response.status === 401) {
throw new Error('Unauthorized, please check your Modyo Api Access Token');
}
const { data } = response;
const sites = data.sites.reduce((prev, site) => {
if (site.stages.length > 0) {
return [...prev, ...site.stages];
}
return [...prev, site];
}, []);
return sites;
}
async function getModyoSiteHost(accountUrl, siteId, siteHost, token, version) {
const query = new URLSearchParams();
query.append('paginate', 'false');
if (siteHost && (version === '9' || version === '10')) {
query.append('query', siteHost);
}
const url = new URL(`${accountUrl}/${modyo_api_paths_1.MODYO_API_PATH[version]}/sites`);
url.search = query.toString();
core_1.ux.action.start('Getting Site Id');
try {
debug(`fetching from ${url} with ${token}`);
let sites = await fetchSite(url, token);
if (sites.length === 0) {
sites = await fetchSite(`${url}&status=staging`, token);
}
const site = sites.find(({ host, id }) => host === siteHost || id === Number(siteId));
if (!site) {
throw new Error('Check whether the site host or the page status (e.g. Development - Published)');
}
core_1.ux.action.stop(`${site.host}`);
return site.host;
}
catch (error) {
debugError(error);
throw error;
}
}
exports.default = getModyoSiteHost;