feat: add removable reference feature vertical slice
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
import { createBrowserStorageAdapter } from "../adapters/storage/browser-storage-adapter.js";
|
||||
import { createTelemetryAdapter } from "../adapters/telemetry/best-effort-telemetry.js";
|
||||
import { fetchReleaseManifest } from "./load-release-manifest.js";
|
||||
import { createInstalledFeatureInputs } from "../features/installed-feature-adapters.js";
|
||||
|
||||
/**
|
||||
* @param {Record<string, unknown>} host
|
||||
@@ -54,7 +55,7 @@ function storageOrUndefined(value) {
|
||||
* scheduler?: Parameters<typeof createHttpClient>[0]["scheduler"]
|
||||
* }} context
|
||||
*/
|
||||
export function createRuntimeHttpClient(context) {
|
||||
export function createRuntimeHttpClient(context, contract = {}) {
|
||||
return createHttpClient({
|
||||
baseUrl: context.runtime.config.API_BASE_URL,
|
||||
timeoutMs: context.runtime.config.REQUEST_TIMEOUT_MS,
|
||||
@@ -63,6 +64,7 @@ export function createRuntimeHttpClient(context) {
|
||||
fetcher: context.fetcher,
|
||||
clock: context.clock,
|
||||
scheduler: context.scheduler,
|
||||
...contract,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -116,6 +118,17 @@ export async function createRuntimeAdapters(context) {
|
||||
location.reload();
|
||||
},
|
||||
});
|
||||
const featureInputs = createInstalledFeatureInputs({
|
||||
createHttpClient: (contract) =>
|
||||
createRuntimeHttpClient(
|
||||
{
|
||||
runtime: context.runtime,
|
||||
authSession,
|
||||
fetcher: context.fetcher,
|
||||
},
|
||||
contract,
|
||||
),
|
||||
});
|
||||
|
||||
return Object.freeze({
|
||||
outputPorts: Object.freeze({
|
||||
@@ -128,5 +141,6 @@ export async function createRuntimeAdapters(context) {
|
||||
infrastructure: Object.freeze({
|
||||
queryClient,
|
||||
}),
|
||||
featureInputs,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user