@ethereum-waffle/chai
Version:
A sweet set of chai matchers for your blockchain testing needs.
23 lines • 935 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertStructToPlainObject = exports.isStruct = void 0;
const isStruct = (arr) => {
if (!Array.isArray(arr))
return false;
const keys = Object.keys(arr);
const hasAlphaNumericKeys = keys.some((key) => key.match(/^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$/));
const hasNumericKeys = keys.some((key) => key.match(/^\d+$/));
return hasAlphaNumericKeys && hasNumericKeys;
};
exports.isStruct = isStruct;
const convertStructToPlainObject = (struct) => {
const keys = Object.keys(struct).filter((key) => isNaN(key));
return keys.reduce((acc, key) => ({
...acc,
[key]: (0, exports.isStruct)(struct[key])
? (0, exports.convertStructToPlainObject)(struct[key])
: struct[key]
}), {});
};
exports.convertStructToPlainObject = convertStructToPlainObject;
//# sourceMappingURL=struct.js.map