alwaysai
Version:
The alwaysAI command-line interface (CLI)
37 lines (33 loc) • 885 B
text/typescript
import { DEVICE_TOKEN_FILE_NAME } from '../../paths';
import { logger, stringifyError } from '../../util';
import { Spawner } from '../../util/spawner';
export type DeviceTokens = {
deviceId: any;
accessToken: any;
refreshToken: any;
idToken: any;
};
export async function writeTokens({
spawner,
tokens
}: {
spawner: Spawner;
tokens: DeviceTokens;
}) {
await spawner.mkdirp();
let contents = tokens;
if (await spawner.exists(DEVICE_TOKEN_FILE_NAME)) {
try {
const origContents = await spawner.readFile(DEVICE_TOKEN_FILE_NAME);
const origParsed = JSON.parse(origContents);
contents = { ...origParsed, ...contents };
} catch (err) {
logger.error(stringifyError(err));
await spawner.rimraf(DEVICE_TOKEN_FILE_NAME);
}
}
await spawner.writeFile(
DEVICE_TOKEN_FILE_NAME,
JSON.stringify(contents, null, 2)
);
}