import { migrateOriginIdsFromValues, readNamedSetting, writeNamedSetting, } from './token.ts' const APP_ID_VALUE = 'originAppId' const INSTALLATION_ID_VALUE = 'originInstallationId' export { migrateOriginIdsFromValues } export async function readOriginSettings() { const [appId, installationId] = await Promise.all([ readNamedSetting(APP_ID_VALUE), readNamedSetting(INSTALLATION_ID_VALUE), ]) return { appId: appId || null, installationId: installationId || null, } } /** * Read or update Origin App ids. Pass `appId` and/or `installationId` to * persist them in this package's storage (no republish). */ export default async function originSettings( input: { appId?: string; installationId?: string } = {}, ) { const updated: Array = [] if (typeof input.appId === 'string' && input.appId.trim()) { await writeNamedSetting(APP_ID_VALUE, input.appId) updated.push('appId') } if (typeof input.installationId === 'string' && input.installationId.trim()) { await writeNamedSetting(INSTALLATION_ID_VALUE, input.installationId) updated.push('installationId') } const settings = await readOriginSettings() if (updated.length > 0) return { updated, settings } return settings }