typescript-mysql-model
Version:
{ "version": "1.3.0", "name": "typescript-mysql-model", "description": "", "main": "index.js", "types": "index.d.ts", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "
29 lines (28 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const changeCase = require("change-case");
const fs = require("fs");
class QlEnumBuilder {
static render(enums, tableName, outputDir) {
const intro = `import { GraphQLEnumType } from "graphql";`;
if (!enums.length) {
return;
}
const strExports = enums.map(e => this.createEnum(e.field, e.options)).join("\n\n");
const output = `${intro}\n\n${strExports}\n`;
const path = outputDir + "/" + changeCase.paramCase(tableName) + "-ql-enums.generated";
fs.writeFileSync(path, output);
}
static createEnum(column, values) {
const rows = values.map(v => `${v}: { value: "${v}" }`);
return `const ${changeCase.camel(column)} = new GraphQLEnumType({
name: "${changeCase.constantCase(column)}",
values: {
${rows.join(",\n\t\t")}
}
});
export { ${changeCase.camel(column)} as ${changeCase.pascal(column)}Enum };`;
}
}
exports.QlEnumBuilder = QlEnumBuilder;
//# sourceMappingURL=ql-enum-builder.js.map