@backstage/config-loader
Advanced tools
Comparing version 0.0.0-nightly-202161521855 to 0.0.0-nightly-20217421937
# @backstage/config-loader | ||
## 0.0.0-nightly-202161521855 | ||
## 0.0.0-nightly-20217421937 | ||
### Patch Changes | ||
- e9d3983ee: Add option to populate the `filteredKeys` property when processing configuration with a schema. | ||
- Updated dependencies | ||
- @backstage/config@0.0.0-nightly-20217421937 | ||
## 0.6.5 | ||
### Patch Changes | ||
- ae84b20cf: Revert the upgrade to `fs-extra@10.0.0` as that seemed to have broken all installs inexplicably. | ||
@@ -8,0 +16,0 @@ |
@@ -405,7 +405,8 @@ 'use strict'; | ||
function filterByVisibility(data, includeVisibilities, visibilityByPath, transformFunc) { | ||
function filterByVisibility(data, includeVisibilities, visibilityByPath, transformFunc, withFilteredKeys) { | ||
var _a; | ||
function transform(jsonVal, path) { | ||
const filteredKeys = new Array(); | ||
function transform(jsonVal, visibilityPath, filterPath) { | ||
var _a2; | ||
const visibility = (_a2 = visibilityByPath.get(path)) != null ? _a2 : DEFAULT_CONFIG_VISIBILITY; | ||
const visibility = (_a2 = visibilityByPath.get(visibilityPath)) != null ? _a2 : DEFAULT_CONFIG_VISIBILITY; | ||
const isVisible = includeVisibilities.includes(visibility); | ||
@@ -419,2 +420,5 @@ if (typeof jsonVal !== "object") { | ||
} | ||
if (withFilteredKeys) { | ||
filteredKeys.push(filterPath); | ||
} | ||
return void 0; | ||
@@ -426,3 +430,3 @@ } else if (jsonVal === null) { | ||
for (const [index, value] of jsonVal.entries()) { | ||
const out = transform(value, `${path}/${index}`); | ||
const out = transform(value, `${visibilityPath}/${index}`, `${filterPath}[${index}]`); | ||
if (out !== void 0) { | ||
@@ -443,3 +447,3 @@ arr.push(out); | ||
} | ||
const out = transform(value, `${path}/${key}`); | ||
const out = transform(value, `${visibilityPath}/${key}`, filterPath ? `${filterPath}.${key}` : key); | ||
if (out !== void 0) { | ||
@@ -455,3 +459,6 @@ outObj[key] = out; | ||
} | ||
return (_a = transform(data, "")) != null ? _a : {}; | ||
return { | ||
filteredKeys: withFilteredKeys ? filteredKeys : void 0, | ||
data: (_a = transform(data, "", "")) != null ? _a : {} | ||
}; | ||
} | ||
@@ -472,3 +479,3 @@ | ||
return { | ||
process(configs, {visibility, valueTransform} = {}) { | ||
process(configs, {visibility, valueTransform, withFilteredKeys} = {}) { | ||
const result = validate(configs); | ||
@@ -484,3 +491,3 @@ if (result.errors) { | ||
context, | ||
data: filterByVisibility(data, visibility, result.visibilityByPath, valueTransform) | ||
...filterByVisibility(data, visibility, result.visibilityByPath, valueTransform, withFilteredKeys) | ||
})); | ||
@@ -490,3 +497,3 @@ } else if (valueTransform) { | ||
context, | ||
data: filterByVisibility(data, Array.from(CONFIG_VISIBILITIES), result.visibilityByPath, valueTransform) | ||
...filterByVisibility(data, Array.from(CONFIG_VISIBILITIES), result.visibilityByPath, valueTransform, withFilteredKeys) | ||
})); | ||
@@ -493,0 +500,0 @@ } |
@@ -58,2 +58,8 @@ import { AppConfig, JsonObject } from '@backstage/config'; | ||
valueTransform?: TransformFunc<any>; | ||
/** | ||
* Whether or not to include the `filteredKeys` property in the output `AppConfig`s. | ||
* | ||
* Default: `false`. | ||
*/ | ||
withFilteredKeys?: boolean; | ||
}; | ||
@@ -60,0 +66,0 @@ /** |
@@ -394,7 +394,8 @@ import yaml from 'yaml'; | ||
function filterByVisibility(data, includeVisibilities, visibilityByPath, transformFunc) { | ||
function filterByVisibility(data, includeVisibilities, visibilityByPath, transformFunc, withFilteredKeys) { | ||
var _a; | ||
function transform(jsonVal, path) { | ||
const filteredKeys = new Array(); | ||
function transform(jsonVal, visibilityPath, filterPath) { | ||
var _a2; | ||
const visibility = (_a2 = visibilityByPath.get(path)) != null ? _a2 : DEFAULT_CONFIG_VISIBILITY; | ||
const visibility = (_a2 = visibilityByPath.get(visibilityPath)) != null ? _a2 : DEFAULT_CONFIG_VISIBILITY; | ||
const isVisible = includeVisibilities.includes(visibility); | ||
@@ -408,2 +409,5 @@ if (typeof jsonVal !== "object") { | ||
} | ||
if (withFilteredKeys) { | ||
filteredKeys.push(filterPath); | ||
} | ||
return void 0; | ||
@@ -415,3 +419,3 @@ } else if (jsonVal === null) { | ||
for (const [index, value] of jsonVal.entries()) { | ||
const out = transform(value, `${path}/${index}`); | ||
const out = transform(value, `${visibilityPath}/${index}`, `${filterPath}[${index}]`); | ||
if (out !== void 0) { | ||
@@ -432,3 +436,3 @@ arr.push(out); | ||
} | ||
const out = transform(value, `${path}/${key}`); | ||
const out = transform(value, `${visibilityPath}/${key}`, filterPath ? `${filterPath}.${key}` : key); | ||
if (out !== void 0) { | ||
@@ -444,3 +448,6 @@ outObj[key] = out; | ||
} | ||
return (_a = transform(data, "")) != null ? _a : {}; | ||
return { | ||
filteredKeys: withFilteredKeys ? filteredKeys : void 0, | ||
data: (_a = transform(data, "", "")) != null ? _a : {} | ||
}; | ||
} | ||
@@ -461,3 +468,3 @@ | ||
return { | ||
process(configs, {visibility, valueTransform} = {}) { | ||
process(configs, {visibility, valueTransform, withFilteredKeys} = {}) { | ||
const result = validate(configs); | ||
@@ -473,3 +480,3 @@ if (result.errors) { | ||
context, | ||
data: filterByVisibility(data, visibility, result.visibilityByPath, valueTransform) | ||
...filterByVisibility(data, visibility, result.visibilityByPath, valueTransform, withFilteredKeys) | ||
})); | ||
@@ -479,3 +486,3 @@ } else if (valueTransform) { | ||
context, | ||
data: filterByVisibility(data, Array.from(CONFIG_VISIBILITIES), result.visibilityByPath, valueTransform) | ||
...filterByVisibility(data, Array.from(CONFIG_VISIBILITIES), result.visibilityByPath, valueTransform, withFilteredKeys) | ||
})); | ||
@@ -482,0 +489,0 @@ } |
{ | ||
"name": "@backstage/config-loader", | ||
"description": "Config loading functionality used by Backstage backend, and CLI", | ||
"version": "0.0.0-nightly-202161521855", | ||
"version": "0.0.0-nightly-20217421937", | ||
"private": false, | ||
@@ -34,3 +34,3 @@ "publishConfig": { | ||
"@backstage/cli-common": "^0.1.1", | ||
"@backstage/config": "^0.1.5", | ||
"@backstage/config": "^0.0.0-nightly-20217421937", | ||
"@types/json-schema": "^7.0.6", | ||
@@ -37,0 +37,0 @@ "ajv": "^7.0.3", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
140380
1138
+ Added@backstage/config@0.0.0-nightly-20250114022708(transitive)
+ Added@backstage/errors@0.0.0-nightly-20250114022708(transitive)
+ Added@backstage/types@0.0.0-nightly-20250114022708(transitive)
+ Addedms@2.1.3(transitive)
+ Addedserialize-error@8.1.0(transitive)
+ Addedtype-fest@0.20.2(transitive)
- Removed@backstage/config@0.1.15(transitive)
- Removed@backstage/types@0.1.3(transitive)