@sap/cds-dk
Version:
Command line client and development toolkit for the SAP Cloud Application Programming Model
34 lines (26 loc) • 1.16 kB
JavaScript
module.exports = Object.assign ( run, { help: `
*cds eval* <code snippet>
*cds -e* <code snippet>
Evaluates and executes the given JavaScript code snippet. The snippet can
refer to the already loaded *cds* variable. If it starts with a '.', 'cds'
is automatically prepended, like shown in the following examples.
The -e variant is just a reminiscence to node.
cds -e "console.log('foo')"
cds -e "cds.compile('my-model').to.json()"
cds -e ".compile('my-model').to.json()"
cds -e ".compile('entity Book {key ID: UUID;}').to.sql()"
`})
// support the like of cds -e "<...>" as in node.js --> pretty helpful for quick test setups
function run ([code]) {
if (!code) return console.error (`Please specify the code to execute, like\n\n cds -e "cds.compile('my-model').to.json()"\n`)
// eslint-disable-next-line no-unused-vars
const cds = require('../lib/cds')
if (code[0] === '.') code = 'cds' + code
const outcome = eval(code)
console.log (outcome)
}
process.on('uncaughtException', console.error)
process.on('unhandledRejection', console.error)
/* eslint no-console:0 no-eval: 0 */