-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
41 lines (34 loc) · 1.32 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var fs = require('fs');
var gulp = require('gulp');
var gutil = require('gulp-util');
var taskListing = require('gulp-task-listing');
var tsGen = require('./tools/entityGenerator/tsgen-core');
// Public tasks
gulp.task('default', ['help']);
gulp.task('help', taskListing.withFilters(function (taskName) {
var isSubTask = taskName.substr(0, 1) == "_";
return isSubTask;
}, function (taskName) {
var shouldRemove = taskName === 'default';
return shouldRemove;
}));
gulp.task('generate-entities', function () {
// make sure outputFolder exists first!
// create and add 'EntityBase' to this output folder
var outputFolder = './app/entities/';
var metadataFilename = outputFolder + 'northwind.bz.metadata.json';
var outputTsFilename = outputFolder + 'northwind.bz.metadata.ts';
// create a TS version of metadata for importing
var metadata = fs.readFileSync(metadataFilename, 'utf8');
var before = '/* tslint:disable:quotemark *' + '/\nconst metadata = ';
var after = ';\nexport const METADATA = JSON.stringify(metadata);\n';
var ts = before + metadata + after;
fs.writeFileSync(outputTsFilename, ts, 'utf8');
// generate TS entity model classes for this metadata
tsGen.generate({
inputFileName: metadataFilename,
outputFolder: outputFolder,
camelCase: true,
baseClassName: 'EntityBase'
});
});