UNPKG

@modyo/cli

Version:

Modyo CLI Command line to expose local development tools

54 lines (53 loc) 2.2 kB
"use strict"; 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;