cnpmcore
Version:
Private NPM Registry for Enterprise
35 lines • 3.04 kB
JavaScript
import { readFile } from 'node:fs/promises';
import path from 'node:path';
import { ChangesStreamService } from "./app/core/service/ChangesStreamService.js";
export default class CnpmcoreAppHook {
constructor(app) {
this.app = app;
this.app.binaryHTML = '';
}
configWillLoad() {
const app = this.app;
// https://github.com/eggjs/egg/blob/next/tegg/plugin/orm/src/app.ts#L37
// store query sql to log
app.config.orm.logger = {
...app.config.orm.logger,
logQuery(sql, duration) {
app.getLogger('sqlLogger').info('[%s] %s', duration, sql);
},
};
}
// Use willReady instead of didReady so that app.ready() awaits completion.
// didReady is fire-and-forget in egg lifecycle, causing race conditions in tests.
async willReady() {
// ready binary.html and replace registry
const filepath = path.join(this.app.baseDir, 'app/port/binary.html');
const text = await readFile(filepath, 'utf8');
this.app.binaryHTML = text.replace('{{registry}}', this.app.config.cnpmcore.registry);
}
// 应用退出时执行
// 需要暂停当前执行的 changesStream task
async beforeClose() {
const changesStreamService = await this.app.getEggObject(ChangesStreamService);
await changesStreamService.suspendSync(true);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFJN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFRbEYsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFlO0lBR2xDLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLHdFQUF3RTtRQUN4RSx5QkFBeUI7UUFDekIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHO1lBQ3RCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN4QixRQUFRLENBQUMsR0FBVyxFQUFFLFFBQWdCO2dCQUNwQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVELENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxrRkFBa0Y7SUFDbEYsS0FBSyxDQUFDLFNBQVM7UUFDYix5Q0FBeUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELFVBQVU7SUFDViwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMvRSxNQUFNLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YifQ==