Skip to content

Commit 3d60eeb

Browse files
Merge pull request #538 from SoftwareBrothers/fix-move-register-adapter-to-global-scope
fix: move RegisteredAdapters to globak scope
2 parents b2a021f + 0325a2a commit 3d60eeb

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

src/admin-bro.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { OverridableComponent } from './frontend/utils/overridable-component'
1010

1111
describe('AdminBro', function () {
1212
beforeEach(function () {
13-
AdminBro.registeredAdapters = []
13+
global.RegisteredAdapters = []
1414
})
1515

1616
describe('#constructor', function () {
@@ -28,7 +28,7 @@ describe('AdminBro', function () {
2828

2929
it('adds given adapter to list off all available adapters', function () {
3030
AdminBro.registerAdapter(this.DatabaseAdapter)
31-
expect(AdminBro.registeredAdapters).to.have.lengthOf(1)
31+
expect(global.RegisteredAdapters).to.have.lengthOf(1)
3232
})
3333

3434
it('throws an error when adapter is not full', function () {

src/admin-bro.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@ class AdminBro {
7878

7979
public translateFunctions!: TranslateFunctions
8080

81-
public static registeredAdapters: Array<Adapter>
82-
8381
/**
8482
* Contains set of routes available within the application.
8583
* It is used by external plugins.
@@ -182,7 +180,7 @@ class AdminBro {
182180
this.initI18n()
183181

184182
const { databases, resources } = this.options
185-
const resourcesFactory = new ResourcesFactory(this, AdminBro.registeredAdapters)
183+
const resourcesFactory = new ResourcesFactory(this, global.RegisteredAdapters || [])
186184
this.resources = resourcesFactory.buildResources({ databases, resources })
187185
}
188186

@@ -231,7 +229,8 @@ class AdminBro {
231229
}
232230
// checking if both Database and Resource have at least isAdapterFor method
233231
if (Database.isAdapterFor && Resource.isAdapterFor) {
234-
AdminBro.registeredAdapters.push({ Database, Resource })
232+
global.RegisteredAdapters = global.RegisteredAdapters || []
233+
global.RegisteredAdapters.push({ Database, Resource })
235234
} else {
236235
throw new Error('Adapter elements has to be a subclass of AdminBro.BaseResource and AdminBro.BaseDatabase')
237236
}
@@ -365,7 +364,6 @@ class AdminBro {
365364
}
366365
}
367366

368-
AdminBro.registeredAdapters = []
369367
AdminBro.VERSION = VERSION
370368

371369
// eslint-disable-next-line @typescript-eslint/no-empty-interface

vendor-types/node/node.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ type UserComponentsMap = {[key: string]: string}
33
declare namespace NodeJS {
44
interface Global {
55
UserComponents: UserComponentsMap | null;
6+
RegisteredAdapters: Array<any> | null;
67
}
78
}

0 commit comments

Comments
 (0)