Skip to content

Commit 10363a9

Browse files
committed
chore: addressing PR feedback
1 parent 15d65d7 commit 10363a9

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

packages/shared/sdk-server/src/data_sources/fileDataInitilizerFDv2.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export default class FileDataInitializerFDv2 implements subsystemCommon.DataSour
2525
private _yamlParser?: (data: string) => any;
2626
private _fileLoader?: FileLoader;
2727

28-
// TODO: do a options check here
2928
constructor(config: Configuration, platform: Platform) {
3029
const options = config.dataSystem?.dataSource?.initializerOptions as FileDataInitializerOptions;
3130
this._validateInputs(options, platform);
@@ -78,17 +77,15 @@ export default class FileDataInitializerFDv2 implements subsystemCommon.DataSour
7877
this._paths,
7978
false, // autoupdate is always false for initializer
8079
(results: { path: string; data: string }[]) => {
81-
// Whenever changes are detected we re-process all of the data.
82-
// The FileLoader will have handled debouncing for us.
8380
try {
8481
const parsedData = this._processFileData(results);
8582

86-
statusCallback(subsystemCommon.DataSourceState.Valid);
87-
8883
payloadProcessor.addPayloadListener((payload) => {
8984
dataCallback(payload.basis, { initMetadata, payload });
9085
});
9186

87+
statusCallback(subsystemCommon.DataSourceState.Valid);
88+
9289
payloadProcessor.processEvents(parsedData.events);
9390

9491
statusCallback(subsystemCommon.DataSourceState.Closed);
@@ -102,7 +99,16 @@ export default class FileDataInitializerFDv2 implements subsystemCommon.DataSour
10299
},
103100
);
104101

105-
this._fileLoader.loadAndWatch();
102+
this._fileLoader.loadAndWatch().catch((err) => {
103+
this._logger?.error('Error loading files', err);
104+
statusCallback(
105+
subsystemCommon.DataSourceState.Closed,
106+
new LDPollingError(
107+
DataSourceErrorKind.NetworkError,
108+
`Failed to load files: ${err instanceof Error ? err.message : String(err)}`,
109+
),
110+
);
111+
});
106112
}
107113

108114
private _processFileData(results: { path: string; data: string }[]) {

packages/shared/sdk-server/src/options/Configuration.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,12 @@ function validateDataSystemOptions(options: Options): {
253253
}
254254
// Preserve initializer options if it was provided, since it's not validated by validateTypesAndNames.
255255
// Currently, setting this option is most commonly used as an override of default initializer options.
256-
if (options.dataSource && 'initializerOptions' in options.dataSource) {
256+
// Check that the value is not undefined to avoid overwriting defaults when explicitly set to undefined.
257+
if (
258+
options.dataSource &&
259+
'initializerOptions' in options.dataSource &&
260+
options.dataSource.initializerOptions !== undefined
261+
) {
257262
validatedDataSourceOptions.initializerOptions = options.dataSource.initializerOptions;
258263
}
259264

0 commit comments

Comments
 (0)