in libraries/azure-app-configuration-importer/src/settingsImport/stringConfigurationSettingsSource.ts [62:119]
protected getConfigurationSettingsInternal(data: string): Array<
SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>
> {
let loadedData: any = {};
// Checking string encoding format
if (/^\uFEFF/.test(data)) {
throw new ParseError(
"Failed to parse data: An invalid encoding, UTF-8 with BOM, was detected. Please update encoding to UTF-8 without BOM."
);
}
try {
switch (this.options.format) {
case ConfigurationFormat.Json: {
loadedData = JSON.parse(stripJSONComments(data));
break;
}
case ConfigurationFormat.Yaml: {
const temp = jsyaml.load(data, { schema: jsyaml.JSON_SCHEMA });
if (temp === undefined) {
throw new ParseError(
"Failed to parse data: Not a valid yaml format."
);
}
else {
loadedData = temp;
}
break;
}
case ConfigurationFormat.Properties: {
loadedData = getProperties(data);
break;
}
default: {
throw new ArgumentError("Data Format provided is not supported. Supported values are: Json, Yaml and Properties.");
}
}
}
catch (e: any) {
throw new ParseError(`Failed to parse data: ${e.message}`);
}
if (typeof loadedData !== "object") {
throw new ParseError(
`Type of data be parsed is ${typeof loadedData}, not a valid object type`
);
}
let converter: ConfigurationSettingsConverter;
if (this.options.profile === ConfigurationProfile.KvSet) {
converter = new KvSetConfigurationSettingsConverter();
}
else {
converter = new DefaultConfigurationSettingsConverter();
}
return converter.Convert(loadedData, this.options);
}