UNPKG

@rangeljl/shared

Version:

A set of functions that are used in a lot of places

29 lines (28 loc) 1.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const unknownIsArray_1 = __importDefault(require("./unknownIsArray")); const unknownIsRecord_1 = __importDefault(require("./unknownIsRecord")); const unknownIsNumber_1 = __importDefault(require("./unknownIsNumber")); const unknownAccessValueAsRecord = (original, path) => { if (path.length < 1) { throw new Error('At least one path is necessary to access as record'); } const [currentProp, ...restOfProps] = path; if ((0, unknownIsRecord_1.default)(original)) { if (restOfProps.length < 1) { return original[currentProp]; } return unknownAccessValueAsRecord(original[currentProp], restOfProps); } else if ((0, unknownIsArray_1.default)(original) && (0, unknownIsNumber_1.default)(currentProp)) { if (restOfProps.length < 1) { return original[currentProp]; } return unknownAccessValueAsRecord(original[currentProp], restOfProps); } return undefined; }; exports.default = unknownAccessValueAsRecord;