UNPKG

@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
"use strict"; 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;