{"version":3,"file":"get.mjs","names":[],"sources":["../src/get.ts"],"sourcesContent":["/**\n * To get better types, install `type-fest` and use the `Get` and `Paths` types:\n *\n * ```ts\n * import { get as _get } from '@acdh-oeaw/lib';\n * import type { Get } from \"type-fest\";\n *\n * const get = _get as <BaseType, Path extends Array<string> | string>(obj: BaseType, path: Path) => Get<BaseType, Path>\n * ```\n */\nexport function get(\n\tobj: Record<number | string, unknown>,\n\tpath: Array<number | string> | string,\n): unknown {\n\tconst segments = Array.isArray(path) ? path : path.split(\".\");\n\n\tlet o = obj;\n\tlet i = 0;\n\n\twhile (i < segments.length) {\n\t\tconst segment = segments[i++]!;\n\n\t\to = o[segment] as Record<number | string, unknown>;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tif (o == null) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn o;\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,IACf,KACA,MACU;CACV,MAAM,WAAW,MAAM,QAAQ,KAAK,GAAG,OAAO,KAAK,MAAM,IAAI;CAE7D,IAAI,IAAI;CACR,IAAI,IAAI;AAER,QAAO,IAAI,SAAS,QAAQ;EAC3B,MAAM,UAAU,SAAS;AAEzB,MAAI,EAAE;AAEN,MAAI,KAAK,KACR;;AAIF,QAAO"}