UNPKG

@arc-fusion/cli

Version:

CLI for running Arc Fusion on your local machine

81 lines (68 loc) 2.04 kB
#!/usr/bin/env node 'use strict' const { generate, build, down } = require('../utils/docker') const { logMessage, MESSAGES, TYPE_MESSAGE } = require('../utils/logMessage') const { createDockerVolume } = require('../utils/local') const { CACHE_VOLUME_NAME, PROJECT_ROOT } = require('../environment') const spawn = require('../utils/spawn') const path = require('path') const { COMPILING_STYLES } = MESSAGES const { INFO } = TYPE_MESSAGE async function compileStyles (options = {}) { try { logMessage(INFO, COMPILING_STYLES) await generate(undefined, options) await createDockerVolume(CACHE_VOLUME_NAME) await build(undefined, options) const { compose } = options const command = compose === 'v2' ? 'docker' : 'docker-compose' const startArgs = [ '-f', path.join(PROJECT_ROOT, '.fusion', 'docker-compose.yml'), 'up', '-d', 'webpack' ] await spawn( command, compose === 'v2' ? ['compose'].concat(...startArgs) : startArgs, { cwd: PROJECT_ROOT, env: { ...process.env, COMPOSE_PROJECT_NAME: 'fusion' }, stdio: 'inherit' } ) await new Promise(resolve => setTimeout(resolve, 15000)) const runThemesArgs = [ '-f', path.join(PROJECT_ROOT, '.fusion', 'docker-compose.yml'), 'run', '--rm', 'themes', 'node', 'index.js', 'generate' ] await spawn( command, compose === 'v2' ? ['compose'].concat(...runThemesArgs) : runThemesArgs, { cwd: PROJECT_ROOT, env: { ...process.env, COMPOSE_PROJECT_NAME: 'fusion', NODE_OPTIONS: '--max-old-space-size=4096', UV_THREADPOOL_SIZE: '64', NODE_ENV: 'production' }, stdio: 'inherit' } ) } catch (error) { console.error('Error compiling styles:', error) throw error } finally { console.log('Cleaning up containers...') await down(undefined, options) } } module.exports = compileStyles