417
418
protected doParseRaw(raw: IStringDictionary<unknown>, options?: ConfigurationParseOptions): IConfigurationModel & { restricted?: string[]; hasExcludedProperties?: boolean } {
420
>
const configurationProperties = registry.getConfigurationProperties();
421
>
const excludedConfigurationProperties = registry.getExcludedConfigurationProperties();
422
>
const filtered = this.filter(raw, configurationProperties, excludedConfigurationProperties, true, options);
423
>
raw = filtered.raw;
424
>
const contents = toValuesTree(raw, message => this.logService.error(`Conflict in settings file ${this._name}: ${message}`));
425
>
const keys = Object.keys(raw);
426
>
const overrides = this.toOverrides(raw, message => this.logService.error(`Conflict in settings file ${this._name}: ${message}`));
427
>
return { contents, keys, overrides, restricted: filtered.restricted, hasExcludedProperties: filtered.hasExcludedProperties };
428
>
}
429
430
private filter(properties: IStringDictionary<unknown>, configurationProperties: IStringDictionary<IRegisteredConfigurationPropertySchema>, excludedConfigurationProperties: IStringDictionary<IRegisteredConfigurationPropertySchema>, filterOverriddenProperties: boolean, options?: ConfigurationParseOptions): { raw: IStringDictionary<unknown>; restricted: string[]; hasExcludedProperties: boolean } {
432
>
if (!options?.scopes && !options?.skipRestricted && !options?.skipUnregistered && !options?.exclude?.length) {
433
return { raw: properties, restricted: [], hasExcludedProperties };
434
}