@cosmwasm/ts-codegen
Version:
@cosmwasm/ts-codegen converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.
50 lines (49 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.clean = void 0;
const clean = (obj) => {
let copy;
// Handle the 3 simple types, and null or undefined
if (null == obj || 'object' != typeof obj)
return obj;
// Handle Date
if (obj instanceof Date) {
copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
// Handle Array
if (obj instanceof Array) {
copy = [];
for (let i = 0, len = obj.length; i < len; i++) {
copy[i] = (0, exports.clean)(obj[i]);
}
return copy;
}
// Handle Object
if (obj instanceof Object || typeof obj === 'object') {
copy = {};
for (let attr in obj) {
if (obj.hasOwnProperty(attr)) {
switch (attr) {
case 'leadingComments':
case 'trailingComments':
case 'loc':
case 'start':
case 'end':
break;
default:
// @ts-ignore
copy[attr] = (0, exports.clean)(obj[attr]);
}
}
else {
// @ts-ignore
copy[attr] = (0, exports.clean)(obj[attr]);
}
}
return copy;
}
throw new Error("Unable to copy obj! Its type isn't supported.");
};
exports.clean = clean;
;