Skip to content

Commit b6d0be1

Browse files
committed
feat(nestjs): init
1 parent 32986b4 commit b6d0be1

File tree

12 files changed

+3616
-1516
lines changed

12 files changed

+3616
-1516
lines changed

.pnp.cjs

Lines changed: 676 additions & 157 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.yarn/releases/yarn-remote.mjs

Lines changed: 2317 additions & 1299 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
"examples/**/*"
99
],
1010
"devDependencies": {
11-
"@atls/code-runtime": "2.1.2",
11+
"@atls/code-runtime": "2.1.7",
1212
"@types/node": "22.5.5",
1313
"typescript": "5.4.2"
1414
},
15-
"packageManager": "yarn@4.6.0",
15+
"packageManager": "yarn@4.7.0",
1616
"typecheckSkipLibCheck": true
1717
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"name": "@atls/nestjs-mikro-orm-config",
3+
"version": "0.0.0",
4+
"license": "BSD-3-Clause",
5+
"type": "module",
6+
"exports": {
7+
"./package.json": "./package.json",
8+
".": "./src/index.ts"
9+
},
10+
"main": "src/index.ts",
11+
"files": [
12+
"dist"
13+
],
14+
"scripts": {
15+
"build": "yarn library build",
16+
"prepack": "yarn run build",
17+
"postpack": "rm -rf dist"
18+
},
19+
"dependencies": {
20+
"@atls/logger": "0.0.3",
21+
"@atls/mikro-orm-logger": "0.0.1"
22+
},
23+
"devDependencies": {
24+
"@mikro-orm/core": "5.7.12",
25+
"@mikro-orm/nestjs": "5.2.0",
26+
"@nestjs/common": "10.0.5",
27+
"@nestjs/core": "10.0.5",
28+
"reflect-metadata": "^0.2.2",
29+
"rxjs": "^7.8.1"
30+
},
31+
"peerDependencies": {
32+
"@mikro-orm/core": "^5",
33+
"@mikro-orm/nestjs": "^5",
34+
"@nestjs/common": "^10",
35+
"@nestjs/core": "^10",
36+
"reflect-metadata": "^0.2",
37+
"rxjs": "^7"
38+
},
39+
"publishConfig": {
40+
"exports": {
41+
"./package.json": "./package.json",
42+
".": {
43+
"import": "./dist/index.js",
44+
"types": "./dist/index.d.ts",
45+
"default": "./dist/index.js"
46+
}
47+
},
48+
"main": "dist/index.js",
49+
"typings": "dist/index.d.ts"
50+
}
51+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './module/index.js'
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export type * from './mikro-orm-config.module.interfaces.js'
2+
3+
export * from './mikro-orm-config.module.constants.js'
4+
export * from './mikro-orm.config-builder.js'
5+
export * from './mikro-orm-config.module.js'
6+
export * from './mikro-orm.config.js'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const MIKRO_ORM_CONFIG_MODULE_OPTIONS = Symbol('mikro-orm-config-module-options')
2+
export const MIKRO_ORM_CONFIG_MODULE_OPTIONS_PORT = Symbol('mikro-orm-config-module-options-port')
3+
export const MIKRO_ORM_CONFIG_MODULE_OPTIONS_HOST = Symbol('mikro-orm-config-module-options-host')
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { AnyEntity } from '@mikro-orm/core'
2+
import type { EntityName } from '@mikro-orm/core'
3+
import type { MigrationObject } from '@mikro-orm/core'
4+
import type { Options } from '@mikro-orm/core'
5+
6+
export interface MikroORMConfigOptions {
7+
driver: Options['driver']
8+
9+
port?: number
10+
host?: string
11+
database?: string
12+
username?: string
13+
password?: string
14+
15+
entities?: Array<EntityName<AnyEntity>> | Record<string, EntityName<AnyEntity>>
16+
17+
migrationsList?: Array<MigrationObject> | Record<string, MigrationObject['class']>
18+
19+
migrationsTableName?: string
20+
21+
debug?: boolean
22+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import type { DynamicModule } from '@nestjs/common'
2+
3+
import type { MikroORMConfigOptions } from './mikro-orm-config.module.interfaces.js'
4+
5+
import { Module } from '@nestjs/common'
6+
7+
import { MIKRO_ORM_CONFIG_MODULE_OPTIONS } from './mikro-orm-config.module.constants.js'
8+
import { MIKRO_ORM_CONFIG_MODULE_OPTIONS_HOST } from './mikro-orm-config.module.constants.js'
9+
import { MIKRO_ORM_CONFIG_MODULE_OPTIONS_PORT } from './mikro-orm-config.module.constants.js'
10+
import { MikroORMConfig } from './mikro-orm.config.js'
11+
12+
@Module({})
13+
export class MikroORMConfigModule {
14+
static register(options: MikroORMConfigOptions): DynamicModule {
15+
return {
16+
module: MikroORMConfigModule,
17+
providers: [
18+
MikroORMConfig,
19+
{
20+
provide: MIKRO_ORM_CONFIG_MODULE_OPTIONS,
21+
useValue: options,
22+
},
23+
{
24+
provide: MIKRO_ORM_CONFIG_MODULE_OPTIONS_PORT,
25+
useValue: options.port,
26+
},
27+
{
28+
provide: MIKRO_ORM_CONFIG_MODULE_OPTIONS_HOST,
29+
useValue: options.host,
30+
},
31+
],
32+
exports: [MikroORMConfig],
33+
}
34+
}
35+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { LoggerOptions } from '@mikro-orm/core'
2+
import type { MikroOrmModuleOptions } from '@mikro-orm/nestjs'
3+
4+
import { Logger } from '@atls/logger'
5+
import { MikroORMLogger } from '@atls/mikro-orm-logger'
6+
7+
export class MikroORMConfigBuilder {
8+
static build(options: Partial<MikroOrmModuleOptions>): MikroOrmModuleOptions {
9+
return {
10+
driver: options.driver,
11+
port: options.port || 5432,
12+
host: options.host || process.env.DB_HOST || 'localhost',
13+
dbName: options.dbName || process.env.DB_DATABASE || 'db',
14+
user: options.user || process.env.DB_USERNAME || 'postgres',
15+
password: options.password || process.env.DB_PASSWORD || 'password',
16+
debug: options.debug || Boolean(process.env.DB_DEBUG) || false,
17+
migrations: options.migrations,
18+
entities: options.entities,
19+
forceUndefined: true,
20+
21+
loggerFactory: (opts: LoggerOptions): MikroORMLogger => new MikroORMLogger(opts),
22+
logger: (message: string): void => {
23+
new Logger('mikro-orm:migrations').info(message)
24+
},
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)