UNPKG

@sap/cds-dk

Version:

Command line client and development toolkit for the SAP Cloud Application Programming Model

36 lines (29 loc) 1.25 kB
const cds = require('../../../cds') const { exists, mkdirp, path } = cds.utils const { OPTIONS: { NODEJS, JAVA } } = require('../../constants') const term = require('../../../util/term') const { merge } = require('../../merge') const { renderAndCopy } = require('../../template') module.exports = class NodejsTemplate extends require('../../plugin') { static help() { return 'creates a Node.js-based project' } static hasInProduction() { return !exists('pom.xml') && !cds.cli.options?.add?.has(JAVA) } async canRun() { if (cds.cli.options.add?.has(JAVA)) { throw `only one runtime per project is supported – specify either ${term.bold(JAVA)} or ${term.bold(NODEJS)}` } return true } async run() { const { db, srv, app } = cds.env.folders if (cds.cli.command === 'init' && cds.cli.options.force) { await renderAndCopy(path.join(__dirname, 'files'), cds.root, { projectName: path.basename(cds.root) }) } else { await merge(__dirname, 'files/package.json.hbs').into('package.json', { with: { projectName: path.basename(cds.root) }}) } await Promise.all([db, srv, app].map(p => mkdirp(p))) } }