mirror of https://github.com/nocodb/nocodb
mertmit
2 years ago
9 changed files with 97 additions and 184 deletions
@ -1,19 +0,0 @@ |
|||||||
import { Test } from '@nestjs/testing'; |
|
||||||
import { Connection } from './knex'; |
|
||||||
import type { TestingModule } from '@nestjs/testing'; |
|
||||||
|
|
||||||
describe('Knex', () => { |
|
||||||
let provider: Connection; |
|
||||||
|
|
||||||
beforeEach(async () => { |
|
||||||
const module: TestingModule = await Test.createTestingModule({ |
|
||||||
providers: [Connection], |
|
||||||
}).compile(); |
|
||||||
|
|
||||||
provider = module.get<Connection>(Connection); |
|
||||||
}); |
|
||||||
|
|
||||||
it('should be defined', () => { |
|
||||||
expect(provider).toBeDefined(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,29 +0,0 @@ |
|||||||
import { Injectable, Scope } from '@nestjs/common'; |
|
||||||
|
|
||||||
import { XKnex } from '../db/CustomKnex'; |
|
||||||
import { NcConfig } from '../utils/nc-config'; |
|
||||||
import type * as knex from 'knex'; |
|
||||||
|
|
||||||
@Injectable({ |
|
||||||
scope: Scope.DEFAULT, |
|
||||||
}) |
|
||||||
export class Connection { |
|
||||||
private knex: knex.Knex; |
|
||||||
private _config: any; |
|
||||||
|
|
||||||
constructor(config: NcConfig) { |
|
||||||
this._config = config; |
|
||||||
this.knex = XKnex({ |
|
||||||
...this._config.meta.db, |
|
||||||
useNullAsDefault: true, |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
get knexInstance(): knex.Knex { |
|
||||||
return this.knex; |
|
||||||
} |
|
||||||
|
|
||||||
get config(): NcConfig { |
|
||||||
return this._config; |
|
||||||
} |
|
||||||
} |
|
@ -1,13 +1,12 @@ |
|||||||
import { Connection } from './connection/connection'; |
|
||||||
import { MetaService } from './meta/meta.service'; |
import { MetaService } from './meta/meta.service'; |
||||||
|
import { NcConfig } from './utils/nc-config'; |
||||||
import Noco from './Noco'; |
import Noco from './Noco'; |
||||||
|
|
||||||
// run upgrader
|
// run upgrader
|
||||||
import NcUpgrader from './version-upgrader/NcUpgrader'; |
import NcUpgrader from './version-upgrader/NcUpgrader'; |
||||||
|
|
||||||
export default async () => { |
export default async () => { |
||||||
// TODO fix
|
const config = await NcConfig.createByEnv(); |
||||||
// await Connection.init();
|
Noco._ncMeta = new MetaService(config); |
||||||
// Noco._ncMeta = new MetaService(new Connection());
|
await NcUpgrader.upgrade({ ncMeta: Noco._ncMeta }); |
||||||
// await NcUpgrader.upgrade({ ncMeta: Noco._ncMeta });
|
|
||||||
}; |
}; |
||||||
|
@ -1,19 +0,0 @@ |
|||||||
import { Test } from '@nestjs/testing'; |
|
||||||
import { AppInitService } from './app-init.service'; |
|
||||||
import type { TestingModule } from '@nestjs/testing'; |
|
||||||
|
|
||||||
describe('AppInitService', () => { |
|
||||||
let service: AppInitService; |
|
||||||
|
|
||||||
beforeEach(async () => { |
|
||||||
const module: TestingModule = await Test.createTestingModule({ |
|
||||||
providers: [AppInitService], |
|
||||||
}).compile(); |
|
||||||
|
|
||||||
service = module.get<AppInitService>(AppInitService); |
|
||||||
}); |
|
||||||
|
|
||||||
it('should be defined', () => { |
|
||||||
expect(service).toBeDefined(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,74 +0,0 @@ |
|||||||
import { T } from 'nc-help'; |
|
||||||
import NocoCache from '../cache/NocoCache'; |
|
||||||
import { Connection } from '../connection/connection'; |
|
||||||
import initAdminFromEnv from '../helpers/initAdminFromEnv'; |
|
||||||
import NcPluginMgrv2 from '../helpers/NcPluginMgrv2'; |
|
||||||
import { MetaService } from '../meta/meta.service'; |
|
||||||
import { User } from '../models'; |
|
||||||
import Noco from '../Noco'; |
|
||||||
import getInstance from '../utils/getInstance'; |
|
||||||
import NcUpgrader from '../version-upgrader/NcUpgrader'; |
|
||||||
import type { IEventEmitter } from '../modules/event-emitter/event-emitter.interface'; |
|
||||||
import type { Provider } from '@nestjs/common'; |
|
||||||
|
|
||||||
export class AppInitService { |
|
||||||
private readonly config: any; |
|
||||||
|
|
||||||
constructor(config) { |
|
||||||
this.config = config; |
|
||||||
} |
|
||||||
|
|
||||||
get appConfig(): any { |
|
||||||
return this.config; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
export const appInitServiceProvider: Provider = { |
|
||||||
provide: AppInitService, |
|
||||||
// initialize app,
|
|
||||||
// 1. init cache
|
|
||||||
// 2. init db connection and create if not exist
|
|
||||||
// 3. init meta and set to Noco
|
|
||||||
// 4. init jwt
|
|
||||||
// 5. init plugin manager
|
|
||||||
// 6. run upgrader
|
|
||||||
useFactory: async ( |
|
||||||
connection: Connection, |
|
||||||
metaService: MetaService, |
|
||||||
eventEmitter: IEventEmitter, |
|
||||||
) => { |
|
||||||
process.env.NC_VERSION = '0107004'; |
|
||||||
|
|
||||||
await NocoCache.init(); |
|
||||||
|
|
||||||
await metaService.init(); |
|
||||||
|
|
||||||
// todo: remove
|
|
||||||
// temporary hack
|
|
||||||
Noco._ncMeta = metaService; |
|
||||||
Noco.config = connection.config; |
|
||||||
Noco.eventEmitter = eventEmitter; |
|
||||||
|
|
||||||
// init jwt secret
|
|
||||||
await Noco.initJwt(); |
|
||||||
|
|
||||||
// load super admin user from env if env is set
|
|
||||||
await initAdminFromEnv(metaService); |
|
||||||
|
|
||||||
// init plugin manager
|
|
||||||
await NcPluginMgrv2.init(Noco.ncMeta); |
|
||||||
await Noco.loadEEState(); |
|
||||||
|
|
||||||
// run upgrader
|
|
||||||
await NcUpgrader.upgrade({ ncMeta: Noco._ncMeta }); |
|
||||||
|
|
||||||
T.init({ |
|
||||||
instance: getInstance, |
|
||||||
}); |
|
||||||
T.emit('evt_app_started', await User.count()); |
|
||||||
|
|
||||||
// todo: move app config to app-init service
|
|
||||||
return new AppInitService(connection.config); |
|
||||||
}, |
|
||||||
inject: [Connection, MetaService, 'IEventEmitter'], |
|
||||||
}; |
|
Loading…
Reference in new issue