Ensure that we return stable observer references

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2022-09-08 09:20:22 +02:00
parent 0f88eab1b7
commit 8a57ffc0fa
7 changed files with 104 additions and 58 deletions
+5 -4
View File
@@ -35,7 +35,7 @@ export default async function createPlugin(env: PluginEnvironment) {
// packages/backend/src/index.ts
+import userSettings from './plugins/userSettings';
async function main() {
+ const userSettingsEnv = useHotMemoize(module, () => createEnv('userSettings'));
+ const userSettingsEnv = useHotMemoize(module, () => createEnv('user-settings'));
const apiRouter = Router();
+ apiRouter.use('/user-settings', await userSettings(userSettingsEnv));
}
@@ -52,8 +52,9 @@ To make use of the user settings backend, replace the `WebStorage` with the
AnyApiFactory,
createApiFactory,
+ discoveryApiRef,
+ fetchApiRef
+ fetchApiRef,
errorApiRef,
+ identityApi,
+ storageApiRef,
} from '@backstage/core-plugin-api';
+import { UserSettingsStorage } from '@backstage/core-app-api';
@@ -65,9 +66,9 @@ To make use of the user settings backend, replace the `WebStorage` with the
+ discoveryApi: discoveryApiRef,
+ errorApi: errorApiRef,
+ fetchApi: fetchApiRef,
+ identityApi: identityApiRef
+ },
+ factory: ({ discoveryApi, errorApi, fetchApi }) =>
+ UserSettingsStorage.create({ discoveryApi, errorApi, fetchApi }),
+ factory: deps => UserSettingsStorage.create(deps),
+ }),
];
```