@rangeljl/shared
Version:
A set of functions that are used in a lot of places
29 lines (28 loc) • 1.23 kB
JavaScript
;
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;