egg-orm-ts
Version:
Simple orm with Typeorm, for egg plugin.
44 lines • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasTsLoader = void 0;
const typeorm_1 = require("typeorm");
const typedi_1 = require("typedi");
const entity_1 = require("./lib/entity");
exports.hasTsLoader = (typeof require.extensions['.ts'] === 'function');
function handleConfig(config, _env) {
if (exports.hasTsLoader) {
return config;
}
const keys = ['entities', 'migrations', 'subscribers'];
for (const key of keys) {
if (config[key]) {
const newValue = config[key].map((item) => item.replace(/\.ts$/, '.js'));
config[key] = newValue;
}
}
return config;
}
exports.default = async (app) => {
const config = app.config.typeorm;
if (!config) {
throw new Error('[egg-orm-ts] Config of Typeorm is needed.');
}
app.beforeStart(async () => {
try {
// Load config and connect to Database.
const config = handleConfig(app.config.typeorm, app.config.env);
typeorm_1.useContainer(typedi_1.Container);
app.context.connection = await typeorm_1.createConnection(config);
// Generate .d.ts.
entity_1.generateTypings(app);
// Load typeorm query instance.
const fileExt = exports.hasTsLoader ? '*.ts' : '*.js';
await entity_1.loadInstance(app, fileExt);
app.logger.info('[egg-orm-ts] Successfully connected to the database.');
}
catch (e) {
app.logger.error('[egg-orm-ts] Error connecting to the database:', e);
}
});
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFDQUdpQjtBQUNqQixtQ0FBbUM7QUFDbkMseUNBQTZEO0FBRWhELFFBQUEsV0FBVyxHQUFHLENBQUMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDO0FBRTdFLFNBQVMsWUFBWSxDQUFDLE1BQVcsRUFBRSxJQUFZO0lBQzdDLElBQUksbUJBQVcsRUFBRTtRQUNmLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDdEIsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDeEI7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxrQkFBZSxLQUFLLEVBQUUsR0FBZ0IsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3pCLElBQUk7WUFDRix1Q0FBdUM7WUFDdkMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEUsc0JBQVksQ0FBQyxrQkFBUyxDQUFDLENBQUM7WUFDeEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSwwQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RCxrQkFBa0I7WUFDbEIsd0JBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQiwrQkFBK0I7WUFDL0IsTUFBTSxPQUFPLEdBQUcsbUJBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxxQkFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVqQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1NBQ3pFO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBIn0=