@plexus-interop/cli
Version:
Plexus Interop CLI tools
93 lines • 8.29 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/**
* Copyright 2017-2018 Plexus Interop Deutsche Bank AG
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the 'License');
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an 'AS IS' BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var DefaultOptions_1 = require("./DefaultOptions");
var java_1 = require("../common/java");
var BaseCommand_1 = require("./BaseCommand");
var process_1 = require("../common/process");
var protoJs_1 = require("../common/protoJs");
var path = require("path");
var files_1 = require("../common/files");
var GenProtoCommand_1 = require("./GenProtoCommand");
var GenTsCommand = /** @class */ (function (_super) {
tslib_1.__extends(GenTsCommand, _super);
function GenTsCommand() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.protoRegexp = /.+\.proto$/;
_this.descriptorPathRegexp = /.*google[\/\\]+protobuf[\/\\]+descriptor.proto|.*interop[\/\\]+options.proto$/;
_this.clientGenArgs = function (opts) {
return ['--type=ts'].concat(_this.optionArgs(opts));
};
_this.name = function () { return 'gen-ts'; };
_this.generalDescription = function () { return 'generate Typescript client and messages definitions for specified entry point'; };
_this.options = function () { return [DefaultOptions_1.baseDir(), DefaultOptions_1.out(), DefaultOptions_1.plexusEntryPoint(), DefaultOptions_1.namespace(), DefaultOptions_1.verbose(), DefaultOptions_1.excludePattern()]; };
return _this;
}
GenTsCommand.prototype.action = function (opts) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var protoFilesDir, protoGenCommand, excludePatternString, jsFilePath, protoFiles, tsFileName, javaExecPath, javaLibPath;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
this.log('Generating proto definitions');
protoFilesDir = path.join(opts.out, 'tmp');
files_1.mkdirsSync(protoFilesDir);
protoGenCommand = new GenProtoCommand_1.GenProtoCommand();
return [4 /*yield*/, protoGenCommand.action(tslib_1.__assign({}, opts, { out: protoFilesDir }))];
case 1:
_a.sent();
excludePatternString = opts.excludePattern;
this.log('Generating proto messages JS definitions');
jsFilePath = path.join(opts.out, 'plexus-messages.js');
return [4 /*yield*/, files_1.listFiles(protoFilesDir, this.protoRegexp)];
case 2:
protoFiles = (_a.sent())
.filter(function (f) { return !_this.isProtoDescriptorPath(f); })
.filter(function (f) { return !excludePatternString || excludePatternString.length === 0 || !new RegExp(excludePatternString).test(f); });
return [4 /*yield*/, protoJs_1.genJsStaticModule(jsFilePath, protoFiles, opts.namespace)];
case 3:
_a.sent();
this.log('Deleting proto definitions');
files_1.removeSync(protoFilesDir);
this.log('Generating proto messages TS definitions');
tsFileName = 'plexus-messages.d.ts';
return [4 /*yield*/, protoJs_1.genTsStaticModule(path.join(opts.out, tsFileName), jsFilePath)];
case 4:
_a.sent();
this.log('Generating interop client');
return [4 /*yield*/, java_1.getJavaExecPath()];
case 5:
javaExecPath = _a.sent();
javaLibPath = java_1.getJavaGenLibPath();
return [4 /*yield*/, process_1.simpleSpawn(javaExecPath, ['-jar', javaLibPath].concat(this.clientGenArgs(opts)), opts.verbose === 'true')];
case 6:
_a.sent();
return [2 /*return*/];
}
});
});
};
GenTsCommand.prototype.isProtoDescriptorPath = function (path) {
return this.descriptorPathRegexp.test(path);
};
return GenTsCommand;
}(BaseCommand_1.BaseCommand));
exports.GenTsCommand = GenTsCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuVHNDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL0dlblRzQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxtREFBc0c7QUFFdEcsdUNBQW9FO0FBQ3BFLDZDQUE0QztBQUM1Qyw2Q0FBZ0Q7QUFDaEQsNkNBQXlFO0FBQ3pFLDJCQUE2QjtBQUM3Qix5Q0FBb0U7QUFDcEUscURBQW9EO0FBRXBEO0lBQWtDLHdDQUFXO0lBQTdDO1FBQUEscUVBbURDO1FBakRtQixpQkFBVyxHQUFXLFlBQVksQ0FBQztRQUNuQywwQkFBb0IsR0FBVywrRUFBK0UsQ0FBQztRQUV4SCxtQkFBYSxHQUE0QixVQUFBLElBQUk7WUFDaEQsUUFBUSxXQUFXLFNBQUssS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuRCxDQUFDLENBQUE7UUFFTSxVQUFJLEdBQUcsY0FBTSxPQUFBLFFBQVEsRUFBUixDQUFRLENBQUM7UUFFdEIsd0JBQWtCLEdBQUcsY0FBTSxPQUFBLCtFQUErRSxFQUEvRSxDQUErRSxDQUFDO1FBRTNHLGFBQU8sR0FBbUIsY0FBTSxPQUFBLENBQUMsd0JBQU8sRUFBRSxFQUFFLG9CQUFHLEVBQUUsRUFBRSxpQ0FBZ0IsRUFBRSxFQUFFLDBCQUFTLEVBQUUsRUFBRSx3QkFBTyxFQUFFLEVBQUUsK0JBQWMsRUFBRSxDQUFDLEVBQWhGLENBQWdGLENBQUM7O0lBc0M1SCxDQUFDO0lBcENnQiw2QkFBTSxHQUFuQixVQUFvQixJQUFTOzs7Ozs7O3dCQUV6QixJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7d0JBQ25DLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ2pELGtCQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3BCLGVBQWUsR0FBRyxJQUFJLGlDQUFlLEVBQUUsQ0FBQzt3QkFDOUMscUJBQU0sZUFBZSxDQUFDLE1BQU0sc0JBQ3JCLElBQUksSUFDUCxHQUFHLEVBQUUsYUFBYSxJQUNwQixFQUFBOzt3QkFIRixTQUdFLENBQUM7d0JBQ0csb0JBQW9CLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQzt3QkFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO3dCQUMvQyxVQUFVLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUM7d0JBQzFDLHFCQUFNLGlCQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQTs7d0JBQTlELFVBQVUsR0FBRyxDQUFDLFNBQWdELENBQUM7NkJBQ2hFLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsS0FBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUE5QixDQUE4QixDQUFDOzZCQUMzQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBdkcsQ0FBdUcsQ0FBQzt3QkFDekgscUJBQU0sMkJBQWlCLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUE7O3dCQUEvRCxTQUErRCxDQUFDO3dCQUVoRSxJQUFJLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7d0JBQ3ZDLGtCQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBRTFCLElBQUksQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQzt3QkFDL0MsVUFBVSxHQUFHLHNCQUFzQixDQUFDO3dCQUMxQyxxQkFBTSwyQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUE7O3dCQUFwRSxTQUFvRSxDQUFDO3dCQUVyRSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7d0JBQ2pCLHFCQUFNLHNCQUFlLEVBQUUsRUFBQTs7d0JBQXRDLFlBQVksR0FBRyxTQUF1Qjt3QkFDdEMsV0FBVyxHQUFHLHdCQUFpQixFQUFFLENBQUM7d0JBQ3hDLHFCQUFNLHFCQUFXLENBQUMsWUFBWSxHQUFHLE1BQU0sRUFBRSxXQUFXLFNBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxFQUFBOzt3QkFBNUcsU0FBNEcsQ0FBQzs7Ozs7S0FFaEg7SUFFTSw0Q0FBcUIsR0FBNUIsVUFBNkIsSUFBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVMLG1CQUFDO0FBQUQsQ0FBQyxBQW5ERCxDQUFrQyx5QkFBVyxHQW1ENUM7QUFuRFksb0NBQVkifQ==
;