Repository Analysis

typeorm/typeorm

TypeScript & JavaScript ORM for Node.js — supports PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, and more.

9.1 Low AI signal View on GitHub
9.1
Adjusted Score
9.1
Raw Score
100%
Time Factor
2026-05-28
Last Push
36,523
Stars
TypeScript
Language
346,978
Lines of Code
3448
Files
351
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 270HIGH 4MEDIUM 0LOW 77

Pattern Findings

351 matches across 6 categories. Click a row to expand file-level details.

Hallucination Indicators270 hits · 3050 pts
SeverityFileLineSnippet
CRITICALtest/github-issues/4719/issue-4719.test.ts42 loadedPost.hstoreObj.should.be.deep.equal({
CRITICALtest/github-issues/4719/issue-4719.test.ts68 loadedPost.hstoreObj.should.be.deep.equal({
CRITICALtest/github-issues/306/issue-306.test.ts45 loadedRace.duration.durationDays.should.be.equal(1)
CRITICALtest/github-issues/306/issue-306.test.ts46 loadedRace.duration.durationHours.should.be.equal(10)
CRITICALtest/github-issues/306/issue-306.test.ts47 loadedRace.duration.durationMinutes.should.be.equal(30)
CRITICALtest/github-issues/620/issue-620.test.ts40 loadedCat.dog.DogID.should.be.equal("Simba")
CRITICALtest/github-issues/2779/issue-2779.test.ts41 post.roles.should.be.deep.equal(targetValue)
CRITICALtest/github-issues/2779/issue-2779.test.ts50 loadedPost.roles.should.be.deep.equal(targetValue)
CRITICALtest/github-issues/1960/issue-1960.test.ts27 sqlInMemory.upQueries.length.should.be.equal(0)
CRITICALtest/github-issues/3120/issue-3120.test.ts133 loadedLog.person.name.should.be.equal("Test Person #1")
CRITICALtest/github-issues/3120/issue-3120.test.ts134 loadedLog.actionDetails.description.should.be.equal(
CRITICALtest/github-issues/3120/issue-3120.test.ts137 loadedLog.addresses.length.should.be.equal(3)
CRITICALtest/github-issues/9272/issue-9272.test.ts82 user.address.latLong.should.not.haveOwnProperty("longitude")
CRITICALtest/github-issues/9272/issue-9272.test.ts84 user.address.latLong.latitude.should.equal(-23)
CRITICALtest/github-issues/7521/issue-7521.test.ts27 sqlInMemory.upQueries.length.should.be.greaterThan(0)
CRITICALtest/github-issues/7521/issue-7521.test.ts28 sqlInMemory.downQueries.length.should.be.greaterThan(0)
CRITICALtest/github-issues/7521/issue-7521.test.ts39 sqlInMemory.upQueries.length.should.be.equal(0)
CRITICALtest/github-issues/7521/issue-7521.test.ts40 sqlInMemory.downQueries.length.should.be.equal(0)
CRITICALtest/github-issues/2044/issue-2044.test.ts45 resultPhoto.user.id.should.be.eql(userId)
CRITICALtest/github-issues/7541/issue-7541.test.ts27 sqlInMemory.upQueries.length.should.be.greaterThan(0)
CRITICALtest/github-issues/7541/issue-7541.test.ts28 sqlInMemory.downQueries.length.should.be.greaterThan(0)
CRITICALtest/github-issues/7541/issue-7541.test.ts39 sqlInMemory.upQueries.length.should.be.equal(0)
CRITICALtest/github-issues/7541/issue-7541.test.ts40 sqlInMemory.downQueries.length.should.be.equal(0)
CRITICAL…onal/repository/increment/repository-increment.test.ts279 loadedUser.friend.sent.should.be.equal(5)
CRITICAL…onal/repository/decrement/repository-decrement.test.ts279 loadedUser.friend.sent.should.be.equal(-15)
CRITICAL…-relations/repository-set-add-remove-relations.test.ts159 loadedPost.manyCategories.length.should.be.equal(1)
CRITICAL…-relations/repository-set-add-remove-relations.test.ts206 loadedCategory.manyPosts.length.should.be.equal(1)
CRITICAL…tions/basic-lazy-relation/basic-lazy-relations.test.ts59 await savedPost.categories.should.eventually.be.eql([
CRITICAL…tions/basic-lazy-relation/basic-lazy-relations.test.ts105 await savedPost.twoSideCategories.should.eventually.be.eql([
CRITICAL…tions/basic-lazy-relation/basic-lazy-relations.test.ts152 await newUser.profile.should.eventually.be.eql(profile)
CRITICAL…olumns/named-tables-and-columns-lazy-relations.test.ts50 await savedPost.categories.should.eventually.be.eql([
CRITICAL…olumns/named-tables-and-columns-lazy-relations.test.ts98 await savedPost.twoSideCategories.should.eventually.be.eql([
CRITICAL…tions/named-tables/named-tables-lazy-relations.test.ts50 await savedPost.categories.should.eventually.be.eql([
CRITICAL…tions/named-tables/named-tables-lazy-relations.test.ts98 await savedPost.twoSideCategories.should.eventually.be.eql([
CRITICAL…ons/named-columns/named-columns-lazy-relations.test.ts50 await savedPost.categories.should.eventually.be.eql([
CRITICAL…ons/named-columns/named-columns-lazy-relations.test.ts96 await savedPost.twoSideCategories.should.eventually.be.eql([
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts60 postIt.owner.should.be.an.instanceOf(Employee)
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts61 postIt.owner.name.should.be.equal("alicefoo")
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts62 postIt.owner.employeeName.should.be.equal("Alice Foo")
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts68 sticky.owner.should.be.an.instanceOf(Author)
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts69 sticky.owner.name.should.be.equal("bobbar")
CRITICAL…nce/single-table/no-type-column/no-type-column.test.ts70 sticky.owner.authorName.should.be.equal("Bob Bar")
CRITICAL…/repository-actions/mongodb-repository-actions.test.ts95 mergedPost.counters.likes.should.be.equal(2)
CRITICAL…/repository-actions/mongodb-repository-actions.test.ts96 mergedPost.counters.viewer.name.should.be.equal("Hello World")
CRITICAL…godb/basic/array-columns/mongodb-array-columns.test.ts52 loadedPost.other1.length.should.be.equal(0)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts53 loadedPost.counters.likes.should.be.equal(5)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts54 loadedPost.counters.comments.should.be.equal(1)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts55 loadedPost.counters.favorites.should.be.equal(10)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts56 loadedPost.counters.information.should.be.instanceOf(
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts59 loadedPost.counters.information.description.should.be.equal(
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts78 loadedUpdatedPost.counters.likes.should.be.equal(5)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts79 loadedUpdatedPost.counters.comments.should.be.equal(2)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts80 loadedUpdatedPost.counters.favorites.should.be.equal(10)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts81 loadedUpdatedPost.counters.information.should.be.instanceOf(
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts84 loadedUpdatedPost.counters.information.description.should.be.equal(
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts123 loadedPost.counters.likes.should.be.eql(5)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts124 loadedPost.counters.comments.should.be.eql(1)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts125 loadedPost.counters.favorites.should.be.eql(10)
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts126 loadedPost.counters.information.description.should.be.eql(
CRITICAL…asic/embedded-columns/mongodb-embedded-columns.test.ts155 loadedPosts[0]!.counters.information.visible.should.be.equal(
210 more matches not shown…
Over-Commented Block37 hits · 37 pts
SeverityFileLineSnippet
LOWtest/github-issues/3118/issue-3118.test.ts81 relations: {
LOWextra/typeorm-class-transformer-shim.js1// this "shim" can be used on the frontend to make class-transformer to work with typeorm models automatically
LOWextra/typeorm-model-shim.js1// this "shim" can be used on the frontend to prevent from errors on undefined
LOWpackages/codemod/src/transforms/ast-helpers.ts501 )
LOW…/codemod/src/transforms/v1/connection-to-datasource.ts661 // on parameters typed with those options.
LOW.github/workflows/publish-package.yml1# Publishing strategy:
LOWsrc/metadata-builder/EntityMetadataValidator.ts241 }
LOWsrc/driver/react-native/ReactNativeDriver.ts861
LOWsrc/driver/react-native/ReactNativeDriver.ts881 // "precision:",
LOWsrc/driver/react-native/ReactNativeDriver.ts901 // console.log(
LOWsrc/driver/oracle/OracleDriver.ts901 // tableColumn.name,
LOWsrc/driver/oracle/OracleDriver.ts921 // "comment:",
LOWsrc/driver/oracle/OracleDriver.ts941 // tableColumn.onUpdate,
LOWsrc/driver/oracle/OracleDriver.ts961 // tableColumn.generatedType,
LOWsrc/driver/expo/ExpoDriver.ts1import type { DataSource } from "../../data-source/DataSource"
LOWsrc/driver/postgres/PostgresDriver.ts1521 // if (isColumnChanged) {
LOWsrc/driver/postgres/PostgresDriver.ts1541 // columnMetadata.isArray,
LOWsrc/driver/postgres/PostgresDriver.ts1561 // tableColumn.enum &&
LOWsrc/driver/postgres/PostgresDriver.ts1581 // this.normalizeIsUnique(columnMetadata),
LOWsrc/driver/postgres/PostgresDriver.ts1601 // columnMetadata.collation,
LOWsrc/driver/mysql/MysqlDriver.ts361 // if (!(this.options.host || (this.options.extra && this.options.extra.socketPath)) && !this.options.socketPath
LOWsrc/driver/mysql/MysqlQueryRunner.ts2601 // Short Version:
LOWsrc/driver/sqlserver/SqlServerDriver.ts301 this.options.replication
LOWsrc/driver/sqlserver/SqlServerDriver.ts921 // "type:",
LOWsrc/driver/sqlserver/SqlServerDriver.ts941 // columnMetadata.isGenerated,
LOWsrc/driver/sqlserver/SqlServerDriver.ts961 // columnMetadata.isNullable,
LOWsrc/driver/spanner/SpannerDriver.ts721 // columnMetadata.databaseName,
LOWsrc/driver/spanner/SpannerDriver.ts741 // columnMetadata.generatedType,
LOWsrc/driver/spanner/SpannerQueryRunner.ts1841 // const hasTable = await this.hasTable(this.getTypeormMetadataTableName())
LOWsrc/driver/spanner/SpannerQueryRunner.ts1861 // ? ` AND \`T\`.\`NAME\` IN (${escapedViewNames})`
LOWsrc/driver/cockroachdb/CockroachDriver.ts301 ).database
LOWsrc/persistence/SubjectExecutor.ts921 })
LOW…ersistence/subject-builder/ManyToManySubjectBuilder.ts141 const relatedEntitySubject = this.subjects.find((subject) => {
LOW…e/subject-builder/OneToOneInverseSideSubjectBuilder.ts121 operateSubject.entity === relatedEntity
LOWsrc/query-builder/InsertQueryBuilder.ts1541 if (column.isVersion && value === undefined) {
LOWsrc/query-builder/SelectQueryBuilder.ts3241 // if (join.select) {
LOWsrc/query-builder/SelectQueryBuilder.ts4201 // // this is not building correctly now???
Fake / Example Data29 hits · 32 pts
SeverityFileLineSnippet
LOWtest/benchmark/bulk-save-case2/bulk-save-case2.test.ts31 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel faucibus nunc. Etiam volu
LOWtest/benchmark/bulk-save-case2/bulk-save-case2.test.ts31 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel faucibus nunc. Etiam volu
LOW…/bulk-save-querybuilder/bulk-save-querybuilder.test.ts31 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel faucibus nunc. Etiam volu
LOW…/bulk-save-querybuilder/bulk-save-querybuilder.test.ts31 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vel faucibus nunc. Etiam volu
LOWtest/github-issues/1123/issue-1123.test.ts29 author.name = "Jane Doe"
LOWtest/github-issues/1123/issue-1123.test.ts55 name: "Jane Doe",
LOWtest/github-issues/10569/issue-10569.test.ts31 name: "John Doe",
LOWtest/github-issues/2128/issue-2128.test.ts38 author: "John Doe",
LOWtest/github-issues/2128/issue-2128.test.ts60 author: "John Doe",
LOWtest/github-issues/4106/issue-4106.test.ts28 human.name = "Jane Doe"
LOWtest/github-issues/1416/issue-1416.test.ts44 photoAuthor.name = "John Doe"
LOWtest/github-issues/215/issue-215.test.ts27 author.name = "John Doe"
LOWtest/github-issues/3416/issue-3416.test.ts31 unknownProp: "John Doe",
LOWtest/github-issues/1308/issue-1308.test.ts30 author.name = "Jane Doe"
LOWtest/github-issues/1308/issue-1308.test.ts42 .set({ name: "John Doe" })
LOWtest/github-issues/1308/issue-1308.test.ts51 .set({ name: "John Doe" })
LOWtest/github-issues/1308/issue-1308.test.ts52 .where("name = :name", { name: "Jane Doe" })
LOWtest/github-issues/4156/issue-4156.test.ts29 author.name = "Jane Doe"
LOW…ns/repository-aggregate-methods-with-relations.test.ts220 name: "John Doe",
LOW…ns/repository-aggregate-methods-with-relations.test.ts234 author: { id: author1.id, name: "John Doe" },
LOWtest/functional/data-source/data-source.test.ts436 address: "123 Main St",
LOWtest/functional/query-runner/async-dispose.test.ts49 await queryRunner.sql`INSERT INTO "employee"("name", "companyId") VALUES ('John Doe', 100)`
LOW…onal/query-builder/update/query-builder-update.test.ts306 .set({ name: "John Doe" } as any)
LOW…onal/query-builder/delete/query-builder-delete.test.ts124 user1.name = "John Doe"
LOW…onal/query-builder/delete/query-builder-delete.test.ts126 user2.name = "Jane Doe"
LOWdocs/docs/guides/6-sequelize-migration.md239 name: "John Doe",
LOWdocs/docs/guides/6-sequelize-migration.md248employee.name = "John Doe"
LOWdocs/docs/guides/6-sequelize-migration.md256const employee = Employee.create({ name: "John Doe", title: "senior engineer" })
LOWdocs/docs/guides/6-sequelize-migration.md263const employee = await Employee.preload({ id: 1, name: "John Doe" })
Cross-Language Confusion (JS/TS)4 hits · 20 pts
SeverityFileLineSnippet
HIGH…epository/find-methods/repostiory-find-methods.test.ts159 it("should return True when matches the given criteria", () =>
HIGH…epository/find-methods/repostiory-find-methods.test.ts180 it("should return True when matches the given multiple criteria", () =>
HIGH…epository/find-methods/repostiory-find-methods.test.ts202 it("should return True when matches the given find options", () =>
HIGH…epository/find-methods/repostiory-find-methods.test.ts223 it("should return True when matches both criteria and find options", () =>
Hyper-Verbose Identifiers7 hits · 7 pts
SeverityFileLineSnippet
LOWtest/utils/test-utils.ts174export function setupSingleTestingConnection(
LOWtest/utils/test-utils.ts533export async function createTypeormMetadataTable(
LOWtest/github-issues/8444/issue-8444.test.ts13 async function bootstrapWithoutEntitySkipConstructor(): Promise<
LOWtest/functional/driver/MongoDriver.test.ts8 async function getConnectionUrlFromFakedMongoClient(
LOW…mod/src/transforms/v1/find-options-string-relations.ts46function convertRelationsArrayToObject(values: string[]): NestedObject {
LOWsrc/util/DirectoryExportedClassesLoader.ts15export async function importClassesFromDirectories(
LOWsrc/driver/mongodb/bson.typings.ts1590export declare function serializeWithBufferAndIndex(object: Document, finalBuffer: Uint8Array, options?: SerializeOption
Verbosity Indicators4 hits · 6 pts
SeverityFileLineSnippet
LOWsrc/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts2320 // Step 1: clear data for removed generated columns
LOWsrc/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts2354 // Step 2: add data for new generated columns
LOWsrc/driver/sqlite-abstract/AbstractSqliteQueryRunner.ts2380 // Step 3: update changed expressions
LOW…e/subject-builder/OneToOneInverseSideSubjectBuilder.ts84 // if related entity is null then we need to check if there a bind in the database and unset it