lookupTasks becomes optional
- change output dir
This commit is contained in:
@@ -3,7 +3,6 @@ const path = require("path")
|
|||||||
const fs = require("fs")
|
const fs = require("fs")
|
||||||
const cds = require('@sap/cds'), { BuildTaskProvider, BuildTaskHandler } = cds.build
|
const cds = require('@sap/cds'), { BuildTaskProvider, BuildTaskHandler } = cds.build
|
||||||
const cdsdk = require('@sap/cds-dk')
|
const cdsdk = require('@sap/cds-dk')
|
||||||
const { path4 } = cds.serve
|
|
||||||
const logger = cds.log("build")
|
const logger = cds.log("build")
|
||||||
|
|
||||||
module.exports.activate = () => {
|
module.exports.activate = () => {
|
||||||
@@ -18,15 +17,10 @@ module.exports.activate = () => {
|
|||||||
applyTaskDefaults(task) {
|
applyTaskDefaults(task) {
|
||||||
task.src = task.src || cds.env.folders.srv.replace(/\/$/, '')
|
task.src = task.src || cds.env.folders.srv.replace(/\/$/, '')
|
||||||
}
|
}
|
||||||
async lookupTasks() {
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
return [{ for: this.id }]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
get handler() {
|
get handler() {
|
||||||
return class extends BuildTaskHandler {
|
return class extends BuildTaskHandler {
|
||||||
async clean() {
|
async clean() {
|
||||||
fs.rm(path.join(this.task.dest, "gen/docs"), { recursive: true, force: true }, (err) => logger.error(err))
|
fs.rm(path.join(this.task.dest, "openapi-docs"), { recursive: true, force: true }, (err) => err ? logger.error(err) : '')
|
||||||
}
|
}
|
||||||
|
|
||||||
async build() {
|
async build() {
|
||||||
@@ -37,15 +31,23 @@ module.exports.activate = () => {
|
|||||||
await Promise.all(cds.linked(model).services.map(service => {
|
await Promise.all(cds.linked(model).services.map(service => {
|
||||||
const openApi = cdsdk.compile.to.openapi(model, {
|
const openApi = cdsdk.compile.to.openapi(model, {
|
||||||
service: service.name,
|
service: service.name,
|
||||||
'openapi:url': path4(service).replace(/\.[^.]+$/, ''),
|
'openapi:diagram': String(options.diagram) === 'true'
|
||||||
'openapi:diagram': options.diagram
|
|
||||||
})
|
})
|
||||||
|
this.write(openApi).to(`openapi-docs/${service.name}.openapi3.json`)
|
||||||
this.write(openApi).to(`gen/docs/${service.name}.openapi3.json`)
|
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Additional constraints can be defined, e.g. generate openapi service specification in production builds only.
|
||||||
|
* > cds build --production
|
||||||
|
* > cds build --for node-cf --production
|
||||||
|
*/
|
||||||
|
// async lookupTasks() {
|
||||||
|
// if (process.env.NODE_ENV === 'production') {
|
||||||
|
// return [{ for: this.id }]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
})()
|
})()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user