typeorm 0.3.22-dev.fb06662 → 0.3.23-dev.04f3d3f

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.
Files changed (145) hide show
  1. package/browser/decorator/ForeignKey.d.ts +22 -0
  2. package/browser/decorator/ForeignKey.js +41 -0
  3. package/browser/decorator/ForeignKey.js.map +1 -0
  4. package/browser/decorator/options/ForeignKeyOptions.d.ts +24 -0
  5. package/browser/decorator/options/ForeignKeyOptions.js +3 -0
  6. package/browser/decorator/options/ForeignKeyOptions.js.map +1 -0
  7. package/browser/driver/DriverFactory.js +2 -2
  8. package/browser/driver/DriverFactory.js.map +1 -1
  9. package/browser/driver/cockroachdb/CockroachDriver.js +3 -5
  10. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  11. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  12. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  13. package/browser/driver/expo/ExpoDriver.d.ts +2 -12
  14. package/browser/driver/expo/ExpoDriver.js +8 -54
  15. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  16. package/browser/driver/expo/ExpoDriverFactory.d.ts +9 -0
  17. package/browser/driver/expo/ExpoDriverFactory.js +18 -0
  18. package/browser/driver/expo/ExpoDriverFactory.js.map +1 -0
  19. package/browser/driver/expo/ExpoQueryRunner.d.ts +0 -48
  20. package/browser/driver/expo/ExpoQueryRunner.js +36 -141
  21. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  22. package/browser/driver/expo/legacy/ExpoLegacyDriver.d.ts +21 -0
  23. package/browser/driver/expo/legacy/ExpoLegacyDriver.js +71 -0
  24. package/browser/driver/expo/legacy/ExpoLegacyDriver.js.map +1 -0
  25. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +57 -0
  26. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +165 -0
  27. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -0
  28. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  29. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  30. package/browser/driver/mongodb/MongoDriver.d.ts +2 -3
  31. package/browser/driver/mongodb/MongoDriver.js +57 -65
  32. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  33. package/browser/driver/postgres/PostgresDriver.js +3 -5
  34. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  35. package/browser/driver/postgres/PostgresQueryRunner.js +11 -2
  36. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  37. package/browser/driver/sap/SapDriver.js +40 -31
  38. package/browser/driver/sap/SapDriver.js.map +1 -1
  39. package/browser/driver/sap/SapQueryRunner.js +1 -11
  40. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  41. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  42. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -0
  43. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  44. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  45. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  46. package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  47. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -0
  48. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  49. package/browser/entity-schema/EntitySchemaOptions.d.ts +5 -0
  50. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  51. package/browser/entity-schema/EntitySchemaTransformer.js +29 -0
  52. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  53. package/browser/index.d.ts +2 -0
  54. package/browser/index.js +2 -0
  55. package/browser/index.js.map +1 -1
  56. package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  57. package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -0
  58. package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  59. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  60. package/browser/metadata-args/MetadataArgsStorage.js +8 -0
  61. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  62. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  63. package/browser/metadata-builder/EntityMetadataBuilder.js +70 -0
  64. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  65. package/browser/migration/MigrationExecutor.js +2 -2
  66. package/browser/migration/MigrationExecutor.js.map +1 -1
  67. package/browser/query-builder/InsertQueryBuilder.js +3 -3
  68. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  69. package/browser/subscriber/event/QueryEvent.d.ts +1 -1
  70. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  71. package/commands/MigrationGenerateCommand.js +2 -2
  72. package/commands/MigrationGenerateCommand.js.map +1 -1
  73. package/decorator/ForeignKey.d.ts +22 -0
  74. package/decorator/ForeignKey.js +44 -0
  75. package/decorator/ForeignKey.js.map +1 -0
  76. package/decorator/options/ForeignKeyOptions.d.ts +24 -0
  77. package/decorator/options/ForeignKeyOptions.js +4 -0
  78. package/decorator/options/ForeignKeyOptions.js.map +1 -0
  79. package/driver/DriverFactory.js +2 -2
  80. package/driver/DriverFactory.js.map +1 -1
  81. package/driver/cockroachdb/CockroachDriver.js +3 -5
  82. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  83. package/driver/cockroachdb/CockroachQueryRunner.js +1 -1
  84. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  85. package/driver/expo/ExpoDriver.d.ts +2 -12
  86. package/driver/expo/ExpoDriver.js +8 -54
  87. package/driver/expo/ExpoDriver.js.map +1 -1
  88. package/driver/expo/ExpoDriverFactory.d.ts +9 -0
  89. package/driver/expo/ExpoDriverFactory.js +22 -0
  90. package/driver/expo/ExpoDriverFactory.js.map +1 -0
  91. package/driver/expo/ExpoQueryRunner.d.ts +0 -48
  92. package/driver/expo/ExpoQueryRunner.js +36 -141
  93. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  94. package/driver/expo/legacy/ExpoLegacyDriver.d.ts +21 -0
  95. package/driver/expo/legacy/ExpoLegacyDriver.js +75 -0
  96. package/driver/expo/legacy/ExpoLegacyDriver.js.map +1 -0
  97. package/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +57 -0
  98. package/driver/expo/legacy/ExpoLegacyQueryRunner.js +169 -0
  99. package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -0
  100. package/driver/mongodb/MongoConnectionOptions.d.ts +111 -142
  101. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  102. package/driver/mongodb/MongoDriver.d.ts +2 -3
  103. package/driver/mongodb/MongoDriver.js +57 -65
  104. package/driver/mongodb/MongoDriver.js.map +1 -1
  105. package/driver/postgres/PostgresDriver.js +3 -5
  106. package/driver/postgres/PostgresDriver.js.map +1 -1
  107. package/driver/postgres/PostgresQueryRunner.js +11 -2
  108. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  109. package/driver/sap/SapDriver.js +40 -31
  110. package/driver/sap/SapDriver.js.map +1 -1
  111. package/driver/sap/SapQueryRunner.js +1 -11
  112. package/driver/sap/SapQueryRunner.js.map +1 -1
  113. package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  114. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +4 -0
  115. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  116. package/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  117. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  118. package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  119. package/entity-schema/EntitySchemaForeignKeyOptions.js +4 -0
  120. package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  121. package/entity-schema/EntitySchemaOptions.d.ts +5 -0
  122. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  123. package/entity-schema/EntitySchemaTransformer.js +29 -0
  124. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  125. package/index.d.ts +2 -0
  126. package/index.js +2 -0
  127. package/index.js.map +1 -1
  128. package/index.mjs +2 -0
  129. package/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  130. package/metadata-args/ForeignKeyMetadataArgs.js +4 -0
  131. package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  132. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  133. package/metadata-args/MetadataArgsStorage.js +8 -0
  134. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  135. package/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  136. package/metadata-builder/EntityMetadataBuilder.js +70 -0
  137. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  138. package/migration/MigrationExecutor.js +2 -2
  139. package/migration/MigrationExecutor.js.map +1 -1
  140. package/package.json +1 -1
  141. package/query-builder/InsertQueryBuilder.js +3 -3
  142. package/query-builder/InsertQueryBuilder.js.map +1 -1
  143. package/subscriber/event/QueryEvent.d.ts +1 -1
  144. package/subscriber/event/QueryEvent.js.map +1 -1
  145. package/typeorm-model-shim.js +6 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/QueryEvent.ts"],"names":[],"mappings":"","file":"QueryEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * BeforeQueryEvent is an object that broadcaster sends to the entity subscriber before query is ran against the database.\n */\nexport interface QueryEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Query that is being executed.\n */\n query: string\n\n /**\n * Parameters used in the query.\n */\n parameters?: any[]\n}\n\nexport interface BeforeQueryEvent<Entity> extends QueryEvent<Entity> {}\n\nexport interface AfterQueryEvent<Entity> extends QueryEvent<Entity> {\n /**\n * Whether the query was successful.\n */\n success: boolean\n\n /**\n * The duration of the query execution.\n */\n executionTime?: number\n\n /**\n * The raw results from the database if the query was successful.\n */\n rawResults?: any\n\n /**\n * The error thrown if the query was unsuccessful.\n */\n error?: any\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/QueryEvent.ts"],"names":[],"mappings":"","file":"QueryEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * BeforeQueryEvent is an object that broadcaster sends to the entity subscriber before query is ran against the database.\n */\nexport interface QueryEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Query that is being executed.\n */\n query: string\n\n /**\n * Parameters used in the query.\n */\n parameters?: any[]\n}\n\nexport interface BeforeQueryEvent<Entity> extends QueryEvent<Entity> {}\n\nexport interface AfterQueryEvent<Entity> extends QueryEvent<Entity> {\n /**\n * Whether the query was successful.\n */\n success: boolean\n\n /**\n * The duration of the query execution, in milliseconds.\n */\n executionTime?: number\n\n /**\n * The raw results from the database if the query was successful.\n */\n rawResults?: any\n\n /**\n * The error thrown if the query was unsuccessful.\n */\n error?: any\n}\n"],"sourceRoot":"../.."}
@@ -94,14 +94,14 @@ class MigrationGenerateCommand {
94
94
  }
95
95
  sqlInMemory.upQueries.forEach((upQuery) => {
96
96
  upSqls.push(" await queryRunner.query(`" +
97
- upQuery.query.replace(new RegExp("`", "g"), "\\`") +
97
+ upQuery.query.replaceAll("`", "\\`") +
98
98
  "`" +
99
99
  MigrationGenerateCommand.queryParams(upQuery.parameters) +
100
100
  ");");
101
101
  });
102
102
  sqlInMemory.downQueries.forEach((downQuery) => {
103
103
  downSqls.push(" await queryRunner.query(`" +
104
- downQuery.query.replace(new RegExp("`", "g"), "\\`") +
104
+ downQuery.query.replaceAll("`", "\\`") +
105
105
  "`" +
106
106
  MigrationGenerateCommand.queryParams(downQuery.parameters) +
107
107
  ");");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/MigrationGenerateCommand.ts"],"names":[],"mappings":"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","file":"MigrationGenerateCommand.js","sourcesContent":["import { format } from \"@sqltools/formatter/lib/sqlFormatter\"\nimport ansi from \"ansis\"\nimport path from \"path\"\nimport process from \"process\"\nimport yargs from \"yargs\"\nimport { DataSource } from \"../data-source\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { camelCase } from \"../util/StringUtils\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Generates a new migration file with sql needs to be executed to update schema.\n */\nexport class MigrationGenerateCommand implements yargs.CommandModule {\n command = \"migration:generate <path>\"\n describe =\n \"Generates a new migration file with sql needs to be executed to update schema.\"\n\n builder(args: yargs.Argv) {\n return args\n .positional(\"path\", {\n type: \"string\",\n describe: \"Path of the migration file\",\n demandOption: true,\n })\n .option(\"dataSource\", {\n alias: \"d\",\n type: \"string\",\n describe:\n \"Path to the file where your DataSource instance is defined.\",\n demandOption: true,\n })\n .option(\"p\", {\n alias: \"pretty\",\n type: \"boolean\",\n default: false,\n describe: \"Pretty-print generated SQL\",\n })\n .option(\"o\", {\n alias: \"outputJs\",\n type: \"boolean\",\n default: false,\n describe:\n \"Generate a migration file on Javascript instead of Typescript\",\n })\n .option(\"dr\", {\n alias: \"dryrun\",\n type: \"boolean\",\n default: false,\n describe:\n \"Prints out the contents of the migration instead of writing it to a file\",\n })\n .option(\"ch\", {\n alias: \"check\",\n type: \"boolean\",\n default: false,\n describe:\n \"Verifies that the current database is up to date and that no migrations are needed. Otherwise exits with code 1.\",\n })\n .option(\"t\", {\n alias: \"timestamp\",\n type: \"number\",\n default: false,\n describe: \"Custom timestamp for the migration name\",\n })\n }\n\n async handler(args: yargs.Arguments<any & { path: string }>) {\n const timestamp = CommandUtils.getTimestamp(args.timestamp)\n const extension = args.outputJs ? \".js\" : \".ts\"\n const fullPath = args.path.startsWith(\"/\")\n ? args.path\n : path.resolve(process.cwd(), args.path)\n const filename = timestamp + \"-\" + path.basename(fullPath) + extension\n\n let dataSource: DataSource | undefined = undefined\n try {\n dataSource = await CommandUtils.loadDataSource(\n path.resolve(process.cwd(), args.dataSource as string),\n )\n dataSource.setOptions({\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: false,\n })\n await dataSource.initialize()\n\n const upSqls: string[] = [],\n downSqls: string[] = []\n\n try {\n const sqlInMemory = await dataSource.driver\n .createSchemaBuilder()\n .log()\n\n if (args.pretty) {\n sqlInMemory.upQueries.forEach((upQuery) => {\n upQuery.query = MigrationGenerateCommand.prettifyQuery(\n upQuery.query,\n )\n })\n sqlInMemory.downQueries.forEach((downQuery) => {\n downQuery.query =\n MigrationGenerateCommand.prettifyQuery(\n downQuery.query,\n )\n })\n }\n\n sqlInMemory.upQueries.forEach((upQuery) => {\n upSqls.push(\n \" await queryRunner.query(`\" +\n upQuery.query.replace(new RegExp(\"`\", \"g\"), \"\\\\`\") +\n \"`\" +\n MigrationGenerateCommand.queryParams(\n upQuery.parameters,\n ) +\n \");\",\n )\n })\n sqlInMemory.downQueries.forEach((downQuery) => {\n downSqls.push(\n \" await queryRunner.query(`\" +\n downQuery.query.replace(\n new RegExp(\"`\", \"g\"),\n \"\\\\`\",\n ) +\n \"`\" +\n MigrationGenerateCommand.queryParams(\n downQuery.parameters,\n ) +\n \");\",\n )\n })\n } finally {\n await dataSource.destroy()\n }\n\n if (!upSqls.length) {\n if (args.check) {\n console.log(\n ansi.green`No changes in database schema were found`,\n )\n process.exit(0)\n } else {\n console.log(\n ansi.yellow`No changes in database schema were found - cannot generate a migration. To create a new empty migration use \"typeorm migration:create\" command`,\n )\n process.exit(1)\n }\n } else if (!args.path) {\n console.log(ansi.yellow`Please specify a migration path`)\n process.exit(1)\n }\n\n const fileContent = args.outputJs\n ? MigrationGenerateCommand.getJavascriptTemplate(\n path.basename(fullPath),\n timestamp,\n upSqls,\n downSqls.reverse(),\n )\n : MigrationGenerateCommand.getTemplate(\n path.basename(fullPath),\n timestamp,\n upSqls,\n downSqls.reverse(),\n )\n\n if (args.check) {\n console.log(\n ansi.yellow`Unexpected changes in database schema were found in check mode:\\n\\n${ansi.white(\n fileContent,\n )}`,\n )\n process.exit(1)\n }\n\n if (args.dryrun) {\n console.log(\n ansi.green(\n `Migration ${ansi.blue(\n fullPath + extension,\n )} has content:\\n\\n${ansi.white(fileContent)}`,\n ),\n )\n } else {\n const migrationFileName =\n path.dirname(fullPath) + \"/\" + filename\n await CommandUtils.createFile(migrationFileName, fileContent)\n\n console.log(\n ansi.green`Migration ${ansi.blue(\n migrationFileName,\n )} has been generated successfully.`,\n )\n if (args.exitProcess !== false) {\n process.exit(0)\n }\n }\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during migration generation:\", err)\n process.exit(1)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Formats query parameters for migration queries if parameters actually exist\n */\n protected static queryParams(parameters: any[] | undefined): string {\n if (!parameters || !parameters.length) {\n return \"\"\n }\n\n return `, ${JSON.stringify(parameters)}`\n }\n\n /**\n * Gets contents of the migration file.\n */\n protected static getTemplate(\n name: string,\n timestamp: number,\n upSqls: string[],\n downSqls: string[],\n ): string {\n const migrationName = `${camelCase(name, true)}${timestamp}`\n\n return `import { MigrationInterface, QueryRunner } from \"typeorm\";\n\nexport class ${migrationName} implements MigrationInterface {\n name = '${migrationName}'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n${upSqls.join(`\n`)}\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n${downSqls.join(`\n`)}\n }\n\n}\n`\n }\n\n /**\n * Gets contents of the migration file in Javascript.\n */\n protected static getJavascriptTemplate(\n name: string,\n timestamp: number,\n upSqls: string[],\n downSqls: string[],\n ): string {\n const migrationName = `${camelCase(name, true)}${timestamp}`\n\n return `module.exports = class ${migrationName} {\n name = '${migrationName}'\n\n async up(queryRunner) {\n${upSqls.join(`\n`)}\n }\n\n async down(queryRunner) {\n${downSqls.join(`\n`)}\n }\n}\n`\n }\n\n /**\n *\n */\n protected static prettifyQuery(query: string) {\n const formattedQuery = format(query, { indent: \" \" })\n return (\n \"\\n\" + formattedQuery.replace(/^/gm, \" \") + \"\\n \"\n )\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/MigrationGenerateCommand.ts"],"names":[],"mappings":"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","file":"MigrationGenerateCommand.js","sourcesContent":["import { format } from \"@sqltools/formatter/lib/sqlFormatter\"\nimport ansi from \"ansis\"\nimport path from \"path\"\nimport process from \"process\"\nimport yargs from \"yargs\"\nimport { DataSource } from \"../data-source\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { camelCase } from \"../util/StringUtils\"\nimport { CommandUtils } from \"./CommandUtils\"\n\n/**\n * Generates a new migration file with sql needs to be executed to update schema.\n */\nexport class MigrationGenerateCommand implements yargs.CommandModule {\n command = \"migration:generate <path>\"\n describe =\n \"Generates a new migration file with sql needs to be executed to update schema.\"\n\n builder(args: yargs.Argv) {\n return args\n .positional(\"path\", {\n type: \"string\",\n describe: \"Path of the migration file\",\n demandOption: true,\n })\n .option(\"dataSource\", {\n alias: \"d\",\n type: \"string\",\n describe:\n \"Path to the file where your DataSource instance is defined.\",\n demandOption: true,\n })\n .option(\"p\", {\n alias: \"pretty\",\n type: \"boolean\",\n default: false,\n describe: \"Pretty-print generated SQL\",\n })\n .option(\"o\", {\n alias: \"outputJs\",\n type: \"boolean\",\n default: false,\n describe:\n \"Generate a migration file on Javascript instead of Typescript\",\n })\n .option(\"dr\", {\n alias: \"dryrun\",\n type: \"boolean\",\n default: false,\n describe:\n \"Prints out the contents of the migration instead of writing it to a file\",\n })\n .option(\"ch\", {\n alias: \"check\",\n type: \"boolean\",\n default: false,\n describe:\n \"Verifies that the current database is up to date and that no migrations are needed. Otherwise exits with code 1.\",\n })\n .option(\"t\", {\n alias: \"timestamp\",\n type: \"number\",\n default: false,\n describe: \"Custom timestamp for the migration name\",\n })\n }\n\n async handler(args: yargs.Arguments<any & { path: string }>) {\n const timestamp = CommandUtils.getTimestamp(args.timestamp)\n const extension = args.outputJs ? \".js\" : \".ts\"\n const fullPath = args.path.startsWith(\"/\")\n ? args.path\n : path.resolve(process.cwd(), args.path)\n const filename = timestamp + \"-\" + path.basename(fullPath) + extension\n\n let dataSource: DataSource | undefined = undefined\n try {\n dataSource = await CommandUtils.loadDataSource(\n path.resolve(process.cwd(), args.dataSource as string),\n )\n dataSource.setOptions({\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: false,\n })\n await dataSource.initialize()\n\n const upSqls: string[] = [],\n downSqls: string[] = []\n\n try {\n const sqlInMemory = await dataSource.driver\n .createSchemaBuilder()\n .log()\n\n if (args.pretty) {\n sqlInMemory.upQueries.forEach((upQuery) => {\n upQuery.query = MigrationGenerateCommand.prettifyQuery(\n upQuery.query,\n )\n })\n sqlInMemory.downQueries.forEach((downQuery) => {\n downQuery.query =\n MigrationGenerateCommand.prettifyQuery(\n downQuery.query,\n )\n })\n }\n\n sqlInMemory.upQueries.forEach((upQuery) => {\n upSqls.push(\n \" await queryRunner.query(`\" +\n upQuery.query.replaceAll(\"`\", \"\\\\`\") +\n \"`\" +\n MigrationGenerateCommand.queryParams(\n upQuery.parameters,\n ) +\n \");\",\n )\n })\n sqlInMemory.downQueries.forEach((downQuery) => {\n downSqls.push(\n \" await queryRunner.query(`\" +\n downQuery.query.replaceAll(\"`\", \"\\\\`\") +\n \"`\" +\n MigrationGenerateCommand.queryParams(\n downQuery.parameters,\n ) +\n \");\",\n )\n })\n } finally {\n await dataSource.destroy()\n }\n\n if (!upSqls.length) {\n if (args.check) {\n console.log(\n ansi.green`No changes in database schema were found`,\n )\n process.exit(0)\n } else {\n console.log(\n ansi.yellow`No changes in database schema were found - cannot generate a migration. To create a new empty migration use \"typeorm migration:create\" command`,\n )\n process.exit(1)\n }\n } else if (!args.path) {\n console.log(ansi.yellow`Please specify a migration path`)\n process.exit(1)\n }\n\n const fileContent = args.outputJs\n ? MigrationGenerateCommand.getJavascriptTemplate(\n path.basename(fullPath),\n timestamp,\n upSqls,\n downSqls.reverse(),\n )\n : MigrationGenerateCommand.getTemplate(\n path.basename(fullPath),\n timestamp,\n upSqls,\n downSqls.reverse(),\n )\n\n if (args.check) {\n console.log(\n ansi.yellow`Unexpected changes in database schema were found in check mode:\\n\\n${ansi.white(\n fileContent,\n )}`,\n )\n process.exit(1)\n }\n\n if (args.dryrun) {\n console.log(\n ansi.green(\n `Migration ${ansi.blue(\n fullPath + extension,\n )} has content:\\n\\n${ansi.white(fileContent)}`,\n ),\n )\n } else {\n const migrationFileName =\n path.dirname(fullPath) + \"/\" + filename\n await CommandUtils.createFile(migrationFileName, fileContent)\n\n console.log(\n ansi.green`Migration ${ansi.blue(\n migrationFileName,\n )} has been generated successfully.`,\n )\n if (args.exitProcess !== false) {\n process.exit(0)\n }\n }\n } catch (err) {\n PlatformTools.logCmdErr(\"Error during migration generation:\", err)\n process.exit(1)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Formats query parameters for migration queries if parameters actually exist\n */\n protected static queryParams(parameters: any[] | undefined): string {\n if (!parameters || !parameters.length) {\n return \"\"\n }\n\n return `, ${JSON.stringify(parameters)}`\n }\n\n /**\n * Gets contents of the migration file.\n */\n protected static getTemplate(\n name: string,\n timestamp: number,\n upSqls: string[],\n downSqls: string[],\n ): string {\n const migrationName = `${camelCase(name, true)}${timestamp}`\n\n return `import { MigrationInterface, QueryRunner } from \"typeorm\";\n\nexport class ${migrationName} implements MigrationInterface {\n name = '${migrationName}'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n${upSqls.join(`\n`)}\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n${downSqls.join(`\n`)}\n }\n\n}\n`\n }\n\n /**\n * Gets contents of the migration file in Javascript.\n */\n protected static getJavascriptTemplate(\n name: string,\n timestamp: number,\n upSqls: string[],\n downSqls: string[],\n ): string {\n const migrationName = `${camelCase(name, true)}${timestamp}`\n\n return `module.exports = class ${migrationName} {\n name = '${migrationName}'\n\n async up(queryRunner) {\n${upSqls.join(`\n`)}\n }\n\n async down(queryRunner) {\n${downSqls.join(`\n`)}\n }\n}\n`\n }\n\n /**\n *\n */\n protected static prettifyQuery(query: string) {\n const formattedQuery = format(query, { indent: \" \" })\n return (\n \"\\n\" + formattedQuery.replace(/^/gm, \" \") + \"\\n \"\n )\n }\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,22 @@
1
+ import { ObjectType } from "../common/ObjectType";
2
+ import { ForeignKeyOptions } from "./options/ForeignKeyOptions";
3
+ /**
4
+ * Creates a database foreign key. Can be used on entity property or on entity.
5
+ * Can create foreign key with composite columns when used on entity.
6
+ * Warning! Don't use this with relations; relation decorators create foreign keys automatically.
7
+ */
8
+ export declare function ForeignKey<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), options?: ForeignKeyOptions): PropertyDecorator;
9
+ /**
10
+ * Creates a database foreign key. Can be used on entity property or on entity.
11
+ * Can create foreign key with composite columns when used on entity.
12
+ * Warning! Don't use this with relations; relation decorators create foreign keys automatically.
13
+ */
14
+ export declare function ForeignKey<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), inverseSide: string | ((object: T) => any), options?: ForeignKeyOptions): PropertyDecorator;
15
+ /**
16
+ * Creates a database foreign key. Can be used on entity property or on entity.
17
+ * Can create foreign key with composite columns when used on entity.
18
+ * Warning! Don't use this with relations; relation decorators create foreign keys automatically.
19
+ */
20
+ export declare function ForeignKey<T, C extends (readonly [] | readonly string[]) & (number extends C["length"] ? readonly [] : unknown)>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), columnNames: C, referencedColumnNames: {
21
+ [K in keyof C]: string;
22
+ }, options?: ForeignKeyOptions): ClassDecorator;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForeignKey = ForeignKey;
4
+ const globals_1 = require("../globals");
5
+ const ObjectUtils_1 = require("../util/ObjectUtils");
6
+ /**
7
+ * Creates a database foreign key. Can be used on entity property or on entity.
8
+ * Can create foreign key with composite columns when used on entity.
9
+ * Warning! Don't use this with relations; relation decorators create foreign keys automatically.
10
+ */
11
+ function ForeignKey(typeFunctionOrTarget, inverseSideOrColumnNamesOrOptions, referencedColumnNamesOrOptions, maybeOptions) {
12
+ const inverseSide = typeof inverseSideOrColumnNamesOrOptions === "string" ||
13
+ typeof inverseSideOrColumnNamesOrOptions === "function"
14
+ ? inverseSideOrColumnNamesOrOptions
15
+ : undefined;
16
+ const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)
17
+ ? inverseSideOrColumnNamesOrOptions
18
+ : undefined;
19
+ const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)
20
+ ? referencedColumnNamesOrOptions
21
+ : undefined;
22
+ const options = ObjectUtils_1.ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&
23
+ !Array.isArray(inverseSideOrColumnNamesOrOptions)
24
+ ? inverseSideOrColumnNamesOrOptions
25
+ : ObjectUtils_1.ObjectUtils.isObject(referencedColumnNamesOrOptions) &&
26
+ !Array.isArray(referencedColumnNamesOrOptions)
27
+ ? referencedColumnNamesOrOptions
28
+ : maybeOptions;
29
+ return function (clsOrObject, propertyName) {
30
+ (0, globals_1.getMetadataArgsStorage)().foreignKeys.push({
31
+ target: propertyName
32
+ ? clsOrObject.constructor
33
+ : clsOrObject,
34
+ propertyName: propertyName,
35
+ type: typeFunctionOrTarget,
36
+ inverseSide,
37
+ columnNames,
38
+ referencedColumnNames,
39
+ ...options,
40
+ });
41
+ };
42
+ }
43
+
44
+ //# sourceMappingURL=ForeignKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/decorator/ForeignKey.ts"],"names":[],"mappings":";;AAgDA,gCAuDC;AAtGD,wCAAmD;AAEnD,qDAAiD;AAwCjD;;;;GAIG;AACH,SAAgB,UAAU,CAKtB,oBAA8D,EAC9D,iCAIuB,EACvB,8BAEuB,EACvB,YAAgC;IAEhC,MAAM,WAAW,GACb,OAAO,iCAAiC,KAAK,QAAQ;QACrD,OAAO,iCAAiC,KAAK,UAAU;QACnD,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAChE,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;QACvE,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,OAAO,GACT,yBAAW,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACvD,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAC7C,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,yBAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACpD,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAChD,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,YAAY,CAAA;IAEtB,OAAO,UACH,WAA8B,EAC9B,YAA8B;QAE9B,IAAA,gCAAsB,GAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YACtC,MAAM,EAAE,YAAY;gBAChB,CAAC,CAAC,WAAW,CAAC,WAAW;gBACzB,CAAC,CAAE,WAAwB;YAC/B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,WAAW;YACX,WAAW;YACX,qBAAqB;YACrB,GAAI,OAA6B;SACV,CAAC,CAAA;IAChC,CAAC,CAAA;AACL,CAAC","file":"ForeignKey.js","sourcesContent":["import { ObjectType } from \"../common/ObjectType\"\nimport { getMetadataArgsStorage } from \"../globals\"\nimport { ForeignKeyMetadataArgs } from \"../metadata-args/ForeignKeyMetadataArgs\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { ForeignKeyOptions } from \"./options/ForeignKeyOptions\"\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSide: string | ((object: T) => any),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n columnNames: C,\n referencedColumnNames: { [K in keyof C]: string },\n options?: ForeignKeyOptions,\n): ClassDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSideOrColumnNamesOrOptions?:\n | string\n | ((object: T) => any)\n | C\n | ForeignKeyOptions,\n referencedColumnNamesOrOptions?:\n | { [K in keyof C]: string }\n | ForeignKeyOptions,\n maybeOptions?: ForeignKeyOptions,\n): ClassDecorator & PropertyDecorator {\n const inverseSide =\n typeof inverseSideOrColumnNamesOrOptions === \"string\" ||\n typeof inverseSideOrColumnNamesOrOptions === \"function\"\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : undefined\n\n const options =\n ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&\n !Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : ObjectUtils.isObject(referencedColumnNamesOrOptions) &&\n !Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : maybeOptions\n\n return function (\n clsOrObject: Function | Object,\n propertyName?: string | symbol,\n ) {\n getMetadataArgsStorage().foreignKeys.push({\n target: propertyName\n ? clsOrObject.constructor\n : (clsOrObject as Function),\n propertyName: propertyName,\n type: typeFunctionOrTarget,\n inverseSide,\n columnNames,\n referencedColumnNames,\n ...(options as ForeignKeyOptions),\n } as ForeignKeyMetadataArgs)\n }\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,24 @@
1
+ import { DeferrableType } from "../../metadata/types/DeferrableType";
2
+ import { OnDeleteType } from "../../metadata/types/OnDeleteType";
3
+ import { OnUpdateType } from "../../metadata/types/OnUpdateType";
4
+ /**
5
+ * Describes all foreign key options.
6
+ */
7
+ export interface ForeignKeyOptions {
8
+ /**
9
+ * Name of the foreign key constraint.
10
+ */
11
+ name?: string;
12
+ /**
13
+ * Database cascade action on delete.
14
+ */
15
+ onDelete?: OnDeleteType;
16
+ /**
17
+ * Database cascade action on update.
18
+ */
19
+ onUpdate?: OnUpdateType;
20
+ /**
21
+ * Indicate if foreign key constraints can be deferred.
22
+ */
23
+ deferrable?: DeferrableType;
24
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=ForeignKeyOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/decorator/options/ForeignKeyOptions.ts"],"names":[],"mappings":"","file":"ForeignKeyOptions.js","sourcesContent":["import { DeferrableType } from \"../../metadata/types/DeferrableType\"\nimport { OnDeleteType } from \"../../metadata/types/OnDeleteType\"\nimport { OnUpdateType } from \"../../metadata/types/OnUpdateType\"\n\n/**\n * Describes all foreign key options.\n */\nexport interface ForeignKeyOptions {\n /**\n * Name of the foreign key constraint.\n */\n name?: string\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType\n}\n"],"sourceRoot":"../.."}
@@ -13,7 +13,7 @@ const NativescriptDriver_1 = require("./nativescript/NativescriptDriver");
13
13
  const SqljsDriver_1 = require("./sqljs/SqljsDriver");
14
14
  const MysqlDriver_1 = require("./mysql/MysqlDriver");
15
15
  const PostgresDriver_1 = require("./postgres/PostgresDriver");
16
- const ExpoDriver_1 = require("./expo/ExpoDriver");
16
+ const ExpoDriverFactory_1 = require("./expo/ExpoDriverFactory");
17
17
  const AuroraMysqlDriver_1 = require("./aurora-mysql/AuroraMysqlDriver");
18
18
  const AuroraPostgresDriver_1 = require("./aurora-postgres/AuroraPostgresDriver");
19
19
  const SapDriver_1 = require("./sap/SapDriver");
@@ -59,7 +59,7 @@ class DriverFactory {
59
59
  case "mongodb":
60
60
  return new MongoDriver_1.MongoDriver(connection);
61
61
  case "expo":
62
- return new ExpoDriver_1.ExpoDriver(connection);
62
+ return new ExpoDriverFactory_1.ExpoDriverFactory(connection).create();
63
63
  case "aurora-mysql":
64
64
  return new AuroraMysqlDriver_1.AuroraMysqlDriver(connection);
65
65
  case "aurora-postgres":
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/DriverFactory.ts"],"names":[],"mappings":";;;AAAA,oEAAgE;AAChE,mEAA+D;AAC/D,uDAAmD;AACnD,iEAA6D;AAC7D,wDAAoD;AACpD,wDAAoD;AACpD,2DAAuD;AACvD,wEAAoE;AACpE,0EAAsE;AACtE,qDAAiD;AACjD,qDAAiD;AACjD,8DAA0D;AAC1D,kDAA8C;AAC9C,wEAAoE;AACpE,iFAA6E;AAG7E,+CAA2C;AAC3C,8EAA0E;AAC1E,iEAA6D;AAC7D,2DAAuD;AAEvD;;GAEG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,UAAsB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAA;QACnC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,OAAO;gBACR,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,UAAU;gBACX,OAAO,IAAI,+BAAc,CAAC,UAAU,CAAC,CAAA;YACzC,KAAK,aAAa;gBACd,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,KAAK;gBACN,OAAO,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAA;YACpC,KAAK,SAAS;gBACV,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,QAAQ;gBACT,OAAO,IAAI,2BAAY,CAAC,UAAU,CAAC,CAAA;YACvC,KAAK,gBAAgB;gBACjB,OAAO,IAAI,yCAAmB,CAAC,UAAU,CAAC,CAAA;YAC9C,KAAK,SAAS;gBACV,OAAO,IAAI,6BAAa,CAAC,UAAU,CAAC,CAAA;YACxC,KAAK,cAAc;gBACf,OAAO,IAAI,uCAAkB,CAAC,UAAU,CAAC,CAAA;YAC7C,KAAK,cAAc;gBACf,OAAO,IAAI,qCAAiB,CAAC,UAAU,CAAC,CAAA;YAC5C,KAAK,OAAO;gBACR,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,QAAQ;gBACT,OAAO,IAAI,2BAAY,CAAC,UAAU,CAAC,CAAA;YACvC,KAAK,OAAO;gBACR,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,SAAS;gBACV,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,MAAM;gBACP,OAAO,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAA;YACrC,KAAK,cAAc;gBACf,OAAO,IAAI,qCAAiB,CAAC,UAAU,CAAC,CAAA;YAC5C,KAAK,iBAAiB;gBAClB,OAAO,IAAI,2CAAoB,CAAC,UAAU,CAAC,CAAA;YAC/C,KAAK,WAAW;gBACZ,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,SAAS;gBACV,OAAO,IAAI,6BAAa,CAAC,UAAU,CAAC,CAAA;YACxC;gBACI,MAAM,IAAI,uCAAkB,CAAC,IAAI,EAAE;oBAC/B,cAAc;oBACd,iBAAiB;oBACjB,gBAAgB;oBAChB,WAAW;oBACX,aAAa;oBACb,SAAS;oBACT,MAAM;oBACN,SAAS;oBACT,SAAS;oBACT,OAAO;oBACP,OAAO;oBACP,cAAc;oBACd,QAAQ;oBACR,UAAU;oBACV,cAAc;oBACd,KAAK;oBACL,QAAQ;oBACR,OAAO;oBACP,SAAS;iBACZ,CAAC,CAAA;QACV,CAAC;IACL,CAAC;CACJ;AArED,sCAqEC","file":"DriverFactory.js","sourcesContent":["import { MissingDriverError } from \"../error/MissingDriverError\"\nimport { CockroachDriver } from \"./cockroachdb/CockroachDriver\"\nimport { MongoDriver } from \"./mongodb/MongoDriver\"\nimport { SqlServerDriver } from \"./sqlserver/SqlServerDriver\"\nimport { OracleDriver } from \"./oracle/OracleDriver\"\nimport { SqliteDriver } from \"./sqlite/SqliteDriver\"\nimport { CordovaDriver } from \"./cordova/CordovaDriver\"\nimport { ReactNativeDriver } from \"./react-native/ReactNativeDriver\"\nimport { NativescriptDriver } from \"./nativescript/NativescriptDriver\"\nimport { SqljsDriver } from \"./sqljs/SqljsDriver\"\nimport { MysqlDriver } from \"./mysql/MysqlDriver\"\nimport { PostgresDriver } from \"./postgres/PostgresDriver\"\nimport { ExpoDriver } from \"./expo/ExpoDriver\"\nimport { AuroraMysqlDriver } from \"./aurora-mysql/AuroraMysqlDriver\"\nimport { AuroraPostgresDriver } from \"./aurora-postgres/AuroraPostgresDriver\"\nimport { Driver } from \"./Driver\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { SapDriver } from \"./sap/SapDriver\"\nimport { BetterSqlite3Driver } from \"./better-sqlite3/BetterSqlite3Driver\"\nimport { CapacitorDriver } from \"./capacitor/CapacitorDriver\"\nimport { SpannerDriver } from \"./spanner/SpannerDriver\"\n\n/**\n * Helps to create drivers.\n */\nexport class DriverFactory {\n /**\n * Creates a new driver depend on a given connection's driver type.\n */\n create(connection: DataSource): Driver {\n const { type } = connection.options\n switch (type) {\n case \"mysql\":\n return new MysqlDriver(connection)\n case \"postgres\":\n return new PostgresDriver(connection)\n case \"cockroachdb\":\n return new CockroachDriver(connection)\n case \"sap\":\n return new SapDriver(connection)\n case \"mariadb\":\n return new MysqlDriver(connection)\n case \"sqlite\":\n return new SqliteDriver(connection)\n case \"better-sqlite3\":\n return new BetterSqlite3Driver(connection)\n case \"cordova\":\n return new CordovaDriver(connection)\n case \"nativescript\":\n return new NativescriptDriver(connection)\n case \"react-native\":\n return new ReactNativeDriver(connection)\n case \"sqljs\":\n return new SqljsDriver(connection)\n case \"oracle\":\n return new OracleDriver(connection)\n case \"mssql\":\n return new SqlServerDriver(connection)\n case \"mongodb\":\n return new MongoDriver(connection)\n case \"expo\":\n return new ExpoDriver(connection)\n case \"aurora-mysql\":\n return new AuroraMysqlDriver(connection)\n case \"aurora-postgres\":\n return new AuroraPostgresDriver(connection)\n case \"capacitor\":\n return new CapacitorDriver(connection)\n case \"spanner\":\n return new SpannerDriver(connection)\n default:\n throw new MissingDriverError(type, [\n \"aurora-mysql\",\n \"aurora-postgres\",\n \"better-sqlite3\",\n \"capacitor\",\n \"cockroachdb\",\n \"cordova\",\n \"expo\",\n \"mariadb\",\n \"mongodb\",\n \"mssql\",\n \"mysql\",\n \"nativescript\",\n \"oracle\",\n \"postgres\",\n \"react-native\",\n \"sap\",\n \"sqlite\",\n \"sqljs\",\n \"spanner\",\n ])\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/driver/DriverFactory.ts"],"names":[],"mappings":";;;AAAA,oEAAgE;AAChE,mEAA+D;AAC/D,uDAAmD;AACnD,iEAA6D;AAC7D,wDAAoD;AACpD,wDAAoD;AACpD,2DAAuD;AACvD,wEAAoE;AACpE,0EAAsE;AACtE,qDAAiD;AACjD,qDAAiD;AACjD,8DAA0D;AAC1D,gEAA4D;AAC5D,wEAAoE;AACpE,iFAA6E;AAG7E,+CAA2C;AAC3C,8EAA0E;AAC1E,iEAA6D;AAC7D,2DAAuD;AAEvD;;GAEG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,UAAsB;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAA;QACnC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,OAAO;gBACR,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,UAAU;gBACX,OAAO,IAAI,+BAAc,CAAC,UAAU,CAAC,CAAA;YACzC,KAAK,aAAa;gBACd,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,KAAK;gBACN,OAAO,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAA;YACpC,KAAK,SAAS;gBACV,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,QAAQ;gBACT,OAAO,IAAI,2BAAY,CAAC,UAAU,CAAC,CAAA;YACvC,KAAK,gBAAgB;gBACjB,OAAO,IAAI,yCAAmB,CAAC,UAAU,CAAC,CAAA;YAC9C,KAAK,SAAS;gBACV,OAAO,IAAI,6BAAa,CAAC,UAAU,CAAC,CAAA;YACxC,KAAK,cAAc;gBACf,OAAO,IAAI,uCAAkB,CAAC,UAAU,CAAC,CAAA;YAC7C,KAAK,cAAc;gBACf,OAAO,IAAI,qCAAiB,CAAC,UAAU,CAAC,CAAA;YAC5C,KAAK,OAAO;gBACR,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,QAAQ;gBACT,OAAO,IAAI,2BAAY,CAAC,UAAU,CAAC,CAAA;YACvC,KAAK,OAAO;gBACR,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,SAAS;gBACV,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAA;YACtC,KAAK,MAAM;gBACP,OAAO,IAAI,qCAAiB,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAA;YACrD,KAAK,cAAc;gBACf,OAAO,IAAI,qCAAiB,CAAC,UAAU,CAAC,CAAA;YAC5C,KAAK,iBAAiB;gBAClB,OAAO,IAAI,2CAAoB,CAAC,UAAU,CAAC,CAAA;YAC/C,KAAK,WAAW;gBACZ,OAAO,IAAI,iCAAe,CAAC,UAAU,CAAC,CAAA;YAC1C,KAAK,SAAS;gBACV,OAAO,IAAI,6BAAa,CAAC,UAAU,CAAC,CAAA;YACxC;gBACI,MAAM,IAAI,uCAAkB,CAAC,IAAI,EAAE;oBAC/B,cAAc;oBACd,iBAAiB;oBACjB,gBAAgB;oBAChB,WAAW;oBACX,aAAa;oBACb,SAAS;oBACT,MAAM;oBACN,SAAS;oBACT,SAAS;oBACT,OAAO;oBACP,OAAO;oBACP,cAAc;oBACd,QAAQ;oBACR,UAAU;oBACV,cAAc;oBACd,KAAK;oBACL,QAAQ;oBACR,OAAO;oBACP,SAAS;iBACZ,CAAC,CAAA;QACV,CAAC;IACL,CAAC;CACJ;AArED,sCAqEC","file":"DriverFactory.js","sourcesContent":["import { MissingDriverError } from \"../error/MissingDriverError\"\nimport { CockroachDriver } from \"./cockroachdb/CockroachDriver\"\nimport { MongoDriver } from \"./mongodb/MongoDriver\"\nimport { SqlServerDriver } from \"./sqlserver/SqlServerDriver\"\nimport { OracleDriver } from \"./oracle/OracleDriver\"\nimport { SqliteDriver } from \"./sqlite/SqliteDriver\"\nimport { CordovaDriver } from \"./cordova/CordovaDriver\"\nimport { ReactNativeDriver } from \"./react-native/ReactNativeDriver\"\nimport { NativescriptDriver } from \"./nativescript/NativescriptDriver\"\nimport { SqljsDriver } from \"./sqljs/SqljsDriver\"\nimport { MysqlDriver } from \"./mysql/MysqlDriver\"\nimport { PostgresDriver } from \"./postgres/PostgresDriver\"\nimport { ExpoDriverFactory } from \"./expo/ExpoDriverFactory\"\nimport { AuroraMysqlDriver } from \"./aurora-mysql/AuroraMysqlDriver\"\nimport { AuroraPostgresDriver } from \"./aurora-postgres/AuroraPostgresDriver\"\nimport { Driver } from \"./Driver\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { SapDriver } from \"./sap/SapDriver\"\nimport { BetterSqlite3Driver } from \"./better-sqlite3/BetterSqlite3Driver\"\nimport { CapacitorDriver } from \"./capacitor/CapacitorDriver\"\nimport { SpannerDriver } from \"./spanner/SpannerDriver\"\n\n/**\n * Helps to create drivers.\n */\nexport class DriverFactory {\n /**\n * Creates a new driver depend on a given connection's driver type.\n */\n create(connection: DataSource): Driver {\n const { type } = connection.options\n switch (type) {\n case \"mysql\":\n return new MysqlDriver(connection)\n case \"postgres\":\n return new PostgresDriver(connection)\n case \"cockroachdb\":\n return new CockroachDriver(connection)\n case \"sap\":\n return new SapDriver(connection)\n case \"mariadb\":\n return new MysqlDriver(connection)\n case \"sqlite\":\n return new SqliteDriver(connection)\n case \"better-sqlite3\":\n return new BetterSqlite3Driver(connection)\n case \"cordova\":\n return new CordovaDriver(connection)\n case \"nativescript\":\n return new NativescriptDriver(connection)\n case \"react-native\":\n return new ReactNativeDriver(connection)\n case \"sqljs\":\n return new SqljsDriver(connection)\n case \"oracle\":\n return new OracleDriver(connection)\n case \"mssql\":\n return new SqlServerDriver(connection)\n case \"mongodb\":\n return new MongoDriver(connection)\n case \"expo\":\n return new ExpoDriverFactory(connection).create()\n case \"aurora-mysql\":\n return new AuroraMysqlDriver(connection)\n case \"aurora-postgres\":\n return new AuroraPostgresDriver(connection)\n case \"capacitor\":\n return new CapacitorDriver(connection)\n case \"spanner\":\n return new SpannerDriver(connection)\n default:\n throw new MissingDriverError(type, [\n \"aurora-mysql\",\n \"aurora-postgres\",\n \"better-sqlite3\",\n \"capacitor\",\n \"cockroachdb\",\n \"cordova\",\n \"expo\",\n \"mariadb\",\n \"mongodb\",\n \"mssql\",\n \"mysql\",\n \"nativescript\",\n \"oracle\",\n \"postgres\",\n \"react-native\",\n \"sap\",\n \"sqlite\",\n \"sqljs\",\n \"spanner\",\n ])\n }\n }\n}\n"],"sourceRoot":".."}
@@ -337,16 +337,14 @@ class CockroachDriver {
337
337
  return value;
338
338
  // manually convert enum array to array of values (pg does not support, see https://github.com/brianc/node-pg-types/issues/56)
339
339
  value = value
340
- .substr(1, value.length - 2)
340
+ .slice(1, -1)
341
341
  .split(",")
342
342
  .map((val) => {
343
343
  // replace double quotes from the beginning and from the end
344
344
  if (val.startsWith(`"`) && val.endsWith(`"`))
345
345
  val = val.slice(1, -1);
346
- // replace double escaped backslash to single escaped e.g. \\\\ -> \\
347
- val = val.replace(/(\\\\)/g, "\\");
348
- // replace escaped double quotes to non-escaped e.g. \"asd\" -> "asd"
349
- return val.replace(/(\\")/g, '"');
346
+ // replace escaped backslash and double quotes
347
+ return val.replace(/\\(\\|")/g, "$1");
350
348
  });
351
349
  // convert to number if that exists in possible enum options
352
350
  value = value.map((val) => {