Skip to content

Commit b961738

Browse files
fix(telemetry): added a failsafe around configstore not being available
1 parent 85e6ab0 commit b961738

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

.changeset/major-sides-work.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@o2s/telemetry': patch
3+
---
4+
5+
added a failsafe around `configstore` not being available e.g. in serverless environements

packages/telemetry/src/index.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@ import { v4 as uuid } from 'uuid';
33

44
import { getMetadata } from './metadata';
55

6-
const config = new Configstore(
7-
`o2s`,
8-
{
9-
metadata: getMetadata(),
10-
machineId: uuid(),
11-
},
12-
{ globalConfigPath: true },
13-
);
6+
const data = {
7+
metadata: getMetadata(),
8+
machineId: uuid(),
9+
};
10+
11+
let config: Pick<Configstore, 'get'>;
12+
13+
try {
14+
config = new Configstore(`o2s`, data, { globalConfigPath: true });
15+
} catch (_error) {
16+
config = {
17+
get: (key: string) => data[key as keyof typeof data],
18+
};
19+
}
1420

1521
const metadata = (config.get('metadata') as ReturnType<typeof getMetadata>) || getMetadata();
1622
const machineId = (config.get('machineId') as string) || uuid();

0 commit comments

Comments
 (0)