UNPKG

@k8ts/metadata

Version:

K8ts tools for working with k8ts metadata.

57 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseMetaInput = parseMetaInput; const what_are_you_1 = require("what-are-you"); const error_1 = require("../error"); const meta_1 = require("../meta"); const domain_prefix_1 = require("./key/domain-prefix"); const parse_key_1 = require("./key/parse-key"); function parseMetaInput(input) { if (input == null) { return new Map(); } if (input instanceof Map) { return new Map(input); } if (Symbol.iterator in Object(input)) { let map = new Map(); for (const item of input) { const [key, value] = item; map.set(key, value); } return map; } if (input instanceof meta_1.Metadata) { return new Map(input["_dict"]); } let map = new Map(); for (const [key, value] of Object.entries(input)) { const outer = (0, parse_key_1.parseOuterKey)(key); if ((0, what_are_you_1.isNullish)(value)) { continue; } if (outer instanceof domain_prefix_1.Metadata_Key_Domain) { if (typeof value !== "object") { throw new error_1.K8tsMetadataError(`Expected object for section key ${key}`); } for (const [kk, vv] of Object.entries(value)) { if ((0, what_are_you_1.isNullish)(vv)) { continue; } const inner = (0, parse_key_1.parseInnerKey)(kk); if (typeof vv !== "string") { throw new error_1.K8tsMetadataError(`Expected string value for inner key ${kk}`); } map.set(inner.domain(outer).str, vv); } } else { if (typeof value !== "string") { throw new error_1.K8tsMetadataError(`Expected string value for key ${key}`); } map.set(outer.str, value); } } return map; } //# sourceMappingURL=parse-dict.js.map