UNPKG

skeet

Version:

Full-stack TypeScript Serverless Framework

62 lines (56 loc) 2.02 kB
import { importConfig } from '@/index' import { API_ENV_PRODUCTION_PATH, API_PATH, getEnvString, getRunUrl, SKEET_CONFIG_PATH, } from '@/lib/getNetworkConfig' import { Logger } from '@/lib/logger' import { SkeetCloudConfig } from '@/types/skeetTypes' import fs from 'fs' import { getWorkerConfig } from '../setup' export const syncRunUrl = async () => { const skeetConfig: SkeetCloudConfig = await importConfig() if (!skeetConfig.api.hasLoadBalancer) await syncApiUrl(skeetConfig) await syncWorkerUrls(skeetConfig) await Logger.success(`successfully updated cloud run urls!`) } export const syncApiUrl = async ( skeetConfig: SkeetCloudConfig, domain: string = '' ) => { skeetConfig.api.cloudRun.url = domain !== '' ? `https://${domain}` : await getRunUrl(skeetConfig.api.projectId, skeetConfig.api.appName) if (domain) { skeetConfig.api.cloudRun.url = `https://${domain}` } else { skeetConfig.api.cloudRun.url = await getRunUrl( skeetConfig.api.projectId, skeetConfig.api.appName ) const addEnvString = `\nSKEET_API_ENDPOINT_URL=${skeetConfig.api.cloudRun.url}` fs.writeFileSync(API_ENV_PRODUCTION_PATH, addEnvString, { flag: 'a' }) } fs.writeFileSync(SKEET_CONFIG_PATH, JSON.stringify(skeetConfig, null, 2)) } export const syncWorkerUrls = async (skeetConfig: SkeetCloudConfig) => { if (skeetConfig.workers && skeetConfig.workers.length !== 0) { for await (const worker of skeetConfig.workers) { worker.cloudRun.url = await getRunUrl( skeetConfig.api.projectId, skeetConfig.api.appName, worker.workerName ) } } fs.writeFileSync(SKEET_CONFIG_PATH, JSON.stringify(skeetConfig, null, 2)) } export const syncWorkerPluginUrl = async (workerName: string) => { const worker = await getWorkerConfig(workerName) const newEnv = await getEnvString(workerName) const addEnvString = `\n${newEnv}=${worker.cloudRun.url}` fs.writeFileSync(API_ENV_PRODUCTION_PATH, addEnvString, { flag: 'a' }) }