{
  "version": 3,
  "sources": ["../src/encoding-length.ts"],
  "sourcesContent": ["import { text2arr } from '@substrate-system/uint8-util'\nimport { digitCount, getType } from './util.js'\n\nfunction listLength (list) {\n    let length = 1 + 1 // type marker + end-of-type marker\n\n    for (const value of list) {\n        length += encodingLength(value)\n    }\n\n    return length\n}\n\nfunction mapLength (map) {\n    let length = 1 + 1 // type marker + end-of-type marker\n\n    for (const [key, value] of map) {\n        const keyLength = text2arr(key).byteLength\n        length += digitCount(keyLength) + 1 + keyLength\n        length += encodingLength(value)\n    }\n\n    return length\n}\n\nfunction objectLength (value) {\n    let length = 1 + 1 // type marker + end-of-type marker\n    const keys = Object.keys(value)\n\n    for (let i = 0; i < keys.length; i++) {\n        const keyLength = text2arr(keys[i]).byteLength\n        length += digitCount(keyLength) + 1 + keyLength\n        length += encodingLength(value[keys[i]])\n    }\n\n    return length\n}\n\nfunction stringLength (value) {\n    const length = text2arr(value).byteLength\n    return digitCount(length) + 1 + length\n}\n\nfunction arrayBufferLength (value) {\n    const length = value.byteLength - value.byteOffset\n    return digitCount(length) + 1 + length\n}\n\nexport function encodingLength (value) {\n    const length = 0\n\n    if (value == null) return length\n\n    const type = getType(value)\n\n    switch (type) {\n        case 'arraybufferview': return arrayBufferLength(value)\n        case 'string': return stringLength(value)\n        case 'array': case 'set': return listLength(value)\n        case 'number': return 1 + digitCount(Math.floor(value)) + 1\n        case 'bigint': return 1 + value.toString().length + 1\n        case 'object': return objectLength(value)\n        case 'map': return mapLength(value)\n        default:\n            throw new TypeError(`Unsupported value of type \"${type}\"`)\n    }\n}\n\nexport default encodingLength\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAyB;AACzB,kBAAoC;AAEpC,SAAS,WAAY,MAAM;AACvB,MAAI,SAAS,IAAI;AAEjB,aAAW,SAAS,MAAM;AACtB,cAAU,eAAe,KAAK;AAAA,EAClC;AAEA,SAAO;AACX;AARS;AAUT,SAAS,UAAW,KAAK;AACrB,MAAI,SAAS,IAAI;AAEjB,aAAW,CAAC,KAAK,KAAK,KAAK,KAAK;AAC5B,UAAM,gBAAY,4BAAS,GAAG,EAAE;AAChC,kBAAU,wBAAW,SAAS,IAAI,IAAI;AACtC,cAAU,eAAe,KAAK;AAAA,EAClC;AAEA,SAAO;AACX;AAVS;AAYT,SAAS,aAAc,OAAO;AAC1B,MAAI,SAAS,IAAI;AACjB,QAAM,OAAO,OAAO,KAAK,KAAK;AAE9B,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,UAAM,gBAAY,4BAAS,KAAK,CAAC,CAAC,EAAE;AACpC,kBAAU,wBAAW,SAAS,IAAI,IAAI;AACtC,cAAU,eAAe,MAAM,KAAK,CAAC,CAAC,CAAC;AAAA,EAC3C;AAEA,SAAO;AACX;AAXS;AAaT,SAAS,aAAc,OAAO;AAC1B,QAAM,aAAS,4BAAS,KAAK,EAAE;AAC/B,aAAO,wBAAW,MAAM,IAAI,IAAI;AACpC;AAHS;AAKT,SAAS,kBAAmB,OAAO;AAC/B,QAAM,SAAS,MAAM,aAAa,MAAM;AACxC,aAAO,wBAAW,MAAM,IAAI,IAAI;AACpC;AAHS;AAKF,SAAS,eAAgB,OAAO;AACnC,QAAM,SAAS;AAEf,MAAI,SAAS,KAAM,QAAO;AAE1B,QAAM,WAAO,qBAAQ,KAAK;AAE1B,UAAQ,MAAM;AAAA,IACV,KAAK;AAAmB,aAAO,kBAAkB,KAAK;AAAA,IACtD,KAAK;AAAU,aAAO,aAAa,KAAK;AAAA,IACxC,KAAK;AAAA,IAAS,KAAK;AAAO,aAAO,WAAW,KAAK;AAAA,IACjD,KAAK;AAAU,aAAO,QAAI,wBAAW,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,IAC1D,KAAK;AAAU,aAAO,IAAI,MAAM,SAAS,EAAE,SAAS;AAAA,IACpD,KAAK;AAAU,aAAO,aAAa,KAAK;AAAA,IACxC,KAAK;AAAO,aAAO,UAAU,KAAK;AAAA,IAClC;AACI,YAAM,IAAI,UAAU,8BAA8B,IAAI,GAAG;AAAA,EACjE;AACJ;AAlBgB;AAoBhB,IAAO,0BAAQ;",
  "names": []
}
