UNPKG

fin

Version:

Developer CLI for Fin. Fin is the easiest way to launch your own SaaS.

43 lines (33 loc) 1.05 kB
'use strict' const fts = require('fts') const path = require('path') const pMap = require('p-map') const { validators } = require('fin-utils') const parseConfig = require('./parse-config') module.exports = async (program, opts = { }) => { const config = parseConfig(program) const services = await pMap(config.services, async (service) => { return module.exports.generateDefinition(service, config, opts) }, { concurrency: 1 }) return { ...config, services } } module.exports.generateDefinition = async (service, config, opts) => { const src = path.resolve(config.root, service.src) console.log(`parsing service ${path.relative(process.cwd(), src)}`) const definition = await fts.generateDefinition(src, opts) if (!service.name) { service.name = definition.title if (!validators.service(service.name)) { throw new Error(`Invalid service name [${service.name}] (must be a valid JavaScript function identifier ${validators.serviceRe})`) } } return { ...service, definition } }