UNPKG

@selfage/generator_cli

Version:

Code generation for message, service, and database.

39 lines 6.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generate = generate; const fs = require("fs"); const definition_resolver_1 = require("./definition_resolver"); const enum_generator_1 = require("./enum_generator"); const io_helper_1 = require("./io_helper"); const message_generator_1 = require("./message_generator"); const service_generator_1 = require("./service_generator"); const spanner_database_generator_1 = require("./spanner_database_generator"); const util_1 = require("./util"); const yaml_1 = require("yaml"); function generate(inputFile, dryRun) { let modulePath = (0, util_1.normalizeRelativePathForNode)((0, io_helper_1.stripFileExtension)(inputFile)); let definitions = (0, yaml_1.parse)(fs.readFileSync(modulePath + ".yaml").toString()); let definitionResolver = new definition_resolver_1.DefinitionResolver(modulePath); let outputContentMap = new Map(); for (let definition of definitions) { if (definition.kind === "Enum") { (0, enum_generator_1.generateEnum)(modulePath, definition, outputContentMap); } else if (definition.kind === "Message") { (0, message_generator_1.generateMessage)(modulePath, definition, definitionResolver, outputContentMap); } else if (definition.kind === "Service") { (0, service_generator_1.generateService)(modulePath, definition, outputContentMap); } else if (definition.kind === "RemoteCallsGroup") { (0, service_generator_1.generateRemoteCallsGroup)(modulePath, definition, definitionResolver, outputContentMap); } else if (definition.kind === "SpannerDatabase") { new spanner_database_generator_1.SpannerDatabaseGenerator(modulePath, definition, definitionResolver, outputContentMap).generate(); } } for (let outputContentBuilder of outputContentMap.values()) { outputContentBuilder.writeSync(dryRun); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsNEJBd0NDO0FBcERELHlCQUEwQjtBQUUxQiwrREFBMkQ7QUFDM0QscURBQWdEO0FBQ2hELDJDQUFpRDtBQUNqRCwyREFBc0Q7QUFFdEQsMkRBQWdGO0FBQ2hGLDZFQUF3RTtBQUN4RSxpQ0FBc0Q7QUFDdEQsK0JBQTZCO0FBRTdCLFNBQWdCLFFBQVEsQ0FBQyxTQUFpQixFQUFFLE1BQWdCO0lBQzFELElBQUksVUFBVSxHQUFHLElBQUEsbUNBQTRCLEVBQUMsSUFBQSw4QkFBa0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdFLElBQUksV0FBVyxHQUFHLElBQUEsWUFBSyxFQUNyQixFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDNUIsQ0FBQztJQUV2QixJQUFJLGtCQUFrQixHQUFHLElBQUksd0NBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUQsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztJQUMvRCxLQUFLLElBQUksVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFBLDZCQUFZLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekMsSUFBQSxtQ0FBZSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGdCQUFnQixDQUNqQixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxJQUFBLG1DQUFlLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztZQUNsRCxJQUFBLDRDQUF3QixFQUN0QixVQUFVLEVBQ1YsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FDakIsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLHFEQUF3QixDQUMxQixVQUFVLEVBQ1YsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FDakIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxJQUFJLG9CQUFvQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDM0Qsb0JBQW9CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzID0gcmVxdWlyZShcImZzXCIpO1xuaW1wb3J0IHsgRGVmaW5pdGlvbiB9IGZyb20gXCIuL2RlZmluaXRpb25cIjtcbmltcG9ydCB7IERlZmluaXRpb25SZXNvbHZlciB9IGZyb20gXCIuL2RlZmluaXRpb25fcmVzb2x2ZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlRW51bSB9IGZyb20gXCIuL2VudW1fZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBzdHJpcEZpbGVFeHRlbnNpb24gfSBmcm9tIFwiLi9pb19oZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlTWVzc2FnZSB9IGZyb20gXCIuL21lc3NhZ2VfZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBPdXRwdXRDb250ZW50QnVpbGRlciB9IGZyb20gXCIuL291dHB1dF9jb250ZW50X2J1aWxkZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlUmVtb3RlQ2FsbHNHcm91cCwgZ2VuZXJhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZV9nZW5lcmF0b3JcIjtcbmltcG9ydCB7IFNwYW5uZXJEYXRhYmFzZUdlbmVyYXRvciB9IGZyb20gXCIuL3NwYW5uZXJfZGF0YWJhc2VfZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBub3JtYWxpemVSZWxhdGl2ZVBhdGhGb3JOb2RlIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwieWFtbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGUoaW5wdXRGaWxlOiBzdHJpbmcsIGRyeVJ1bj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgbGV0IG1vZHVsZVBhdGggPSBub3JtYWxpemVSZWxhdGl2ZVBhdGhGb3JOb2RlKHN0cmlwRmlsZUV4dGVuc2lvbihpbnB1dEZpbGUpKTtcbiAgbGV0IGRlZmluaXRpb25zID0gcGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKG1vZHVsZVBhdGggKyBcIi55YW1sXCIpLnRvU3RyaW5nKCksXG4gICkgYXMgQXJyYXk8RGVmaW5pdGlvbj47XG5cbiAgbGV0IGRlZmluaXRpb25SZXNvbHZlciA9IG5ldyBEZWZpbml0aW9uUmVzb2x2ZXIobW9kdWxlUGF0aCk7XG4gIGxldCBvdXRwdXRDb250ZW50TWFwID0gbmV3IE1hcDxzdHJpbmcsIE91dHB1dENvbnRlbnRCdWlsZGVyPigpO1xuICBmb3IgKGxldCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gXCJFbnVtXCIpIHtcbiAgICAgIGdlbmVyYXRlRW51bShtb2R1bGVQYXRoLCBkZWZpbml0aW9uLCBvdXRwdXRDb250ZW50TWFwKTtcbiAgICB9IGVsc2UgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gXCJNZXNzYWdlXCIpIHtcbiAgICAgIGdlbmVyYXRlTWVzc2FnZShcbiAgICAgICAgbW9kdWxlUGF0aCxcbiAgICAgICAgZGVmaW5pdGlvbixcbiAgICAgICAgZGVmaW5pdGlvblJlc29sdmVyLFxuICAgICAgICBvdXRwdXRDb250ZW50TWFwLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gXCJTZXJ2aWNlXCIpIHtcbiAgICAgIGdlbmVyYXRlU2VydmljZShtb2R1bGVQYXRoLCBkZWZpbml0aW9uLCBvdXRwdXRDb250ZW50TWFwKTtcbiAgICB9IGVsc2UgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gXCJSZW1vdGVDYWxsc0dyb3VwXCIpIHtcbiAgICAgIGdlbmVyYXRlUmVtb3RlQ2FsbHNHcm91cChcbiAgICAgICAgbW9kdWxlUGF0aCxcbiAgICAgICAgZGVmaW5pdGlvbixcbiAgICAgICAgZGVmaW5pdGlvblJlc29sdmVyLFxuICAgICAgICBvdXRwdXRDb250ZW50TWFwLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gXCJTcGFubmVyRGF0YWJhc2VcIikge1xuICAgICAgbmV3IFNwYW5uZXJEYXRhYmFzZUdlbmVyYXRvcihcbiAgICAgICAgbW9kdWxlUGF0aCxcbiAgICAgICAgZGVmaW5pdGlvbixcbiAgICAgICAgZGVmaW5pdGlvblJlc29sdmVyLFxuICAgICAgICBvdXRwdXRDb250ZW50TWFwLFxuICAgICAgKS5nZW5lcmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IG91dHB1dENvbnRlbnRCdWlsZGVyIG9mIG91dHB1dENvbnRlbnRNYXAudmFsdWVzKCkpIHtcbiAgICBvdXRwdXRDb250ZW50QnVpbGRlci53cml0ZVN5bmMoZHJ5UnVuKTtcbiAgfVxufVxuIl19