UNPKG

@substrate-system/bencode

Version:
3 lines (2 loc) 2.46 kB
"use strict";var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var y=(n,e)=>l(n,"name",{value:e,configurable:!0});var m=(n,e)=>{for(var o in e)l(n,o,{get:e[o],enumerable:!0})},A=(n,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of k(e))!b.call(n,i)&&i!==o&&l(n,i,{get:()=>e[i],enumerable:!(r=f(e,i))||r.enumerable});return n};var w=n=>A(l({},"__esModule",{value:!0}),n);var a={};m(a,{default:()=>_,encode:()=>t});module.exports=w(a);var c=require("@substrate-system/uint8-util"),g=require("./util.js");function t(n,e,o){const r=[];t._encode(r,n);const i=(0,c.concat)(r);return t.bytes=i.length,ArrayBuffer.isView(e)?(e.set(i,o),e):i}y(t,"encode"),t.bytes=-1,t._floatConversionDetected=!1,t._encode=function(n,e){if(e!=null)switch((0,g.getType)(e)){case"object":t.dict(n,e);break;case"map":t.dictMap(n,e);break;case"array":t.list(n,e);break;case"set":t.listSet(n,e);break;case"string":t.string(n,e);break;case"number":t.number(n,e);break;case"boolean":t.number(n,e);break;case"arraybufferview":t.buffer(n,new Uint8Array(e.buffer,e.byteOffset,e.byteLength));break;case"arraybuffer":t.buffer(n,new Uint8Array(e));break}};const u=new Uint8Array([101]),p=new Uint8Array([100]),h=new Uint8Array([108]);t.buffer=function(n,e){n.push((0,c.text2arr)(e.length+":"),e)},t.string=function(n,e){n.push((0,c.text2arr)((0,c.text2arr)(e).byteLength+":"+e))},t.number=function(n,e){if(Number.isInteger(e))return n.push((0,c.text2arr)("i"+BigInt(e)+"e"));const o=2147483648,r=e/o<<0,i=e%o<<0,s=r*o+i;n.push((0,c.text2arr)("i"+s+"e")),s!==e&&!t._floatConversionDetected&&(t._floatConversionDetected=!0,console.warn('WARNING: Possible data corruption detected with value "'+e+'":','Bencoding only defines support for integers, value was converted to "'+s+'"'),console.trace())},t.dict=function(n,e){n.push(p);let o=0,r;const i=Object.keys(e).sort(),s=i.length;for(;o<s;o++)r=i[o],e[r]!=null&&(t.string(n,r),t._encode(n,e[r]));n.push(u)},t.dictMap=function(n,e){n.push(p);const o=Array.from(e.keys()).sort();for(const r of o)e.get(r)!=null&&(ArrayBuffer.isView(r)?t._encode(n,r):t.string(n,String(r)),t._encode(n,e.get(r)));n.push(u)},t.list=function(n,e){let o=0;const r=e.length;for(n.push(h);o<r;o++)e[o]!=null&&t._encode(n,e[o]);n.push(u)},t.listSet=function(n,e){n.push(h);for(const o of e)o!=null&&t._encode(n,o);n.push(u)};var _=t; //# sourceMappingURL=encode.min.cjs.map