@mikro-orm/mongodb 7.0.4 → 7.0.5-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/MongoPlatform.js CHANGED
@@ -1,90 +1,90 @@
1
1
  import { ObjectId } from 'mongodb';
2
- import { Platform, MongoNamingStrategy, Utils, ReferenceKind, MetadataError } from '@mikro-orm/core';
2
+ import { Platform, MongoNamingStrategy, Utils, ReferenceKind, MetadataError, } from '@mikro-orm/core';
3
3
  import { MongoExceptionConverter } from './MongoExceptionConverter.js';
4
4
  import { MongoEntityRepository } from './MongoEntityRepository.js';
5
5
  import { MongoSchemaGenerator } from './MongoSchemaGenerator.js';
6
6
  /** Platform implementation for MongoDB. */
7
7
  export class MongoPlatform extends Platform {
8
- exceptionConverter = new MongoExceptionConverter();
9
- setConfig(config) {
10
- config.set('autoJoinOneToOneOwner', false);
11
- config.set('loadStrategy', 'select-in');
12
- config.get('discovery').inferDefaultValues = false;
13
- super.setConfig(config);
14
- }
15
- getNamingStrategy() {
16
- return MongoNamingStrategy;
17
- }
18
- getRepositoryClass() {
19
- return MongoEntityRepository;
20
- }
21
- /** @inheritDoc */
22
- lookupExtensions(orm) {
23
- MongoSchemaGenerator.register(orm);
24
- }
25
- /** @inheritDoc */
26
- getExtension(extensionName, extensionKey, moduleName, em) {
27
- if (extensionName === 'EntityGenerator') {
28
- throw new Error('EntityGenerator is not supported for this driver.');
29
- }
30
- if (extensionName === 'Migrator') {
31
- return super.getExtension('Migrator', '@mikro-orm/migrator', '@mikro-orm/migrations-mongodb', em);
32
- }
33
- /* v8 ignore next */
34
- return super.getExtension(extensionName, extensionKey, moduleName, em);
35
- }
36
- /* v8 ignore next: kept for type inference only */
37
- getSchemaGenerator(driver, em) {
38
- return new MongoSchemaGenerator(em ?? driver);
39
- }
40
- normalizePrimaryKey(data) {
41
- if (Utils.isObject(data) && data.constructor?.name === 'ObjectId') {
42
- return data.toHexString();
43
- }
44
- return data;
45
- }
46
- denormalizePrimaryKey(data) {
47
- return new ObjectId('' + data);
48
- }
49
- usesImplicitTransactions() {
50
- return false;
51
- }
52
- convertsJsonAutomatically() {
53
- return true;
54
- }
55
- convertJsonToDatabaseValue(value) {
56
- return Utils.copy(value);
57
- }
58
- convertJsonToJSValue(value, context) {
59
- return value;
60
- }
61
- marshallArray(values) {
62
- return values;
63
- }
64
- cloneEmbeddable(data) {
65
- const ret = super.cloneEmbeddable(data);
66
- Utils.dropUndefinedProperties(ret);
67
- return ret;
68
- }
69
- shouldHaveColumn(prop, populate, exclude) {
70
- if (super.shouldHaveColumn(prop, populate, exclude)) {
71
- return true;
72
- }
73
- return prop.kind === ReferenceKind.MANY_TO_MANY && prop.owner;
74
- }
75
- validateMetadata(meta) {
76
- if (meta.inheritanceType === 'tpt') {
77
- throw MetadataError.tptNotSupportedByDriver(meta);
78
- }
79
- const pk = meta.getPrimaryProps()[0];
80
- if (pk && pk.fieldNames?.[0] !== '_id') {
81
- throw MetadataError.invalidPrimaryKey(meta, pk, '_id');
82
- }
83
- }
84
- isAllowedTopLevelOperator(operator) {
85
- return ['$not', '$fulltext'].includes(operator);
86
- }
87
- getDefaultClientUrl() {
88
- return 'mongodb://127.0.0.1:27017';
89
- }
8
+ exceptionConverter = new MongoExceptionConverter();
9
+ setConfig(config) {
10
+ config.set('autoJoinOneToOneOwner', false);
11
+ config.set('loadStrategy', 'select-in');
12
+ config.get('discovery').inferDefaultValues = false;
13
+ super.setConfig(config);
14
+ }
15
+ getNamingStrategy() {
16
+ return MongoNamingStrategy;
17
+ }
18
+ getRepositoryClass() {
19
+ return MongoEntityRepository;
20
+ }
21
+ /** @inheritDoc */
22
+ lookupExtensions(orm) {
23
+ MongoSchemaGenerator.register(orm);
24
+ }
25
+ /** @inheritDoc */
26
+ getExtension(extensionName, extensionKey, moduleName, em) {
27
+ if (extensionName === 'EntityGenerator') {
28
+ throw new Error('EntityGenerator is not supported for this driver.');
29
+ }
30
+ if (extensionName === 'Migrator') {
31
+ return super.getExtension('Migrator', '@mikro-orm/migrator', '@mikro-orm/migrations-mongodb', em);
32
+ }
33
+ /* v8 ignore next */
34
+ return super.getExtension(extensionName, extensionKey, moduleName, em);
35
+ }
36
+ /* v8 ignore next: kept for type inference only */
37
+ getSchemaGenerator(driver, em) {
38
+ return new MongoSchemaGenerator(em ?? driver);
39
+ }
40
+ normalizePrimaryKey(data) {
41
+ if (Utils.isObject(data) && data.constructor?.name === 'ObjectId') {
42
+ return data.toHexString();
43
+ }
44
+ return data;
45
+ }
46
+ denormalizePrimaryKey(data) {
47
+ return new ObjectId('' + data);
48
+ }
49
+ usesImplicitTransactions() {
50
+ return false;
51
+ }
52
+ convertsJsonAutomatically() {
53
+ return true;
54
+ }
55
+ convertJsonToDatabaseValue(value) {
56
+ return Utils.copy(value);
57
+ }
58
+ convertJsonToJSValue(value, context) {
59
+ return value;
60
+ }
61
+ marshallArray(values) {
62
+ return values;
63
+ }
64
+ cloneEmbeddable(data) {
65
+ const ret = super.cloneEmbeddable(data);
66
+ Utils.dropUndefinedProperties(ret);
67
+ return ret;
68
+ }
69
+ shouldHaveColumn(prop, populate, exclude) {
70
+ if (super.shouldHaveColumn(prop, populate, exclude)) {
71
+ return true;
72
+ }
73
+ return prop.kind === ReferenceKind.MANY_TO_MANY && prop.owner;
74
+ }
75
+ validateMetadata(meta) {
76
+ if (meta.inheritanceType === 'tpt') {
77
+ throw MetadataError.tptNotSupportedByDriver(meta);
78
+ }
79
+ const pk = meta.getPrimaryProps()[0];
80
+ if (pk && pk.fieldNames?.[0] !== '_id') {
81
+ throw MetadataError.invalidPrimaryKey(meta, pk, '_id');
82
+ }
83
+ }
84
+ isAllowedTopLevelOperator(operator) {
85
+ return ['$not', '$fulltext'].includes(operator);
86
+ }
87
+ getDefaultClientUrl() {
88
+ return 'mongodb://127.0.0.1:27017';
89
+ }
90
90
  }
@@ -3,33 +3,35 @@ import { AbstractSchemaGenerator } from '@mikro-orm/core/schema';
3
3
  import type { MongoDriver } from './MongoDriver.js';
4
4
  /** Schema generator for MongoDB that manages collections and indexes. */
5
5
  export declare class MongoSchemaGenerator extends AbstractSchemaGenerator<MongoDriver> {
6
- static register(orm: MikroORM): void;
7
- create(options?: MongoCreateSchemaOptions): Promise<void>;
8
- drop(options?: { dropMigrationsTable?: boolean }): Promise<void>;
9
- update(options?: MongoCreateSchemaOptions): Promise<void>;
10
- ensureDatabase(): Promise<boolean>;
11
- refresh(options?: MongoCreateSchemaOptions): Promise<void>;
12
- dropIndexes(options?: {
13
- skipIndexes?: {
14
- collection: string;
15
- indexName: string;
16
- }[];
17
- collectionsWithFailedIndexes?: string[];
18
- }): Promise<void>;
19
- ensureIndexes(options?: EnsureIndexesOptions): Promise<void>;
20
- private mapIndexProperties;
21
- private createIndexes;
22
- private executeQuery;
23
- private createUniqueIndexes;
24
- private createPropertyIndexes;
6
+ static register(orm: MikroORM): void;
7
+ create(options?: MongoCreateSchemaOptions): Promise<void>;
8
+ drop(options?: {
9
+ dropMigrationsTable?: boolean;
10
+ }): Promise<void>;
11
+ update(options?: MongoCreateSchemaOptions): Promise<void>;
12
+ ensureDatabase(): Promise<boolean>;
13
+ refresh(options?: MongoCreateSchemaOptions): Promise<void>;
14
+ dropIndexes(options?: {
15
+ skipIndexes?: {
16
+ collection: string;
17
+ indexName: string;
18
+ }[];
19
+ collectionsWithFailedIndexes?: string[];
20
+ }): Promise<void>;
21
+ ensureIndexes(options?: EnsureIndexesOptions): Promise<void>;
22
+ private mapIndexProperties;
23
+ private createIndexes;
24
+ private executeQuery;
25
+ private createUniqueIndexes;
26
+ private createPropertyIndexes;
25
27
  }
26
28
  export interface MongoCreateSchemaOptions extends CreateSchemaOptions {
27
- /** create indexes? defaults to true */
28
- ensureIndexes?: boolean;
29
+ /** create indexes? defaults to true */
30
+ ensureIndexes?: boolean;
29
31
  }
30
32
  /** Options for the `ensureIndexes()` method of `MongoSchemaGenerator`. */
31
33
  export interface EnsureIndexesOptions {
32
- ensureCollections?: boolean;
33
- retry?: boolean | string[];
34
- retryLimit?: number;
34
+ ensureCollections?: boolean;
35
+ retry?: boolean | string[];
36
+ retryLimit?: number;
35
37
  }