UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 3.85 kB
{"version":3,"file":"file.mjs","sources":["../src/file.ts"],"sourcesContent":["/**\n * Utils file containing file treatment utils\n */\nimport { Writable, WritableOptions } from 'node:stream';\n\nconst kbytesToBytes = (kbytes: number) => kbytes * 1000;\nconst bytesToKbytes = (bytes: number) => Math.round((bytes / 1000) * 100) / 100;\nconst bytesToHumanReadable = (bytes: number) => {\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n if (bytes === 0) return '0 Bytes';\n const i = parseInt(`${Math.floor(Math.log(bytes) / Math.log(1000))}`, 10);\n return `${Math.round(bytes / 1000 ** i)} ${sizes[i]}`;\n};\n\nconst streamToBuffer = (stream: NodeJS.ReadableStream): Promise<Buffer> =>\n new Promise((resolve, reject) => {\n const chunks: Uint8Array[] = [];\n stream.on('data', (chunk) => {\n chunks.push(chunk);\n });\n stream.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n stream.on('error', reject);\n });\n\nconst getStreamSize = (stream: NodeJS.ReadableStream) =>\n new Promise((resolve, reject) => {\n let size = 0;\n stream.on('data', (chunk) => {\n size += Buffer.byteLength(chunk);\n });\n stream.on('close', () => resolve(size));\n stream.on('error', reject);\n stream.resume();\n });\n\n/**\n * Create a writeable Node.js stream that discards received data.\n * Useful for testing, draining a stream of data, etc.\n */\nfunction writableDiscardStream(options?: WritableOptions) {\n return new Writable({\n ...options,\n write(chunk, encding, callback) {\n setImmediate(callback);\n },\n });\n}\n\nexport {\n streamToBuffer,\n bytesToHumanReadable,\n bytesToKbytes,\n kbytesToBytes,\n getStreamSize,\n writableDiscardStream,\n};\n"],"names":["kbytesToBytes","kbytes","bytesToKbytes","bytes","Math","round","bytesToHumanReadable","sizes","i","parseInt","floor","log","streamToBuffer","stream","Promise","resolve","reject","chunks","on","chunk","push","Buffer","concat","getStreamSize","size","byteLength","resume","writableDiscardStream","options","Writable","write","encding","callback","setImmediate"],"mappings":";;AAKA,MAAMA,aAAAA,GAAgB,CAACC,MAAAA,GAAmBA,MAAAA,GAAS;AACnD,MAAMC,aAAAA,GAAgB,CAACC,KAAAA,GAAkBC,IAAAA,CAAKC,KAAK,CAAEF,KAAAA,GAAQ,IAAA,GAAQ,GAAA,CAAA,GAAO;AAC5E,MAAMG,uBAAuB,CAACH,KAAAA,GAAAA;AAC5B,IAAA,MAAMI,KAAAA,GAAQ;AAAC,QAAA,OAAA;AAAS,QAAA,IAAA;AAAM,QAAA,IAAA;AAAM,QAAA,IAAA;AAAM,QAAA,IAAA;AAAM,QAAA;AAAK,KAAA;IACrD,IAAIJ,KAAAA,KAAU,GAAG,OAAO,SAAA;AACxB,IAAA,MAAMK,CAAAA,GAAIC,QAAAA,CAAS,CAAA,EAAGL,IAAAA,CAAKM,KAAK,CAACN,IAAAA,CAAKO,GAAG,CAACR,KAAAA,CAAAA,GAASC,IAAAA,CAAKO,GAAG,CAAC,QAAQ,EAAE,EAAA,CAAA;AACtE,IAAA,OAAO,CAAA,EAAGP,IAAAA,CAAKC,KAAK,CAACF,KAAAA,GAAQ,IAAA,IAAQK,CAAAA,CAAAA,CAAG,CAAC,EAAED,KAAK,CAACC,CAAAA,CAAE,CAAA,CAAE;AACvD;AAEA,MAAMI,iBAAiB,CAACC,MAAAA,GACtB,IAAIC,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;AACpB,QAAA,MAAMC,SAAuB,EAAE;QAC/BJ,MAAAA,CAAOK,EAAE,CAAC,MAAA,EAAQ,CAACC,KAAAA,GAAAA;AACjBF,YAAAA,MAAAA,CAAOG,IAAI,CAACD,KAAAA,CAAAA;AACd,QAAA,CAAA,CAAA;QACAN,MAAAA,CAAOK,EAAE,CAAC,KAAA,EAAO,IAAA;YACfH,OAAAA,CAAQM,MAAAA,CAAOC,MAAM,CAACL,MAAAA,CAAAA,CAAAA;AACxB,QAAA,CAAA,CAAA;QACAJ,MAAAA,CAAOK,EAAE,CAAC,OAAA,EAASF,MAAAA,CAAAA;AACrB,IAAA,CAAA;AAEF,MAAMO,gBAAgB,CAACV,MAAAA,GACrB,IAAIC,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;AACpB,QAAA,IAAIQ,IAAAA,GAAO,CAAA;QACXX,MAAAA,CAAOK,EAAE,CAAC,MAAA,EAAQ,CAACC,KAAAA,GAAAA;YACjBK,IAAAA,IAAQH,MAAAA,CAAOI,UAAU,CAACN,KAAAA,CAAAA;AAC5B,QAAA,CAAA,CAAA;AACAN,QAAAA,MAAAA,CAAOK,EAAE,CAAC,OAAA,EAAS,IAAMH,OAAAA,CAAQS,IAAAA,CAAAA,CAAAA;QACjCX,MAAAA,CAAOK,EAAE,CAAC,OAAA,EAASF,MAAAA,CAAAA;AACnBH,QAAAA,MAAAA,CAAOa,MAAM,EAAA;AACf,IAAA,CAAA;AAEF;;;IAIA,SAASC,sBAAsBC,OAAyB,EAAA;AACtD,IAAA,OAAO,IAAIC,QAAAA,CAAS;AAClB,QAAA,GAAGD,OAAO;AACVE,QAAAA,KAAAA,CAAAA,CAAMX,KAAK,EAAEY,OAAO,EAAEC,QAAQ,EAAA;YAC5BC,YAAAA,CAAaD,QAAAA,CAAAA;AACf,QAAA;AACF,KAAA,CAAA;AACF;;;;"}