diff --git a/.changeset/loud-masks-smash.md b/.changeset/loud-masks-smash.md new file mode 100644 index 0000000000..e1631fa3ef --- /dev/null +++ b/.changeset/loud-masks-smash.md @@ -0,0 +1,5 @@ +--- +'@backstage/config': patch +--- + +Reformulate the json types to break type recursion diff --git a/packages/config/src/index.ts b/packages/config/src/index.ts index d873bc93a9..70a6a7a29b 100644 --- a/packages/config/src/index.ts +++ b/packages/config/src/index.ts @@ -14,11 +14,12 @@ * limitations under the License. */ +export { ConfigReader } from './reader'; export type { AppConfig, Config, JsonArray, JsonObject, + JsonPrimitive, JsonValue, } from './types'; -export { ConfigReader } from './reader'; diff --git a/packages/config/src/types.ts b/packages/config/src/types.ts index 92293a3f26..76bbc2f9bf 100644 --- a/packages/config/src/types.ts +++ b/packages/config/src/types.ts @@ -14,15 +14,10 @@ * limitations under the License. */ +export type JsonPrimitive = number | string | boolean | null; export type JsonObject = { [key in string]?: JsonValue }; -export type JsonArray = JsonValue[]; -export type JsonValue = - | JsonObject - | JsonArray - | number - | string - | boolean - | null; +export interface JsonArray extends Array {} +export type JsonValue = JsonObject | JsonArray | JsonPrimitive; export type AppConfig = { context: string;