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<string> = []
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
}