Compare commits

...

7 Commits

Author SHA1 Message Date
Lothar Bender
9a6f4b71b3 adopt latest custom build task changes
- single BuildTaskHandler instead of BuildTaskProvider/BuildTaskHandler
  approach
- static build task handler config moved to meta
- default build task properties are now returned as name/value pairs
  using property config
- runWith to declare dependencies across build task handlers, ensuring
  correct dependency graph
- optional getTasks method to implement build task specific constraints
2021-12-09 13:04:08 +01:00
Lothar Bender
c796bda9ad Merge branch 'main' into add/customBuildTask 2021-12-06 10:10:14 +01:00
Lothar Bender
8852c91406 rename applyTaskDefaults 2021-11-24 18:30:30 +01:00
Lothar Bender
a7ab8b3bda optional plugin.activate() method 2021-11-24 17:59:43 +01:00
Lothar Bender
b2b4907b4a Merge branch 'main' into add/customBuildTask 2021-11-24 11:51:03 +01:00
Lothar Bender
69126b94af lookupTasks becomes optional
- change output dir
2021-11-24 11:47:52 +01:00
Lothar Bender
8b0f6010a5 add custom build task contribution sample 2021-11-23 23:11:32 +01:00
4 changed files with 44 additions and 2 deletions

View File

@@ -8,6 +8,9 @@
"express": "^4.17.1",
"passport": "0.4.1"
},
"devDependencies": {
"@cds/cds-plugin-openapi": "*"
},
"scripts": {
"genres": "cds serve test/genres.cds",
"start": "cds run",

View File

@@ -0,0 +1,29 @@
/* eslint-disable require-await */
const cds = require('@sap/cds'), { BuildTaskHandler } = cds.build
const cdsdk = require('@sap/cds-dk')
cds.build.register(class OpenApiHandler extends BuildTaskHandler {
static get meta() {
return {
id: 'openapi',
runWith: ['node-cf', 'java-cf'],
config: { src: cds.env.folders.srv.replace(/\/$/, '') }
}
}
async clean() {
return this.remove('openapi-docs')
}
async build() {
const model = await this.model()
const { options } = this.task
// generate openapi files for all services
await Promise.all(cds.linked(model).services.map(service => {
const openApi = cdsdk.compile.to.openapi(model, {
service: service.name,
'openapi:diagram': String(options.diagram) === 'true'
})
this.write(openApi).to(`openapi-docs/${service.name}.openapi3.json`)
}))
}
})

View File

@@ -0,0 +1,9 @@
{
"name": "@sap/cds-plugin-openapi",
"version": "1.0.0",
"description": "OpenAPI service specification build plugin",
"main": "index.js",
"dependencies": {
"@sap/cds-dk": "^4"
}
}

View File

@@ -13,13 +13,14 @@
"@capire/media": "./media",
"@capire/orders": "./orders",
"@capire/reviews": "./reviews",
"@sap/cds": "^5.5.3"
"@sap/cds": "git+https://github.tools.sap/cap/cds#add/customBuildTaskProviders"
},
"devDependencies": {
"chai": "^4.3.4",
"chai-as-promised": "^7.1.1",
"chai-subset": "^1.6.0",
"sqlite3": "^5"
"sqlite3": "^5",
"@cds/cds-plugin-openapi": "./cds-plugin-openapi"
},
"scripts": {
"cleanup": "rm -rf node_modules && rm -rf */node_modules && rm -rf */*/node_modules",