diff options
Diffstat (limited to 'packages/credential-store/src/extension.ts')
| -rw-r--r-- | packages/credential-store/src/extension.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/credential-store/src/extension.ts b/packages/credential-store/src/extension.ts new file mode 100644 index 0000000..8f2a826 --- /dev/null +++ b/packages/credential-store/src/extension.ts @@ -0,0 +1,29 @@ +import type { Extension, Manifest } from "@dispatch/kernel"; +import type { Credential } from "./registry.js"; +import { createCredentialStore } from "./registry.js"; +import { credentialStoreHandle } from "./service.js"; + +export const manifest: Manifest = { + id: "credential-store", + name: "Credential Store", + version: "0.0.0", + apiVersion: "^0.1.0", + trust: "bundled", + activation: "eager", + contributes: { services: ["credential-store/registry"] }, +}; + +export function createCredentialStoreExtension(deps: { + credentials: readonly Credential[]; +}): Extension { + return { + manifest, + activate(host) { + const store = createCredentialStore({ + credentials: deps.credentials, + getProvider: (id) => host.getProviders().get(id), + }); + host.provideService(credentialStoreHandle, store); + }, + }; +} |
