UNPKG

abi-util-lite

Version:

A light impletation to parse abi string array to abi json

50 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.splitNesting = exports._constructorGuard = exports.populate = exports.defineReadOnly = void 0; var Logger_1 = require("./Logger"); function defineReadOnly(object, name, value) { Object.defineProperty(object, name, { enumerable: true, value: value, writable: false, }); } exports.defineReadOnly = defineReadOnly; function populate(object, params) { for (var key in params) { defineReadOnly(object, key, params[key]); } } exports.populate = populate; exports._constructorGuard = {}; function splitNesting(value) { value = value.trim(); var result = []; var accum = ""; var depth = 0; for (var offset = 0; offset < value.length; offset++) { var c = value[offset]; if (c === "," && depth === 0) { result.push(accum); accum = ""; } else { accum += c; if (c === "(") { depth++; } else if (c === ")") { depth--; if (depth === -1) { Logger_1.logger.throwArgumentError("unbalanced parenthesis", "value", value); } } } } if (accum) { result.push(accum); } return result; } exports.splitNesting = splitNesting; //# sourceMappingURL=Utils.js.map