From 04cc66f7c01f8e3dffe6f62959dccb8d722bf191 Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Thu, 29 Sep 2022 15:57:05 -0400 Subject: [PATCH 1/3] Adding `test-webpack` script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e07dcbd..f00db7f 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "mocha": "mocha test/*.js", "rollup": "rollup --config", "test": "npm run lint && npm run mocha", + "test-webpack": "mkdir -p test/webpack && rm -rf test/webpack && git clone git@github.com:rabelais88/typescript-webpack.git test/webpack && echo \"import { filesize } from 'filesize';console.log(filesize(1234));\" >> test/webpack/src/index.ts && cd test/webpack && npm install && mkdir -p node_modules/filesize/dist && cp ../../package.json node_modules/filesize/ && cp ../../dist/* node_modules/filesize/dist/ && npm run build", "types": "npx -p typescript tsc src/*.js --declaration --allowJs --emitDeclarationOnly --outDir types" }, "devDependencies": { From 6630aad1a642a657945b93afde524ece237fb361 Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Thu, 29 Sep 2022 15:58:29 -0400 Subject: [PATCH 2/3] Updating `.gitignore` --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8850a3b..92def6f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/* .idea/* +test/webpack/* From 5c88c5ff2177bd19bbca70d6477c36772006581f Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Thu, 29 Sep 2022 16:13:11 -0400 Subject: [PATCH 3/3] Reverting revert to default export, removing `browser` key from `package.json` as it's redirection away from `main` or `module` is what breaks webpack, fixes #162 --- .gitignore | 6 +++--- dist/filesize.cjs | 7 ++++--- dist/filesize.esm.js | 4 ++-- dist/filesize.esm.min.js | 2 +- dist/filesize.esm.min.js.map | 2 +- dist/filesize.js | 6 +++--- dist/filesize.min.js | 2 +- dist/filesize.min.js.map | 2 +- package.json | 1 - src/filesize.js | 4 ++-- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 92def6f..f5e0650 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -node_modules/* -.idea/* -test/webpack/* +node_modules/ +.idea/ +test/webpack/ diff --git a/dist/filesize.cjs b/dist/filesize.cjs index ae6f87c..09d8fb5 100644 --- a/dist/filesize.cjs +++ b/dist/filesize.cjs @@ -195,7 +195,7 @@ function filesize (arg, { } // Partial application for functional programming -filesize.partial = function partial ({ +function partial ({ bits = false, pad = false, base = -1, @@ -231,6 +231,7 @@ filesize.partial = function partial ({ roundingMethod, precision }); -}; +} -exports["default"] = filesize; +exports.filesize = filesize; +exports.partial = partial; diff --git a/dist/filesize.esm.js b/dist/filesize.esm.js index 7f43f51..919e0e8 100644 --- a/dist/filesize.esm.js +++ b/dist/filesize.esm.js @@ -189,7 +189,7 @@ const STRINGS = { } // Partial application for functional programming -filesize.partial = function partial ({ +function partial ({ bits = false, pad = false, base = -1, @@ -225,4 +225,4 @@ filesize.partial = function partial ({ roundingMethod, precision }); -};export{filesize as default}; \ No newline at end of file +}export{filesize,partial}; \ No newline at end of file diff --git a/dist/filesize.esm.min.js b/dist/filesize.esm.min.js index 0487fec..94a8793 100644 --- a/dist/filesize.esm.min.js +++ b/dist/filesize.esm.min.js @@ -2,4 +2,4 @@ 2022 Jason Mulligan @version 10.0.3 */ -const t={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}};function i(i,{bits:e=!1,pad:o=!1,base:n=-1,round:r=2,locale:a="",localeOptions:s={},separator:b="",spacer:l=" ",symbols:p={},standard:c="",output:u="string",fullform:d=!1,fullforms:f=[],exponent:g=-1,roundingMethod:m="round",precision:y=0}={}){let B=g,h=Number(i),M=[],j=0,x="";-1===n&&0===c.length?(n=10,c="jedec"):-1===n&&c.length>0?n="iec"===(c="iec"===c?"iec":"jedec")?2:10:c=10===(n=2===n?2:10)||"jedec"===c?"jedec":"iec";const w=10===n?1e3:1024,E=!0===d,N=h<0,T=Math[m];if("bigint"!=typeof i&&isNaN(i))throw new TypeError("Invalid number");if("function"!=typeof T)throw new TypeError("Invalid rounding method");if(N&&(h=-h),(-1===B||isNaN(B))&&(B=Math.floor(Math.log(h)/Math.log(w)),B<0&&(B=0)),B>8&&(y>0&&(y+=8-B),B=8),"exponent"===u)return B;if(0===h)M[0]=0,x=M[1]=t.symbol[c][e?"bits":"bytes"][B];else{j=h/(2===n?Math.pow(2,10*B):Math.pow(1e3,B)),e&&(j*=8,j>=w&&B<8&&(j/=w,B++));const i=Math.pow(10,B>0?r:0);M[0]=T(j*i)/i,M[0]===w&&B<8&&-1===g&&(M[0]=1,B++),x=M[1]=10===n&&1===B?e?"kbit":"kB":t.symbol[c][e?"bits":"bytes"][B]}if(N&&(M[0]=-M[0]),y>0&&(M[0]=M[0].toPrecision(y)),M[1]=p[M[1]]||M[1],!0===a?M[0]=M[0].toLocaleString():a.length>0?M[0]=M[0].toLocaleString(a,s):b.length>0&&(M[0]=M[0].toString().replace(".",b)),o&&!1===Number.isInteger(M[0])&&r>0){const t=b||".",i=M[0].toString().split(t),e=i[1]||"",o=e.length,n=r-o;M[0]=`${i[0]}${t}${e.padEnd(o+n,"0")}`}return E&&(M[1]=f[B]?f[B]:t.fullform[c][B]+(e?"bit":"byte")+(1===M[0]?"":"s")),"array"===u?M:"object"===u?{value:M[0],symbol:M[1],exponent:B,unit:x}:M.join(l)}i.partial=function({bits:t=!1,pad:e=!1,base:o=-1,round:n=2,locale:r="",localeOptions:a={},separator:s="",spacer:b=" ",symbols:l={},standard:p="",output:c="string",fullform:u=!1,fullforms:d=[],exponent:f=-1,roundingMethod:g="round",precision:m=0}={}){return y=>i(y,{bits:t,pad:e,base:o,round:n,locale:r,localeOptions:a,separator:s,spacer:b,symbols:l,standard:p,output:c,fullform:u,fullforms:d,exponent:f,roundingMethod:g,precision:m})};export{i as default};//# sourceMappingURL=filesize.esm.min.js.map +const t={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}};function i(i,{bits:e=!1,pad:o=!1,base:n=-1,round:r=2,locale:b="",localeOptions:s={},separator:l="",spacer:a=" ",symbols:c={},standard:p="",output:u="string",fullform:d=!1,fullforms:f=[],exponent:g=-1,roundingMethod:m="round",precision:y=0}={}){let B=g,h=Number(i),M=[],j=0,x="";-1===n&&0===p.length?(n=10,p="jedec"):-1===n&&p.length>0?n="iec"===(p="iec"===p?"iec":"jedec")?2:10:p=10===(n=2===n?2:10)||"jedec"===p?"jedec":"iec";const w=10===n?1e3:1024,E=!0===d,N=h<0,T=Math[m];if("bigint"!=typeof i&&isNaN(i))throw new TypeError("Invalid number");if("function"!=typeof T)throw new TypeError("Invalid rounding method");if(N&&(h=-h),(-1===B||isNaN(B))&&(B=Math.floor(Math.log(h)/Math.log(w)),B<0&&(B=0)),B>8&&(y>0&&(y+=8-B),B=8),"exponent"===u)return B;if(0===h)M[0]=0,x=M[1]=t.symbol[p][e?"bits":"bytes"][B];else{j=h/(2===n?Math.pow(2,10*B):Math.pow(1e3,B)),e&&(j*=8,j>=w&&B<8&&(j/=w,B++));const i=Math.pow(10,B>0?r:0);M[0]=T(j*i)/i,M[0]===w&&B<8&&-1===g&&(M[0]=1,B++),x=M[1]=10===n&&1===B?e?"kbit":"kB":t.symbol[p][e?"bits":"bytes"][B]}if(N&&(M[0]=-M[0]),y>0&&(M[0]=M[0].toPrecision(y)),M[1]=c[M[1]]||M[1],!0===b?M[0]=M[0].toLocaleString():b.length>0?M[0]=M[0].toLocaleString(b,s):l.length>0&&(M[0]=M[0].toString().replace(".",l)),o&&!1===Number.isInteger(M[0])&&r>0){const t=l||".",i=M[0].toString().split(t),e=i[1]||"",o=e.length,n=r-o;M[0]=`${i[0]}${t}${e.padEnd(o+n,"0")}`}return E&&(M[1]=f[B]?f[B]:t.fullform[p][B]+(e?"bit":"byte")+(1===M[0]?"":"s")),"array"===u?M:"object"===u?{value:M[0],symbol:M[1],exponent:B,unit:x}:M.join(a)}function e({bits:t=!1,pad:e=!1,base:o=-1,round:n=2,locale:r="",localeOptions:b={},separator:s="",spacer:l=" ",symbols:a={},standard:c="",output:p="string",fullform:u=!1,fullforms:d=[],exponent:f=-1,roundingMethod:g="round",precision:m=0}={}){return y=>i(y,{bits:t,pad:e,base:o,round:n,locale:r,localeOptions:b,separator:s,spacer:l,symbols:a,standard:c,output:p,fullform:u,fullforms:d,exponent:f,roundingMethod:g,precision:m})}export{i as filesize,e as partial};//# sourceMappingURL=filesize.esm.min.js.map diff --git a/dist/filesize.esm.min.js.map b/dist/filesize.esm.min.js.map index 44370d0..27f2c8f 100644 --- a/dist/filesize.esm.min.js.map +++ b/dist/filesize.esm.min.js.map @@ -1 +1 @@ -{"version":3,"file":"filesize.esm.min.js","sources":["../src/constants.js","../src/filesize.js"],"sourcesContent":["export const ARRAY = \"array\";\nexport const BIT = \"bit\";\nexport const BITS = \"bits\";\nexport const BYTE = \"byte\";\nexport const BYTES = \"bytes\";\nexport const EMPTY = \"\";\nexport const EXPONENT = \"exponent\";\nexport const FUNCTION = \"function\";\nexport const IEC = \"iec\";\nexport const INVALID_NUMBER = \"Invalid number\";\nexport const INVALID_ROUND = \"Invalid rounding method\";\nexport const JEDEC = \"jedec\";\nexport const OBJECT = \"object\";\nexport const PERIOD = \".\";\nexport const ROUND = \"round\";\nexport const S = \"s\";\nexport const SI_KBIT = \"kbit\";\nexport const SI_KBYTE = \"kB\";\nexport const SPACE = \" \";\nexport const STRING = \"string\";\nexport const ZERO = \"0\";\nexport const STRINGS = {\n\tsymbol: {\n\t\tiec: {\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\tfullform: {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t}\n};\n","import {\n\tARRAY,\n\tBIT,\n\tBITS,\n\tBYTE,\n\tBYTES,\n\tEMPTY,\n\tEXPONENT,\n\tFUNCTION,\n\tIEC,\n\tINVALID_NUMBER,\n\tINVALID_ROUND,\n\tJEDEC,\n\tOBJECT,\n\tPERIOD,\n\tROUND,\n\tS,\n\tSI_KBIT,\n\tSI_KBYTE,\n\tSPACE,\n\tSTRING,\n\tSTRINGS,\n\tZERO\n} from \"./constants\";\n\nexport default function filesize (arg, {\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\tlet e = exponent,\n\t\tnum = Number(arg),\n\t\tresult = [],\n\t\tval = 0,\n\t\tu = EMPTY;\n\n\t// Sync base & standard\n\tif (base === -1 && standard.length === 0) {\n\t\tbase = 10;\n\t\tstandard = JEDEC;\n\t} else if (base === -1 && standard.length > 0) {\n\t\tstandard = standard === IEC ? IEC : JEDEC;\n\t\tbase = standard === IEC ? 2 : 10;\n\t} else {\n\t\tbase = base === 2 ? 2 : 10;\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\n\t}\n\n\tconst ceil = base === 10 ? 1000 : 1024,\n\t\tfull = fullform === true,\n\t\tneg = num < 0,\n\t\troundingFunc = Math[roundingMethod];\n\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\n\t\tthrow new TypeError(INVALID_NUMBER);\n\t}\n\n\tif (typeof roundingFunc !== FUNCTION) {\n\t\tthrow new TypeError(INVALID_ROUND);\n\t}\n\n\t// Flipping a negative number to determine the size\n\tif (neg) {\n\t\tnum = -num;\n\t}\n\n\t// Determining the exponent\n\tif (e === -1 || isNaN(e)) {\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\tif (e < 0) {\n\t\t\te = 0;\n\t\t}\n\t}\n\n\t// Exceeding supported length, time to reduce & multiply\n\tif (e > 8) {\n\t\tif (precision > 0) {\n\t\t\tprecision += 8 - e;\n\t\t}\n\n\t\te = 8;\n\t}\n\n\tif (output === EXPONENT) {\n\t\treturn e;\n\t}\n\n\t// Zero is now a special case because bytes divide by 1\n\tif (num === 0) {\n\t\tresult[0] = 0;\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t} else {\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\tif (bits) {\n\t\t\tval = val * 8;\n\n\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\tval = val / ceil;\n\t\t\t\te++;\n\t\t\t}\n\t\t}\n\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\n\t\tresult[0] = roundingFunc(val * p) / p;\n\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\n\t\t\tresult[0] = 1;\n\t\t\te++;\n\t\t}\n\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t}\n\n\t// Decorating a 'diff'\n\tif (neg) {\n\t\tresult[0] = -result[0];\n\t}\n\n\t// Setting optional precision\n\tif (precision > 0) {\n\t\tresult[0] = result[0].toPrecision(precision);\n\t}\n\n\t// Applying custom symbol\n\tresult[1] = symbols[result[1]] || result[1];\n\n\tif (locale === true) {\n\t\tresult[0] = result[0].toLocaleString();\n\t} else if (locale.length > 0) {\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\n\t} else if (separator.length > 0) {\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\n\t}\n\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\n\t\tconst x = separator || PERIOD,\n\t\t\ttmp = result[0].toString().split(x),\n\t\t\ts = tmp[1] || EMPTY,\n\t\t\tl = s.length,\n\t\t\tn = round - l;\n\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\n\t}\n\n\tif (full) {\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\n\t}\n\n\t// Returning Array, Object, or String (default)\n\treturn output === ARRAY ? result : output === OBJECT ? {\n\t\tvalue: result[0],\n\t\tsymbol: result[1],\n\t\texponent: e,\n\t\tunit: u\n\t} : result.join(spacer);\n}\n\n// Partial application for functional programming\nfilesize.partial = function partial ({\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\treturn arg => filesize(arg, {\n\t\tbits,\n\t\tpad,\n\t\tbase,\n\t\tround,\n\t\tlocale,\n\t\tlocaleOptions,\n\t\tseparator,\n\t\tspacer,\n\t\tsymbols,\n\t\tstandard,\n\t\toutput,\n\t\tfullform,\n\t\tfullforms,\n\t\texponent,\n\t\troundingMethod,\n\t\tprecision\n\t});\n};\n"],"names":["STRINGS","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","pad","base","round","locale","localeOptions","separator","spacer","symbols","standard","output","fullforms","exponent","roundingMethod","precision","e","num","Number","result","val","u","length","ceil","full","neg","roundingFunc","Math","isNaN","TypeError","floor","log","pow","p","toPrecision","toLocaleString","toString","replace","isInteger","x","tmp","split","s","l","n","padEnd","value","unit","join","partial"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"filesize.esm.min.js","sources":["../src/constants.js","../src/filesize.js"],"sourcesContent":["export const ARRAY = \"array\";\nexport const BIT = \"bit\";\nexport const BITS = \"bits\";\nexport const BYTE = \"byte\";\nexport const BYTES = \"bytes\";\nexport const EMPTY = \"\";\nexport const EXPONENT = \"exponent\";\nexport const FUNCTION = \"function\";\nexport const IEC = \"iec\";\nexport const INVALID_NUMBER = \"Invalid number\";\nexport const INVALID_ROUND = \"Invalid rounding method\";\nexport const JEDEC = \"jedec\";\nexport const OBJECT = \"object\";\nexport const PERIOD = \".\";\nexport const ROUND = \"round\";\nexport const S = \"s\";\nexport const SI_KBIT = \"kbit\";\nexport const SI_KBYTE = \"kB\";\nexport const SPACE = \" \";\nexport const STRING = \"string\";\nexport const ZERO = \"0\";\nexport const STRINGS = {\n\tsymbol: {\n\t\tiec: {\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\tfullform: {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t}\n};\n","import {\n\tARRAY,\n\tBIT,\n\tBITS,\n\tBYTE,\n\tBYTES,\n\tEMPTY,\n\tEXPONENT,\n\tFUNCTION,\n\tIEC,\n\tINVALID_NUMBER,\n\tINVALID_ROUND,\n\tJEDEC,\n\tOBJECT,\n\tPERIOD,\n\tROUND,\n\tS,\n\tSI_KBIT,\n\tSI_KBYTE,\n\tSPACE,\n\tSTRING,\n\tSTRINGS,\n\tZERO\n} from \"./constants\";\n\nexport function filesize (arg, {\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\tlet e = exponent,\n\t\tnum = Number(arg),\n\t\tresult = [],\n\t\tval = 0,\n\t\tu = EMPTY;\n\n\t// Sync base & standard\n\tif (base === -1 && standard.length === 0) {\n\t\tbase = 10;\n\t\tstandard = JEDEC;\n\t} else if (base === -1 && standard.length > 0) {\n\t\tstandard = standard === IEC ? IEC : JEDEC;\n\t\tbase = standard === IEC ? 2 : 10;\n\t} else {\n\t\tbase = base === 2 ? 2 : 10;\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\n\t}\n\n\tconst ceil = base === 10 ? 1000 : 1024,\n\t\tfull = fullform === true,\n\t\tneg = num < 0,\n\t\troundingFunc = Math[roundingMethod];\n\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\n\t\tthrow new TypeError(INVALID_NUMBER);\n\t}\n\n\tif (typeof roundingFunc !== FUNCTION) {\n\t\tthrow new TypeError(INVALID_ROUND);\n\t}\n\n\t// Flipping a negative number to determine the size\n\tif (neg) {\n\t\tnum = -num;\n\t}\n\n\t// Determining the exponent\n\tif (e === -1 || isNaN(e)) {\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\tif (e < 0) {\n\t\t\te = 0;\n\t\t}\n\t}\n\n\t// Exceeding supported length, time to reduce & multiply\n\tif (e > 8) {\n\t\tif (precision > 0) {\n\t\t\tprecision += 8 - e;\n\t\t}\n\n\t\te = 8;\n\t}\n\n\tif (output === EXPONENT) {\n\t\treturn e;\n\t}\n\n\t// Zero is now a special case because bytes divide by 1\n\tif (num === 0) {\n\t\tresult[0] = 0;\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t} else {\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\tif (bits) {\n\t\t\tval = val * 8;\n\n\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\tval = val / ceil;\n\t\t\t\te++;\n\t\t\t}\n\t\t}\n\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\n\t\tresult[0] = roundingFunc(val * p) / p;\n\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\n\t\t\tresult[0] = 1;\n\t\t\te++;\n\t\t}\n\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t}\n\n\t// Decorating a 'diff'\n\tif (neg) {\n\t\tresult[0] = -result[0];\n\t}\n\n\t// Setting optional precision\n\tif (precision > 0) {\n\t\tresult[0] = result[0].toPrecision(precision);\n\t}\n\n\t// Applying custom symbol\n\tresult[1] = symbols[result[1]] || result[1];\n\n\tif (locale === true) {\n\t\tresult[0] = result[0].toLocaleString();\n\t} else if (locale.length > 0) {\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\n\t} else if (separator.length > 0) {\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\n\t}\n\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\n\t\tconst x = separator || PERIOD,\n\t\t\ttmp = result[0].toString().split(x),\n\t\t\ts = tmp[1] || EMPTY,\n\t\t\tl = s.length,\n\t\t\tn = round - l;\n\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\n\t}\n\n\tif (full) {\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\n\t}\n\n\t// Returning Array, Object, or String (default)\n\treturn output === ARRAY ? result : output === OBJECT ? {\n\t\tvalue: result[0],\n\t\tsymbol: result[1],\n\t\texponent: e,\n\t\tunit: u\n\t} : result.join(spacer);\n}\n\n// Partial application for functional programming\nexport function partial ({\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\treturn arg => filesize(arg, {\n\t\tbits,\n\t\tpad,\n\t\tbase,\n\t\tround,\n\t\tlocale,\n\t\tlocaleOptions,\n\t\tseparator,\n\t\tspacer,\n\t\tsymbols,\n\t\tstandard,\n\t\toutput,\n\t\tfullform,\n\t\tfullforms,\n\t\texponent,\n\t\troundingMethod,\n\t\tprecision\n\t});\n};\n"],"names":["STRINGS","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","pad","base","round","locale","localeOptions","separator","spacer","symbols","standard","output","fullforms","exponent","roundingMethod","precision","e","num","Number","result","val","u","length","ceil","full","neg","roundingFunc","Math","isNaN","TypeError","floor","log","pow","p","toPrecision","toLocaleString","toString","replace","isInteger","x","tmp","split","s","l","n","padEnd","value","unit","join","partial"],"mappings":"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"} \ No newline at end of file diff --git a/dist/filesize.js b/dist/filesize.js index e860f5be..cde1fbe 100644 --- a/dist/filesize.js +++ b/dist/filesize.js @@ -5,7 +5,7 @@ * @license BSD-3-Clause * @version 10.0.3 */ -(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f():typeof define==='function'&&define.amd?define(f):(g=typeof globalThis!=='undefined'?globalThis:g||self,g.filesize=f());})(this,(function(){'use strict';const ARRAY = "array"; +(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports):typeof define==='function'&&define.amd?define(['exports'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.filesize={}));})(this,(function(exports){'use strict';const ARRAY = "array"; const BIT = "bit"; const BITS = "bits"; const BYTE = "byte"; @@ -189,7 +189,7 @@ const STRINGS = { } // Partial application for functional programming -filesize.partial = function partial ({ +function partial ({ bits = false, pad = false, base = -1, @@ -225,4 +225,4 @@ filesize.partial = function partial ({ roundingMethod, precision }); -};return filesize;})); \ No newline at end of file +}exports.filesize=filesize;exports.partial=partial;Object.defineProperty(exports,'__esModule',{value:true});})); \ No newline at end of file diff --git a/dist/filesize.min.js b/dist/filesize.min.js index d10f7c8..739aabc 100644 --- a/dist/filesize.min.js +++ b/dist/filesize.min.js @@ -2,4 +2,4 @@ 2022 Jason Mulligan @version 10.0.3 */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).filesize=e()}(this,(function(){"use strict";const t="bits",e="bytes",i="",o="iec",n="jedec",r="round",l="string",s={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}};function a(a,{bits:b=!1,pad:p=!1,base:u=-1,round:f=2,locale:d="",localeOptions:c={},separator:g="",spacer:m=" ",symbols:y={},standard:h="",output:B=l,fullform:M=!1,fullforms:x=[],exponent:T=-1,roundingMethod:w=r,precision:E=0}={}){let j=T,N=Number(a),P=[],k=0,G=i;-1===u&&0===h.length?(u=10,h=n):-1===u&&h.length>0?u=(h=h===o?o:n)===o?2:10:h=10===(u=2===u?2:10)||h===n?n:o;const K=10===u?1e3:1024,S=!0===M,Y=N<0,Z=Math[w];if("bigint"!=typeof a&&isNaN(a))throw new TypeError("Invalid number");if("function"!=typeof Z)throw new TypeError("Invalid rounding method");if(Y&&(N=-N),(-1===j||isNaN(j))&&(j=Math.floor(Math.log(N)/Math.log(K)),j<0&&(j=0)),j>8&&(E>0&&(E+=8-j),j=8),"exponent"===B)return j;if(0===N)P[0]=0,G=P[1]=s.symbol[h][b?t:e][j];else{k=N/(2===u?Math.pow(2,10*j):Math.pow(1e3,j)),b&&(k*=8,k>=K&&j<8&&(k/=K,j++));const i=Math.pow(10,j>0?f:0);P[0]=Z(k*i)/i,P[0]===K&&j<8&&-1===T&&(P[0]=1,j++),G=P[1]=10===u&&1===j?b?"kbit":"kB":s.symbol[h][b?t:e][j]}if(Y&&(P[0]=-P[0]),E>0&&(P[0]=P[0].toPrecision(E)),P[1]=y[P[1]]||P[1],!0===d?P[0]=P[0].toLocaleString():d.length>0?P[0]=P[0].toLocaleString(d,c):g.length>0&&(P[0]=P[0].toString().replace(".",g)),p&&!1===Number.isInteger(P[0])&&f>0){const t=g||".",e=P[0].toString().split(t),o=e[1]||i,n=o.length,r=f-n;P[0]=`${e[0]}${t}${o.padEnd(n+r,"0")}`}return S&&(P[1]=x[j]?x[j]:s.fullform[h][j]+(b?"bit":"byte")+(1===P[0]?i:"s")),"array"===B?P:"object"===B?{value:P[0],symbol:P[1],exponent:j,unit:G}:P.join(m)}return a.partial=function({bits:t=!1,pad:e=!1,base:i=-1,round:o=2,locale:n="",localeOptions:s={},separator:b="",spacer:p=" ",symbols:u={},standard:f="",output:d=l,fullform:c=!1,fullforms:g=[],exponent:m=-1,roundingMethod:y=r,precision:h=0}={}){return r=>a(r,{bits:t,pad:e,base:i,round:o,locale:n,localeOptions:s,separator:b,spacer:p,symbols:u,standard:f,output:d,fullform:c,fullforms:g,exponent:m,roundingMethod:y,precision:h})},a}));//# sourceMappingURL=filesize.min.js.map +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).filesize={})}(this,(function(t){"use strict";const e="bits",i="bytes",o="",n="iec",r="jedec",l="round",s="string",a={symbol:{iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},fullform:{iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]}};function b(t,{bits:b=!1,pad:p=!1,base:f=-1,round:u=2,locale:d="",localeOptions:c={},separator:g="",spacer:m=" ",symbols:y={},standard:h="",output:B=s,fullform:M=!1,fullforms:x=[],exponent:T=-1,roundingMethod:j=l,precision:w=0}={}){let E=T,N=Number(t),P=[],k=0,v=o;-1===f&&0===h.length?(f=10,h=r):-1===f&&h.length>0?f=(h=h===n?n:r)===n?2:10:h=10===(f=2===f?2:10)||h===r?r:n;const z=10===f?1e3:1024,G=!0===M,K=N<0,O=Math[j];if("bigint"!=typeof t&&isNaN(t))throw new TypeError("Invalid number");if("function"!=typeof O)throw new TypeError("Invalid rounding method");if(K&&(N=-N),(-1===E||isNaN(E))&&(E=Math.floor(Math.log(N)/Math.log(z)),E<0&&(E=0)),E>8&&(w>0&&(w+=8-E),E=8),"exponent"===B)return E;if(0===N)P[0]=0,v=P[1]=a.symbol[h][b?e:i][E];else{k=N/(2===f?Math.pow(2,10*E):Math.pow(1e3,E)),b&&(k*=8,k>=z&&E<8&&(k/=z,E++));const t=Math.pow(10,E>0?u:0);P[0]=O(k*t)/t,P[0]===z&&E<8&&-1===T&&(P[0]=1,E++),v=P[1]=10===f&&1===E?b?"kbit":"kB":a.symbol[h][b?e:i][E]}if(K&&(P[0]=-P[0]),w>0&&(P[0]=P[0].toPrecision(w)),P[1]=y[P[1]]||P[1],!0===d?P[0]=P[0].toLocaleString():d.length>0?P[0]=P[0].toLocaleString(d,c):g.length>0&&(P[0]=P[0].toString().replace(".",g)),p&&!1===Number.isInteger(P[0])&&u>0){const t=g||".",e=P[0].toString().split(t),i=e[1]||o,n=i.length,r=u-n;P[0]=`${e[0]}${t}${i.padEnd(n+r,"0")}`}return G&&(P[1]=x[E]?x[E]:a.fullform[h][E]+(b?"bit":"byte")+(1===P[0]?o:"s")),"array"===B?P:"object"===B?{value:P[0],symbol:P[1],exponent:E,unit:v}:P.join(m)}t.filesize=b,t.partial=function({bits:t=!1,pad:e=!1,base:i=-1,round:o=2,locale:n="",localeOptions:r={},separator:a="",spacer:p=" ",symbols:f={},standard:u="",output:d=s,fullform:c=!1,fullforms:g=[],exponent:m=-1,roundingMethod:y=l,precision:h=0}={}){return l=>b(l,{bits:t,pad:e,base:i,round:o,locale:n,localeOptions:r,separator:a,spacer:p,symbols:f,standard:u,output:d,fullform:c,fullforms:g,exponent:m,roundingMethod:y,precision:h})},Object.defineProperty(t,"__esModule",{value:!0})}));//# sourceMappingURL=filesize.min.js.map diff --git a/dist/filesize.min.js.map b/dist/filesize.min.js.map index b10ef93..86f17f5 100644 --- a/dist/filesize.min.js.map +++ b/dist/filesize.min.js.map @@ -1 +1 @@ -{"version":3,"file":"filesize.min.js","sources":["../src/constants.js","../src/filesize.js"],"sourcesContent":["export const ARRAY = \"array\";\nexport const BIT = \"bit\";\nexport const BITS = \"bits\";\nexport const BYTE = \"byte\";\nexport const BYTES = \"bytes\";\nexport const EMPTY = \"\";\nexport const EXPONENT = \"exponent\";\nexport const FUNCTION = \"function\";\nexport const IEC = \"iec\";\nexport const INVALID_NUMBER = \"Invalid number\";\nexport const INVALID_ROUND = \"Invalid rounding method\";\nexport const JEDEC = \"jedec\";\nexport const OBJECT = \"object\";\nexport const PERIOD = \".\";\nexport const ROUND = \"round\";\nexport const S = \"s\";\nexport const SI_KBIT = \"kbit\";\nexport const SI_KBYTE = \"kB\";\nexport const SPACE = \" \";\nexport const STRING = \"string\";\nexport const ZERO = \"0\";\nexport const STRINGS = {\n\tsymbol: {\n\t\tiec: {\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\tfullform: {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t}\n};\n","import {\n\tARRAY,\n\tBIT,\n\tBITS,\n\tBYTE,\n\tBYTES,\n\tEMPTY,\n\tEXPONENT,\n\tFUNCTION,\n\tIEC,\n\tINVALID_NUMBER,\n\tINVALID_ROUND,\n\tJEDEC,\n\tOBJECT,\n\tPERIOD,\n\tROUND,\n\tS,\n\tSI_KBIT,\n\tSI_KBYTE,\n\tSPACE,\n\tSTRING,\n\tSTRINGS,\n\tZERO\n} from \"./constants\";\n\nexport default function filesize (arg, {\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\tlet e = exponent,\n\t\tnum = Number(arg),\n\t\tresult = [],\n\t\tval = 0,\n\t\tu = EMPTY;\n\n\t// Sync base & standard\n\tif (base === -1 && standard.length === 0) {\n\t\tbase = 10;\n\t\tstandard = JEDEC;\n\t} else if (base === -1 && standard.length > 0) {\n\t\tstandard = standard === IEC ? IEC : JEDEC;\n\t\tbase = standard === IEC ? 2 : 10;\n\t} else {\n\t\tbase = base === 2 ? 2 : 10;\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\n\t}\n\n\tconst ceil = base === 10 ? 1000 : 1024,\n\t\tfull = fullform === true,\n\t\tneg = num < 0,\n\t\troundingFunc = Math[roundingMethod];\n\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\n\t\tthrow new TypeError(INVALID_NUMBER);\n\t}\n\n\tif (typeof roundingFunc !== FUNCTION) {\n\t\tthrow new TypeError(INVALID_ROUND);\n\t}\n\n\t// Flipping a negative number to determine the size\n\tif (neg) {\n\t\tnum = -num;\n\t}\n\n\t// Determining the exponent\n\tif (e === -1 || isNaN(e)) {\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\tif (e < 0) {\n\t\t\te = 0;\n\t\t}\n\t}\n\n\t// Exceeding supported length, time to reduce & multiply\n\tif (e > 8) {\n\t\tif (precision > 0) {\n\t\t\tprecision += 8 - e;\n\t\t}\n\n\t\te = 8;\n\t}\n\n\tif (output === EXPONENT) {\n\t\treturn e;\n\t}\n\n\t// Zero is now a special case because bytes divide by 1\n\tif (num === 0) {\n\t\tresult[0] = 0;\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t} else {\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\tif (bits) {\n\t\t\tval = val * 8;\n\n\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\tval = val / ceil;\n\t\t\t\te++;\n\t\t\t}\n\t\t}\n\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\n\t\tresult[0] = roundingFunc(val * p) / p;\n\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\n\t\t\tresult[0] = 1;\n\t\t\te++;\n\t\t}\n\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t}\n\n\t// Decorating a 'diff'\n\tif (neg) {\n\t\tresult[0] = -result[0];\n\t}\n\n\t// Setting optional precision\n\tif (precision > 0) {\n\t\tresult[0] = result[0].toPrecision(precision);\n\t}\n\n\t// Applying custom symbol\n\tresult[1] = symbols[result[1]] || result[1];\n\n\tif (locale === true) {\n\t\tresult[0] = result[0].toLocaleString();\n\t} else if (locale.length > 0) {\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\n\t} else if (separator.length > 0) {\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\n\t}\n\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\n\t\tconst x = separator || PERIOD,\n\t\t\ttmp = result[0].toString().split(x),\n\t\t\ts = tmp[1] || EMPTY,\n\t\t\tl = s.length,\n\t\t\tn = round - l;\n\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\n\t}\n\n\tif (full) {\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\n\t}\n\n\t// Returning Array, Object, or String (default)\n\treturn output === ARRAY ? result : output === OBJECT ? {\n\t\tvalue: result[0],\n\t\tsymbol: result[1],\n\t\texponent: e,\n\t\tunit: u\n\t} : result.join(spacer);\n}\n\n// Partial application for functional programming\nfilesize.partial = function partial ({\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\treturn arg => filesize(arg, {\n\t\tbits,\n\t\tpad,\n\t\tbase,\n\t\tround,\n\t\tlocale,\n\t\tlocaleOptions,\n\t\tseparator,\n\t\tspacer,\n\t\tsymbols,\n\t\tstandard,\n\t\toutput,\n\t\tfullform,\n\t\tfullforms,\n\t\texponent,\n\t\troundingMethod,\n\t\tprecision\n\t});\n};\n"],"names":["BITS","BYTES","EMPTY","IEC","JEDEC","ROUND","STRING","STRINGS","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","pad","base","round","locale","localeOptions","separator","spacer","symbols","standard","output","fullforms","exponent","roundingMethod","precision","e","num","Number","result","val","u","length","ceil","full","neg","roundingFunc","Math","isNaN","TypeError","floor","log","pow","p","toPrecision","toLocaleString","toString","replace","isInteger","x","tmp","split","s","l","n","padEnd","value","unit","join","partial"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"filesize.min.js","sources":["../src/constants.js","../src/filesize.js"],"sourcesContent":["export const ARRAY = \"array\";\nexport const BIT = \"bit\";\nexport const BITS = \"bits\";\nexport const BYTE = \"byte\";\nexport const BYTES = \"bytes\";\nexport const EMPTY = \"\";\nexport const EXPONENT = \"exponent\";\nexport const FUNCTION = \"function\";\nexport const IEC = \"iec\";\nexport const INVALID_NUMBER = \"Invalid number\";\nexport const INVALID_ROUND = \"Invalid rounding method\";\nexport const JEDEC = \"jedec\";\nexport const OBJECT = \"object\";\nexport const PERIOD = \".\";\nexport const ROUND = \"round\";\nexport const S = \"s\";\nexport const SI_KBIT = \"kbit\";\nexport const SI_KBYTE = \"kB\";\nexport const SPACE = \" \";\nexport const STRING = \"string\";\nexport const ZERO = \"0\";\nexport const STRINGS = {\n\tsymbol: {\n\t\tiec: {\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\tfullform: {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t}\n};\n","import {\n\tARRAY,\n\tBIT,\n\tBITS,\n\tBYTE,\n\tBYTES,\n\tEMPTY,\n\tEXPONENT,\n\tFUNCTION,\n\tIEC,\n\tINVALID_NUMBER,\n\tINVALID_ROUND,\n\tJEDEC,\n\tOBJECT,\n\tPERIOD,\n\tROUND,\n\tS,\n\tSI_KBIT,\n\tSI_KBYTE,\n\tSPACE,\n\tSTRING,\n\tSTRINGS,\n\tZERO\n} from \"./constants\";\n\nexport function filesize (arg, {\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\tlet e = exponent,\n\t\tnum = Number(arg),\n\t\tresult = [],\n\t\tval = 0,\n\t\tu = EMPTY;\n\n\t// Sync base & standard\n\tif (base === -1 && standard.length === 0) {\n\t\tbase = 10;\n\t\tstandard = JEDEC;\n\t} else if (base === -1 && standard.length > 0) {\n\t\tstandard = standard === IEC ? IEC : JEDEC;\n\t\tbase = standard === IEC ? 2 : 10;\n\t} else {\n\t\tbase = base === 2 ? 2 : 10;\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\n\t}\n\n\tconst ceil = base === 10 ? 1000 : 1024,\n\t\tfull = fullform === true,\n\t\tneg = num < 0,\n\t\troundingFunc = Math[roundingMethod];\n\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\n\t\tthrow new TypeError(INVALID_NUMBER);\n\t}\n\n\tif (typeof roundingFunc !== FUNCTION) {\n\t\tthrow new TypeError(INVALID_ROUND);\n\t}\n\n\t// Flipping a negative number to determine the size\n\tif (neg) {\n\t\tnum = -num;\n\t}\n\n\t// Determining the exponent\n\tif (e === -1 || isNaN(e)) {\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\tif (e < 0) {\n\t\t\te = 0;\n\t\t}\n\t}\n\n\t// Exceeding supported length, time to reduce & multiply\n\tif (e > 8) {\n\t\tif (precision > 0) {\n\t\t\tprecision += 8 - e;\n\t\t}\n\n\t\te = 8;\n\t}\n\n\tif (output === EXPONENT) {\n\t\treturn e;\n\t}\n\n\t// Zero is now a special case because bytes divide by 1\n\tif (num === 0) {\n\t\tresult[0] = 0;\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t} else {\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\tif (bits) {\n\t\t\tval = val * 8;\n\n\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\tval = val / ceil;\n\t\t\t\te++;\n\t\t\t}\n\t\t}\n\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\n\t\tresult[0] = roundingFunc(val * p) / p;\n\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\n\t\t\tresult[0] = 1;\n\t\t\te++;\n\t\t}\n\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\n\t}\n\n\t// Decorating a 'diff'\n\tif (neg) {\n\t\tresult[0] = -result[0];\n\t}\n\n\t// Setting optional precision\n\tif (precision > 0) {\n\t\tresult[0] = result[0].toPrecision(precision);\n\t}\n\n\t// Applying custom symbol\n\tresult[1] = symbols[result[1]] || result[1];\n\n\tif (locale === true) {\n\t\tresult[0] = result[0].toLocaleString();\n\t} else if (locale.length > 0) {\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\n\t} else if (separator.length > 0) {\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\n\t}\n\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\n\t\tconst x = separator || PERIOD,\n\t\t\ttmp = result[0].toString().split(x),\n\t\t\ts = tmp[1] || EMPTY,\n\t\t\tl = s.length,\n\t\t\tn = round - l;\n\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\n\t}\n\n\tif (full) {\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\n\t}\n\n\t// Returning Array, Object, or String (default)\n\treturn output === ARRAY ? result : output === OBJECT ? {\n\t\tvalue: result[0],\n\t\tsymbol: result[1],\n\t\texponent: e,\n\t\tunit: u\n\t} : result.join(spacer);\n}\n\n// Partial application for functional programming\nexport function partial ({\n\tbits = false,\n\tpad = false,\n\tbase = -1,\n\tround = 2,\n\tlocale = EMPTY,\n\tlocaleOptions = {},\n\tseparator = EMPTY,\n\tspacer = SPACE,\n\tsymbols = {},\n\tstandard = EMPTY,\n\toutput = STRING,\n\tfullform = false,\n\tfullforms = [],\n\texponent = -1,\n\troundingMethod = ROUND,\n\tprecision = 0\n} = {}) {\n\treturn arg => filesize(arg, {\n\t\tbits,\n\t\tpad,\n\t\tbase,\n\t\tround,\n\t\tlocale,\n\t\tlocaleOptions,\n\t\tseparator,\n\t\tspacer,\n\t\tsymbols,\n\t\tstandard,\n\t\toutput,\n\t\tfullform,\n\t\tfullforms,\n\t\texponent,\n\t\troundingMethod,\n\t\tprecision\n\t});\n};\n"],"names":["BITS","BYTES","EMPTY","IEC","JEDEC","ROUND","STRING","STRINGS","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","pad","base","round","locale","localeOptions","separator","spacer","symbols","standard","output","fullforms","exponent","roundingMethod","precision","e","num","Number","result","val","u","length","ceil","full","neg","roundingFunc","Math","isNaN","TypeError","floor","log","pow","p","toPrecision","toLocaleString","toString","replace","isInteger","x","tmp","split","s","l","n","padEnd","value","unit","join","exports","partial","Object","defineProperty"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index f00db7f..9a42ec9 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "types" ], "license": "BSD-3-Clause", - "browser": "dist/filesize.min.js", "main": "dist/filesize.cjs", "module": "dist/filesize.esm.js", "types": "types/filesize.d.ts", diff --git a/src/filesize.js b/src/filesize.js index 9adf065..2058604 100644 --- a/src/filesize.js +++ b/src/filesize.js @@ -23,7 +23,7 @@ import { ZERO } from "./constants"; -export default function filesize (arg, { +export function filesize (arg, { bits = false, pad = false, base = -1, @@ -171,7 +171,7 @@ export default function filesize (arg, { } // Partial application for functional programming -filesize.partial = function partial ({ +export function partial ({ bits = false, pad = false, base = -1,