UNPKG

@shopify/cli-kit

Version:

A set of utilities, interfaces, and models that are common across all the platform features

38 lines 1.39 kB
import fs from 'fs'; import * as os from 'node:os'; import { assertConnectable } from './network/index.js'; import { assertCompatibleEnvironment } from './env.js'; export function createServer(projectName) { return { host: (options = {}) => host(projectName, options), url: (options = {}) => url(projectName, options), }; } function host(projectName, options = {}) { assertCompatibleEnvironment(); (assertRunningOverride || assertRunning2016)(projectName); const prefix = options.nonstandardHostPrefix || projectName; return `${prefix}.myshopify.io`; } function url(projectName, options = {}) { return `https://${host(projectName, options)}`; } function assertRunning2016(projectName) { const [addr, port] = getAddrPort(projectName); assertConnectable({ projectName, addr, port }); } function getAddrPort(name) { try { const portContent = fs.readFileSync(`${os.homedir()}/.local/run/services/${name}/server/port`, 'utf-8'); return ['localhost', parseInt(portContent, 10)]; } catch (error) { throw new Error(`DevServer for '${name}' is not running: \`dev up ${name}\` to start it.`); } } // Allow overrides for more concise test setup. Meh. let assertRunningOverride; export function setAssertRunning(override) { assertRunningOverride = override; } //# sourceMappingURL=dev-server-2016.js.map