Files
n8n-enterprise-unlocked/packages/cli/src/commands/BaseCommand.ts
T
कारतोफ्फेलस्क्रिप्ट™ 323bd78067 fix: Enable crash journal only in production mode (no-changelog) (#4948)
* consolidate various `NODE_ENV` checks in the `cli` package

* enable crash journal only in production
2022-12-16 15:27:49 +01:00

59 lines
1.1 KiB
TypeScript

import { Command } from '@oclif/core';
import { LoggerProxy } from 'n8n-workflow';
import { getLogger, Logger } from '@/Logger';
import { User } from '@db/entities/User';
import * as Db from '@/Db';
import { inTest } from '@/constants';
export abstract class BaseCommand extends Command {
logger: Logger;
/**
* Lifecycle methods
*/
async init(): Promise<void> {
this.logger = getLogger();
LoggerProxy.init(this.logger);
await Db.init();
}
async finally(): Promise<void> {
if (inTest) return;
this.exit();
}
/**
* User Management utils
*/
defaultUserProps = {
firstName: null,
lastName: null,
email: null,
password: null,
resetPasswordToken: null,
};
async getInstanceOwner(): Promise<User> {
const globalRole = await Db.collections.Role.findOneOrFail({
name: 'owner',
scope: 'global',
});
const owner = await Db.collections.User.findOne({ globalRole });
if (owner) return owner;
const user = new User();
Object.assign(user, { ...this.defaultUserProps, globalRole });
await Db.collections.User.save(user);
return Db.collections.User.findOneOrFail({ globalRole });
}
}