Skip to content

Commit 18f5c05

Browse files
committed
add typeRegistry to SavedObjectClientWrapperOptions
1 parent 6c8a015 commit 18f5c05

File tree

6 files changed

+40
-2
lines changed

6 files changed

+40
-2
lines changed

docs/development/core/server/kibana-plugin-server.savedobjectsclientwrapperoptions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ export interface SavedObjectsClientWrapperOptions
1818
| --- | --- | --- |
1919
| [client](./kibana-plugin-server.savedobjectsclientwrapperoptions.client.md) | <code>SavedObjectsClientContract</code> | |
2020
| [request](./kibana-plugin-server.savedobjectsclientwrapperoptions.request.md) | <code>KibanaRequest</code> | |
21+
| [typeRegistry](./kibana-plugin-server.savedobjectsclientwrapperoptions.typeregistry.md) | <code>ISavedObjectTypeRegistry</code> | |
2122

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [kibana-plugin-server](./kibana-plugin-server.md) &gt; [SavedObjectsClientWrapperOptions](./kibana-plugin-server.savedobjectsclientwrapperoptions.md) &gt; [typeRegistry](./kibana-plugin-server.savedobjectsclientwrapperoptions.typeregistry.md)
4+
5+
## SavedObjectsClientWrapperOptions.typeRegistry property
6+
7+
<b>Signature:</b>
8+
9+
```typescript
10+
typeRegistry: ISavedObjectTypeRegistry;
11+
```

src/core/server/saved_objects/saved_objects_service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ export class SavedObjectsService
400400
const repository = repositoryFactory.createScopedRepository(request);
401401
return new SavedObjectsClient(repository);
402402
},
403+
typeRegistry: this.typeRegistry,
403404
});
404405
if (this.clientFactoryProvider) {
405406
const clientFactory = this.clientFactoryProvider(repositoryFactory);

src/core/server/saved_objects/service/lib/scoped_client_provider.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919

2020
import { SavedObjectsClientProvider } from './scoped_client_provider';
21+
import { typeRegistryMock } from '../../saved_objects_type_registry.mock';
2122

2223
test(`uses default client factory when one isn't set`, () => {
2324
const returnValue = Symbol();
@@ -26,6 +27,7 @@ test(`uses default client factory when one isn't set`, () => {
2627

2728
const clientProvider = new SavedObjectsClientProvider({
2829
defaultClientFactory: defaultClientFactoryMock,
30+
typeRegistry: typeRegistryMock.create(),
2931
});
3032
const result = clientProvider.getClient(request);
3133

@@ -44,6 +46,7 @@ test(`uses custom client factory when one is set`, () => {
4446

4547
const clientProvider = new SavedObjectsClientProvider({
4648
defaultClientFactory: defaultClientFactoryMock,
49+
typeRegistry: typeRegistryMock.create(),
4750
});
4851
clientProvider.setClientFactory(customClientFactoryMock);
4952
const result = clientProvider.getClient(request);
@@ -68,6 +71,7 @@ test(`throws error when registering a wrapper with a duplicate id`, () => {
6871
const defaultClientFactoryMock = jest.fn();
6972
const clientProvider = new SavedObjectsClientProvider({
7073
defaultClientFactory: defaultClientFactoryMock,
74+
typeRegistry: typeRegistryMock.create(),
7175
});
7276
const firstClientWrapperFactoryMock = jest.fn();
7377
const secondClientWrapperFactoryMock = jest.fn();
@@ -80,9 +84,11 @@ test(`throws error when registering a wrapper with a duplicate id`, () => {
8084

8185
test(`invokes and uses wrappers in specified order`, () => {
8286
const defaultClient = Symbol();
87+
const typeRegistry = typeRegistryMock.create();
8388
const defaultClientFactoryMock = jest.fn().mockReturnValue(defaultClient);
8489
const clientProvider = new SavedObjectsClientProvider({
8590
defaultClientFactory: defaultClientFactoryMock,
91+
typeRegistry,
8692
});
8793
const firstWrappedClient = Symbol('first client');
8894
const firstClientWrapperFactoryMock = jest.fn().mockReturnValue(firstWrappedClient);
@@ -98,18 +104,22 @@ test(`invokes and uses wrappers in specified order`, () => {
98104
expect(firstClientWrapperFactoryMock).toHaveBeenCalledWith({
99105
request,
100106
client: secondWrapperClient,
107+
typeRegistry,
101108
});
102109
expect(secondClientWrapperFactoryMock).toHaveBeenCalledWith({
103110
request,
104111
client: defaultClient,
112+
typeRegistry,
105113
});
106114
});
107115

108116
test(`does not invoke or use excluded wrappers`, () => {
109117
const defaultClient = Symbol();
118+
const typeRegistry = typeRegistryMock.create();
110119
const defaultClientFactoryMock = jest.fn().mockReturnValue(defaultClient);
111120
const clientProvider = new SavedObjectsClientProvider({
112121
defaultClientFactory: defaultClientFactoryMock,
122+
typeRegistry,
113123
});
114124
const firstWrappedClient = Symbol('first client');
115125
const firstClientWrapperFactoryMock = jest.fn().mockReturnValue(firstWrappedClient);
@@ -128,6 +138,7 @@ test(`does not invoke or use excluded wrappers`, () => {
128138
expect(firstClientWrapperFactoryMock).toHaveBeenCalledWith({
129139
request,
130140
client: defaultClient,
141+
typeRegistry,
131142
});
132143
expect(secondClientWrapperFactoryMock).not.toHaveBeenCalled();
133144
});
@@ -137,6 +148,7 @@ test(`allows all wrappers to be excluded`, () => {
137148
const defaultClientFactoryMock = jest.fn().mockReturnValue(defaultClient);
138149
const clientProvider = new SavedObjectsClientProvider({
139150
defaultClientFactory: defaultClientFactoryMock,
151+
typeRegistry: typeRegistryMock.create(),
140152
});
141153
const firstWrappedClient = Symbol('first client');
142154
const firstClientWrapperFactoryMock = jest.fn().mockReturnValue(firstWrappedClient);

src/core/server/saved_objects/service/lib/scoped_client_provider.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import { PriorityCollection } from './priority_collection';
2020
import { SavedObjectsClientContract } from '../../types';
2121
import { SavedObjectsRepositoryFactory } from '../../saved_objects_service';
22+
import { ISavedObjectTypeRegistry } from '../../saved_objects_type_registry';
2223
import { KibanaRequest } from '../../../http';
2324

2425
/**
@@ -27,6 +28,7 @@ import { KibanaRequest } from '../../../http';
2728
*/
2829
export interface SavedObjectsClientWrapperOptions {
2930
client: SavedObjectsClientContract;
31+
typeRegistry: ISavedObjectTypeRegistry;
3032
request: KibanaRequest;
3133
}
3234

@@ -84,9 +86,17 @@ export class SavedObjectsClientProvider {
8486
}>();
8587
private _clientFactory: SavedObjectsClientFactory;
8688
private readonly _originalClientFactory: SavedObjectsClientFactory;
87-
88-
constructor({ defaultClientFactory }: { defaultClientFactory: SavedObjectsClientFactory }) {
89+
private readonly _typeRegistry: ISavedObjectTypeRegistry;
90+
91+
constructor({
92+
defaultClientFactory,
93+
typeRegistry,
94+
}: {
95+
defaultClientFactory: SavedObjectsClientFactory;
96+
typeRegistry: ISavedObjectTypeRegistry;
97+
}) {
8998
this._originalClientFactory = this._clientFactory = defaultClientFactory;
99+
this._typeRegistry = typeRegistry;
90100
}
91101

92102
addClientWrapperFactory(
@@ -129,6 +139,7 @@ export class SavedObjectsClientProvider {
129139
return factory({
130140
request,
131141
client: clientToWrap,
142+
typeRegistry: this._typeRegistry,
132143
});
133144
}, client);
134145
}

src/core/server/server.api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,8 @@ export interface SavedObjectsClientWrapperOptions {
16251625
client: SavedObjectsClientContract;
16261626
// (undocumented)
16271627
request: KibanaRequest;
1628+
// (undocumented)
1629+
typeRegistry: ISavedObjectTypeRegistry;
16281630
}
16291631

16301632
// @public

0 commit comments

Comments
 (0)