breeze-sequelize
Version:
Breeze Sequelize server implementation
34 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const breeze_client_1 = require("breeze-client");
const adapter_model_library_backing_store_1 = require("breeze-client/adapter-model-library-backing-store");
const fs_1 = require("fs");
const path_1 = require("path");
const sequelize_1 = require("sequelize");
const ModelMapper_1 = require("./ModelMapper");
// Generates Breeze metadata from Sequelize models
const args = process.argv.slice(2);
if (args.length < 2) {
console.log("Usage: " + process.argv[0] + " " + process.argv[1] + " [modeldir] [namespace] [metadata.json]\n" +
"Generates Breeze metadata from Sequelize models in [modeldir], putting entities in [namespace]\n" +
"writes file [metadata.json] in the current directory.");
process.exit(1);
}
const modeldir = path_1.resolve(args[0]);
const namespace = args[1];
const outfile = args.length > 2 ? args[2] : "metadata.json";
if (!fs_1.existsSync(modeldir)) {
console.log("Directory '" + modeldir + "' does not exist.");
process.exit(2);
}
// dialect is required but meaningless when we are just loading the models
const sq = new sequelize_1.Sequelize({ dialect: 'mysql' });
ModelMapper_1.ModelMapper.loadSequelizeModels(sq, modeldir);
adapter_model_library_backing_store_1.ModelLibraryBackingStoreAdapter.register(breeze_client_1.breeze.config);
const metadataStore = new breeze_client_1.EntityManager().metadataStore;
const mm = new ModelMapper_1.ModelMapper(metadataStore);
mm.addModels(sq, namespace);
const metadata = metadataStore.exportMetadata();
fs_1.writeFileSync(outfile, metadata);
console.log("Wrote " + outfile);
//# sourceMappingURL=metagen.js.map