From 127167c863c2d8fee356f2cab84b5f53e1802271 Mon Sep 17 00:00:00 2001 From: Sergey Tatarintsev Date: Tue, 29 Nov 2022 14:03:03 +0100 Subject: [PATCH] fix(client): Don't recompute extensions list on every access (#16520) --- packages/client/src/runtime/core/extensions/$extends.ts | 2 +- .../client/tests/functional/extensions/enabled/extends.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/client/src/runtime/core/extensions/$extends.ts b/packages/client/src/runtime/core/extensions/$extends.ts index 92fbc937f421..585eaa2af1dd 100644 --- a/packages/client/src/runtime/core/extensions/$extends.ts +++ b/packages/client/src/runtime/core/extensions/$extends.ts @@ -94,7 +94,7 @@ export function $extends(this: Client, extension: Args | ((client: Client) => Cl const oldClient = unapplyModelsAndClientExtensions(this) const newClient = Object.create(oldClient, { _extensions: { - get: () => this._extensions.append(extension), + value: this._extensions.append(extension), }, }) diff --git a/packages/client/tests/functional/extensions/enabled/extends.ts b/packages/client/tests/functional/extensions/enabled/extends.ts index 54878d3fae02..b96b84cbd35b 100644 --- a/packages/client/tests/functional/extensions/enabled/extends.ts +++ b/packages/client/tests/functional/extensions/enabled/extends.ts @@ -14,4 +14,10 @@ testMatrix.setupTestSuite(() => { expectTypeOf(xprisma).not.toHaveProperty('$use') expect(await xprisma.user.findMany()).toEqual([]) }) + + test('does not recompute extensions property on every access', () => { + const xprisma = prisma.$extends({}) + + expect((xprisma as any)._extensions).toBe((xprisma as any)._extensions) + }) })