@backstage/plugin-search-backend 1.5.8 → 1.5.9

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @backstage/plugin-search-backend
2
2
 
3
+ ## 1.5.9
4
+
5
+ ### Patch Changes
6
+
7
+ - f4ba235: Split backend search plugin startup into "init" and "start" stages to ensure necessary initialization has happened before startup
8
+ - Updated dependencies
9
+ - @backstage/plugin-search-backend-node@1.2.23
10
+
3
11
  ## 1.5.8
4
12
 
5
13
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-search-backend",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "main": "../dist/alpha.cjs.js",
5
5
  "types": "../dist/alpha.d.ts"
6
6
  }
package/dist/alpha.cjs.js CHANGED
@@ -97,12 +97,13 @@ var alpha = backendPluginApi.createBackendPlugin({
97
97
  }
98
98
  const collators = searchIndexRegistry.getCollators();
99
99
  const decorators = searchIndexRegistry.getDecorators();
100
+ searchIndexService.init({
101
+ searchEngine,
102
+ collators,
103
+ decorators
104
+ });
100
105
  lifecycle.addStartupHook(async () => {
101
- await searchIndexService.start({
102
- searchEngine,
103
- collators,
104
- decorators
105
- });
106
+ await searchIndexService.start();
106
107
  });
107
108
  lifecycle.addShutdownHook(async () => {
108
109
  await searchIndexService.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.cjs.js","sources":["../src/alpha.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport {\n LunrSearchEngine,\n RegisterCollatorParameters,\n RegisterDecoratorParameters,\n SearchEngine,\n} from '@backstage/plugin-search-backend-node';\nimport {\n SearchEngineRegistryExtensionPoint,\n searchEngineRegistryExtensionPoint,\n searchIndexRegistryExtensionPoint,\n SearchIndexRegistryExtensionPoint,\n searchIndexServiceRef,\n} from '@backstage/plugin-search-backend-node/alpha';\n\nimport { createRouter } from './service/router';\n\nclass SearchIndexRegistry implements SearchIndexRegistryExtensionPoint {\n private collators: RegisterCollatorParameters[] = [];\n private decorators: RegisterDecoratorParameters[] = [];\n\n public addCollator(options: RegisterCollatorParameters): void {\n this.collators.push(options);\n }\n\n public addDecorator(options: RegisterDecoratorParameters): void {\n this.decorators.push(options);\n }\n\n public getCollators(): RegisterCollatorParameters[] {\n return this.collators;\n }\n\n public getDecorators(): RegisterDecoratorParameters[] {\n return this.decorators;\n }\n}\n\nclass SearchEngineRegistry implements SearchEngineRegistryExtensionPoint {\n private searchEngine: SearchEngine | null = null;\n\n public setSearchEngine(searchEngine: SearchEngine): void {\n if (this.searchEngine) {\n throw new Error('Multiple Search engines is not supported at this time');\n }\n this.searchEngine = searchEngine;\n }\n\n public getSearchEngine(): SearchEngine | null {\n return this.searchEngine;\n }\n}\n\n/**\n * The Search plugin is responsible for starting search indexing processes and return search results.\n * @alpha\n */\nexport default createBackendPlugin({\n pluginId: 'search',\n register(env) {\n const searchIndexRegistry = new SearchIndexRegistry();\n env.registerExtensionPoint(\n searchIndexRegistryExtensionPoint,\n searchIndexRegistry,\n );\n\n const searchEngineRegistry = new SearchEngineRegistry();\n env.registerExtensionPoint(\n searchEngineRegistryExtensionPoint,\n searchEngineRegistry,\n );\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n discovery: coreServices.discovery,\n permissions: coreServices.permissions,\n auth: coreServices.auth,\n http: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n lifecycle: coreServices.rootLifecycle,\n searchIndexService: searchIndexServiceRef,\n },\n async init({\n config,\n logger,\n discovery,\n permissions,\n auth,\n http,\n httpAuth,\n lifecycle,\n searchIndexService,\n }) {\n let searchEngine = searchEngineRegistry.getSearchEngine();\n if (!searchEngine) {\n searchEngine = new LunrSearchEngine({\n logger,\n });\n }\n\n const collators = searchIndexRegistry.getCollators();\n const decorators = searchIndexRegistry.getDecorators();\n\n lifecycle.addStartupHook(async () => {\n await searchIndexService.start({\n searchEngine: searchEngine!,\n collators,\n decorators,\n });\n });\n\n lifecycle.addShutdownHook(async () => {\n await searchIndexService.stop();\n });\n\n const router = await createRouter({\n config,\n discovery,\n permissions,\n auth,\n httpAuth,\n logger,\n engine: searchEngine,\n types: searchIndexService.getDocumentTypes(),\n });\n\n http.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","searchIndexRegistryExtensionPoint","searchEngineRegistryExtensionPoint","coreServices","searchIndexServiceRef","LunrSearchEngine","router","createRouter"],"mappings":"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"}
1
+ {"version":3,"file":"alpha.cjs.js","sources":["../src/alpha.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport {\n LunrSearchEngine,\n RegisterCollatorParameters,\n RegisterDecoratorParameters,\n SearchEngine,\n} from '@backstage/plugin-search-backend-node';\nimport {\n SearchEngineRegistryExtensionPoint,\n searchEngineRegistryExtensionPoint,\n searchIndexRegistryExtensionPoint,\n SearchIndexRegistryExtensionPoint,\n searchIndexServiceRef,\n} from '@backstage/plugin-search-backend-node/alpha';\n\nimport { createRouter } from './service/router';\n\nclass SearchIndexRegistry implements SearchIndexRegistryExtensionPoint {\n private collators: RegisterCollatorParameters[] = [];\n private decorators: RegisterDecoratorParameters[] = [];\n\n public addCollator(options: RegisterCollatorParameters): void {\n this.collators.push(options);\n }\n\n public addDecorator(options: RegisterDecoratorParameters): void {\n this.decorators.push(options);\n }\n\n public getCollators(): RegisterCollatorParameters[] {\n return this.collators;\n }\n\n public getDecorators(): RegisterDecoratorParameters[] {\n return this.decorators;\n }\n}\n\nclass SearchEngineRegistry implements SearchEngineRegistryExtensionPoint {\n private searchEngine: SearchEngine | null = null;\n\n public setSearchEngine(searchEngine: SearchEngine): void {\n if (this.searchEngine) {\n throw new Error('Multiple Search engines is not supported at this time');\n }\n this.searchEngine = searchEngine;\n }\n\n public getSearchEngine(): SearchEngine | null {\n return this.searchEngine;\n }\n}\n\n/**\n * The Search plugin is responsible for starting search indexing processes and return search results.\n * @alpha\n */\nexport default createBackendPlugin({\n pluginId: 'search',\n register(env) {\n const searchIndexRegistry = new SearchIndexRegistry();\n env.registerExtensionPoint(\n searchIndexRegistryExtensionPoint,\n searchIndexRegistry,\n );\n\n const searchEngineRegistry = new SearchEngineRegistry();\n env.registerExtensionPoint(\n searchEngineRegistryExtensionPoint,\n searchEngineRegistry,\n );\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n discovery: coreServices.discovery,\n permissions: coreServices.permissions,\n auth: coreServices.auth,\n http: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n lifecycle: coreServices.rootLifecycle,\n searchIndexService: searchIndexServiceRef,\n },\n async init({\n config,\n logger,\n discovery,\n permissions,\n auth,\n http,\n httpAuth,\n lifecycle,\n searchIndexService,\n }) {\n let searchEngine = searchEngineRegistry.getSearchEngine();\n if (!searchEngine) {\n searchEngine = new LunrSearchEngine({\n logger,\n });\n }\n\n const collators = searchIndexRegistry.getCollators();\n const decorators = searchIndexRegistry.getDecorators();\n searchIndexService.init({\n searchEngine: searchEngine!,\n collators,\n decorators,\n });\n\n lifecycle.addStartupHook(async () => {\n await searchIndexService.start();\n });\n\n lifecycle.addShutdownHook(async () => {\n await searchIndexService.stop();\n });\n\n const router = await createRouter({\n config,\n discovery,\n permissions,\n auth,\n httpAuth,\n logger,\n engine: searchEngine,\n types: searchIndexService.getDocumentTypes(),\n });\n\n http.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","searchIndexRegistryExtensionPoint","searchEngineRegistryExtensionPoint","coreServices","searchIndexServiceRef","LunrSearchEngine","router","createRouter"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-search-backend",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "description": "The Backstage backend plugin that provides your backstage app with search",
5
5
  "backstage": {
6
6
  "role": "backend-plugin"
@@ -54,7 +54,7 @@
54
54
  "@backstage/errors": "^1.2.4",
55
55
  "@backstage/plugin-permission-common": "^0.7.13",
56
56
  "@backstage/plugin-permission-node": "^0.7.29",
57
- "@backstage/plugin-search-backend-node": "^1.2.22",
57
+ "@backstage/plugin-search-backend-node": "^1.2.23",
58
58
  "@backstage/plugin-search-common": "^1.2.11",
59
59
  "@backstage/repo-tools": "^0.9.0",
60
60
  "@backstage/types": "^1.1.1",