@orderly.network/utils 2.5.3-alpha.0 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var h=Object.create;var f=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var y=(t,e)=>{for(var r in e)f(t,r,{get:e[r],enumerable:!0})},d=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of D(e))!C.call(t,s)&&s!==r&&f(t,s,{get:()=>e[s],enumerable:!(n=w(e,s))||n.enumerable});return t};var m=(t,e,r)=>(r=t!=null?h(I(t)):{},d(e||!t||!t.__esModule?f(r,"default",{value:t,enumerable:!0}):r,t)),_=t=>d(f({},"__esModule",{value:!0}),t);var V={};y(V,{Decimal:()=>b,camelCaseToUnderscoreCase:()=>J,capitalizeString:()=>K,commify:()=>p,commifyOptional:()=>O,cutNumber:()=>$,dayjs:()=>E.default,findLongestCommonSubString:()=>Q,getGlobalObject:()=>g,getPrecisionByNumber:()=>P,getTimestamp:()=>N,hex2int:()=>l,int2hex:()=>j,isTestnet:()=>Z,numberToHumanStyle:()=>k,parseChainIdToNumber:()=>Y,parseNumStr:()=>H,praseChainId:()=>X,praseChainIdToNumber:()=>S,removeTrailingZeros:()=>B,subtractDaysFromCurrentDate:()=>z,timeConvertString:()=>W,timestampToString:()=>U,toNonExponential:()=>x,todpIfNeed:()=>L,transSymbolformString:()=>q,windowGuard:()=>T,zero:()=>A});module.exports=_(V);var c=m(require("decimal.js-light"));c.default.set({rounding:c.default.ROUND_DOWN});var b=c.default,$=(t,e)=>{},A=new c.default(0),O=(t,e)=>{if(typeof t=="string"&&isNaN(Number(t)))return(e==null?void 0:e.fallback)||"--";let r=(e==null?void 0:e.prefix)||"";if(typeof t=="undefined")return r+((e==null?void 0:e.fallback)||"--");let n=p(t,e==null?void 0:e.fix);if(e&&e.padEnd&&e.fix){let s=(e==null?void 0:e.fillString)||"0",o=n.includes("."),a=n.split(".");return o?r+a[0]+"."+a[1].padEnd(e.fix,s):r+a[0]+"."+"".padEnd(e.fix,s)}return r+n},R=/\B(?=(\d{3})+(?!\d))/g,p=(t,e)=>{let r=`${t}`,n=r.split("."),s=n[0],o=n[1],a=r.endsWith(".")&&r.length>1,u=s.replace(R,",")+(o?"."+o.substring(0,e||o.length):a?".":"");return e===0&&u.includes(".")?u.substring(0,u.indexOf(".")):u},M=/\d(?:\.(\d*))?e([+-]\d+)/,x=t=>{let e=t.toExponential().match(M);return Array.isArray(e)?t.toFixed(Math.max(0,(e[1]||"").length-e[2])):t},P=t=>{t=x(Number(t));let e=t.toString().split(".");return e[1]?e[1].length:0};function k(t,e=2,r){let{padding:n}=r||{},s=["","K","M","B","T"],o=0;for(;t>=1e3&&o<s.length-1;)t/=1e3,o++;let a=new c.default(t).toFixed(e,c.default.ROUND_DOWN).toString();return a=a.replace(/\.0+$/,""),`${a}${s[o]}`}function H(t){let r=t.toString().replace(/,/g,""),n=new c.default(r),s=r.slice(-1);if(isNaN(n.toNumber()))return;let o;switch(s){case"k":case"K":o=n.mul(1e3);break;case"m":case"M":o=n.mul(1e6);break;case"b":case"B":o=n.mul(1e9);break;case"t":case"T":o=n.mul(1e12);break;default:o=n}return o}var F=/^[-+]?[0-9]+(\.[0-9]+)?[eE][-+]?[0-9]+$/,G=/(\.[0-9]*[1-9])0+$/,B=(t,e=16)=>{let r=`${t}`,n=F.test(r);return!t.toString().includes(".")&&!n?`${t}`:new c.default(t).toFixed(e).replace(G,"$1")},L=(t,e)=>{if(t===void 0||t===""||(typeof t=="number"&&(t=t.toString()),t.endsWith(".")))return t;let r=t.split(".");return r.length===1||r[1].length<=e||!r[1]?t:`${r[0]}.${r[1].substring(0,e)}`};var W=t=>{t/=1e3;let e=Math.floor(t/3600),r=Math.floor(t/60%60),n=Math.floor(t%60);return[e,r,n]},U=t=>{let e=new Date(t),r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),u=String(e.getSeconds()).padStart(2,"0");return`${r}-${n}-${s} ${o}:${a}:${u}`};function z(t,e){let r=e||new Date,n=new Date(r);return n.setDate(r.getDate()-t),n}var i=require("@orderly.network/types"),l=t=>parseInt(t),j=t=>`0x${t.toString(16)}`,X=t=>typeof t=="string"?l(t):t,S=t=>typeof t=="string"&&t.startsWith("0x")&&/^[a-f0-9]+$/iu.test(t.slice(2))?l(t):t,Y=S,Z=t=>[i.ARBITRUM_TESTNET_CHAINID,i.SOLANA_TESTNET_CHAINID,i.STORY_TESTNET_CHAINID,i.MONAD_TESTNET_CHAINID,i.ABSTRACT_TESTNET_CHAINID,i.BSC_TESTNET_CHAINID].includes(t);function K(t){let e=t.toLowerCase();return e.charAt(0).toUpperCase()+e.slice(1)}function q(t){let e=t.split("_");if(e.length!==3)throw new Error("Invalid string format");let[r,n,s]=e;if(!r.startsWith("PERP"))throw new Error("Invalid string format");return`${n}-${r}`}function J(t){return t.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}var Q=(t,e)=>{for(let r=0;r<t.length;r++){let n=t.at(r),s=e.at(r);if(n!==s)return r}return-1};var T=t=>{typeof window!="undefined"&&t()},g=()=>{if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global;throw new Error("cannot find the global object")},N=()=>{var t;if(typeof window!="undefined"){let e=(t=g())==null?void 0:t.__ORDERLY_timestamp_offset;if(typeof e=="number")return Date.now()+(e||0)}return Date.now()};var E=m(require("dayjs"));0&&(module.exports={Decimal,camelCaseToUnderscoreCase,capitalizeString,commify,commifyOptional,cutNumber,dayjs,findLongestCommonSubString,getGlobalObject,getPrecisionByNumber,getTimestamp,hex2int,int2hex,isTestnet,numberToHumanStyle,parseChainIdToNumber,parseNumStr,praseChainId,praseChainIdToNumber,removeTrailingZeros,subtractDaysFromCurrentDate,timeConvertString,timestampToString,toNonExponential,todpIfNeed,transSymbolformString,windowGuard,zero});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/decimal.ts","../src/dateTime.ts","../src/chain.ts","../src/string.ts","../src/window.ts"],"sourcesContent":["// import dayjs from \"dayjs\";\n\nexport { default as Decimal } from \"./decimal\";\nexport * from \"./decimal\";\nexport * from \"./dateTime\";\nexport * from \"./chain\";\nexport * from \"./string\";\nexport { windowGuard, getGlobalObject, getTimestamp } from \"./window\";\nexport { default as dayjs } from \"dayjs\";\n\n// export { dayjs };\n","import Decimal from \"decimal.js-light\";\n\nDecimal.set({\n rounding: Decimal.ROUND_DOWN,\n});\n\nexport default Decimal;\n\nexport const cutNumber = (num: number | string, lenght: number) => {};\n\nexport const zero = new Decimal(0);\n\n/** if num is undefined, returns options?.fallback || '-', otherwise it formats */\nexport const commifyOptional = (\n num?: number | string,\n options?: {\n fix?: number;\n fallback?: string;\n padEnd?: boolean;\n /// default is '0'\n fillString?: string;\n prefix?: string;\n },\n): string => {\n // if num convert to num failed, return fallback\n if (typeof num === \"string\" && isNaN(Number(num))) {\n return options?.fallback || \"--\";\n }\n\n const prefix = options?.prefix || \"\";\n if (typeof num === \"undefined\") {\n return prefix + (options?.fallback || \"--\");\n }\n const value = commify(num, options?.fix);\n\n if (options && options.padEnd && options.fix) {\n const fillString = options?.fillString || \"0\";\n const hasDecimal = value.includes(\".\");\n const list = value.split(\".\");\n if (hasDecimal) {\n return prefix + list[0] + \".\" + list[1].padEnd(options.fix, fillString);\n }\n return prefix + list[0] + \".\" + \"\".padEnd(options.fix, fillString);\n }\n return prefix + value;\n};\n\nexport const commify = (num: number | string, fix?: number): string => {\n const str = `${num}`;\n const parts = str.split(\".\");\n const numberPart = parts[0];\n const decimalPart = parts[1];\n const thousands = /\\B(?=(\\d{3})+(?!\\d))/g;\n\n const endsWithPoint = str.endsWith(\".\") && str.length > 1;\n const result =\n numberPart.replace(thousands, \",\") +\n (decimalPart\n ? \".\" + decimalPart.substring(0, fix || decimalPart.length)\n : endsWithPoint\n ? \".\"\n : \"\");\n\n if (fix === 0 && result.includes(\".\")) {\n return result.substring(0, result.indexOf(\".\"));\n }\n return result;\n};\n\nexport const toNonExponential = (num: number) => {\n const m = num.toExponential().match(/\\d(?:\\.(\\d*))?e([+-]\\d+)/);\n if (!Array.isArray(m)) {\n return num;\n }\n return num.toFixed(\n Math.max(0, (m[1] || \"\").length - (m[2] as unknown as number)),\n );\n};\n\nexport const getPrecisionByNumber = (num: number | string) => {\n num = toNonExponential(Number(num));\n const parts = num.toString().split(\".\");\n return parts[1] ? parts[1].length : 0;\n};\n\n/**\n *\n * @example\n * const number1 = 12345;\n * const number2 = 987654321;\n */\nexport function numberToHumanStyle(\n number: number,\n decimalPlaces: number = 2,\n options?: {\n padding?: boolean;\n },\n): string {\n const { padding } = options || {};\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\"];\n\n let index = 0;\n while (number >= 1000 && index < abbreviations.length - 1) {\n number /= 1000;\n index++;\n }\n\n // const roundedNumber = number.toFixed(decimalPlaces);\n let roundedNumber = new Decimal(number)\n .toFixed(decimalPlaces, Decimal.ROUND_DOWN)\n .toString();\n\n // const roundedNumber = padding\n // ? number.toFixed(decimalPlaces)\n // : number.toString();\n\n roundedNumber = roundedNumber.replace(/\\.0+$/, \"\");\n\n return `${roundedNumber}${abbreviations[index]}`;\n}\n\n// export function numberToHumanStyle(num: number, dp: number = 0): string {\n// const absNum = Math.abs(num);\n// let formattedNum = \"\";\n\n// let exp;\n\n// if (absNum >= 1e12) {\n// formattedNum = (num / 1e12).toFixed(dp) + \"T\";\n// } else if (absNum >= 1e9) {\n// formattedNum = (num / 1e9).toFixed(dp) + \"B\";\n// } else if (absNum >= 1e6) {\n// formattedNum = (num / 1e6).toFixed(dp) + \"M\";\n// } else if (absNum >= 1e3) {\n// formattedNum = (num / 1e3).toFixed(dp) + \"K\";\n// } else {\n// formattedNum = num.toString();\n// }\n\n// formattedNum = formattedNum.replace(/\\.0$/, \"\");\n\n// return formattedNum;\n// }\n\nexport function parseNumStr(str: string | number): Decimal | undefined {\n const value = str.toString();\n const cleanedStr = value.replace(/,/g, \"\"); // remove `,` char\n const numberPart = new Decimal(cleanedStr);\n const unitPart = cleanedStr.slice(-1);\n\n if (isNaN(numberPart.toNumber())) {\n return undefined; // invalid data\n }\n\n let result;\n\n switch (unitPart) {\n case \"k\":\n case \"K\":\n result = numberPart.mul(1000);\n break;\n case \"m\":\n case \"M\":\n result = numberPart.mul(1000000);\n break;\n case \"b\":\n case \"B\":\n result = numberPart.mul(1000000000);\n break;\n case \"t\":\n case \"T\":\n result = numberPart.mul(1000000000000);\n break;\n default:\n result = numberPart;\n }\n\n return result;\n}\n\nconst scientificNotationPattern = /^[-+]?[0-9]+(\\.[0-9]+)?[eE][-+]?[0-9]+$/;\n\n//** remove trailing zeros 0.00000100 => 0.000001, 1 => 1 */\nexport const removeTrailingZeros = (value: number, fixedCount: number = 16) => {\n const text = `${value}`;\n const isScientific = scientificNotationPattern.test(text);\n if (!value.toString().includes(\".\") && !isScientific) {\n return `${value}`;\n }\n const formattedNumber = new Decimal(value)\n .toFixed(fixedCount)\n .replace(/(\\.[0-9]*[1-9])0+$/, \"$1\");\n return formattedNumber;\n};\n\nexport const todpIfNeed = (value: string | number, dp: number) => {\n if (value === undefined || value === \"\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n value = value.toString();\n }\n\n if (value.endsWith(\".\")) {\n return value;\n }\n\n const numbers = value.split(\".\");\n\n if (numbers.length === 1) {\n return value;\n }\n\n if (numbers[1].length <= dp || !numbers[1]) {\n return value;\n }\n\n return `${numbers[0]}.${numbers[1].substring(0, dp)}`;\n};\n","export const timeConvertString = (time: number): number[] => {\n time /= 1000;\n const h = Math.floor(time / 3600);\n const m = Math.floor((time / 60) % 60);\n const s = Math.floor(time % 60);\n return [h, m, s];\n};\n\n/// will be return 'yyyy-mm-dd hh:MM:ss'\nexport const timestampToString = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const seconds = String(date.getSeconds()).padStart(2, \"0\");\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n};\n\nexport function subtractDaysFromCurrentDate(\n days: number,\n startDate?: Date\n): Date {\n const currentDate = startDate || new Date();\n const resultDate = new Date(currentDate);\n resultDate.setDate(currentDate.getDate() - days);\n return resultDate;\n}\n","import {\n ABSTRACT_TESTNET_CHAINID,\n ARBITRUM_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n} from \"@orderly.network/types\";\n\nexport const hex2int = (chainId: string): number => parseInt(chainId);\nexport const int2hex = (chainId: number): string => `0x${chainId.toString(16)}`;\nexport const praseChainId = (chainId: string | number): number => {\n if (typeof chainId === \"string\") return hex2int(chainId);\n return chainId;\n};\n\nexport const praseChainIdToNumber = (chainId: string | number): number => {\n if (\n typeof chainId === \"string\" &&\n chainId.startsWith(\"0x\") &&\n /^[a-f0-9]+$/iu.test(chainId.slice(2))\n )\n return hex2int(chainId);\n return chainId as number;\n};\n\nexport const parseChainIdToNumber = praseChainIdToNumber;\n\nexport const isTestnet = (chainId: number) => {\n const testnetIds = [\n ARBITRUM_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n ABSTRACT_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n ];\n\n return testnetIds.includes(chainId);\n};\n","export function capitalizeString(str: string): string {\n // Convert the string to lowercase\n const lowercaseStr: string = str.toLowerCase();\n // Capitalize the first letter\n const capitalizedStr: string =\n lowercaseStr.charAt(0).toUpperCase() + lowercaseStr.slice(1);\n return capitalizedStr;\n}\n\n/// \"PERP_ETH_USDC\" => \"ETH_PERP\"\nexport function transSymbolformString(input: string): string {\n const parts = input.split(\"_\");\n if (parts.length !== 3) {\n throw new Error(\"Invalid string format\");\n }\n\n const [first, second, third] = parts;\n\n if (!first.startsWith(\"PERP\")) {\n throw new Error(\"Invalid string format\");\n }\n\n const result = `${second}-${first}`;\n return result;\n}\n\nexport function camelCaseToUnderscoreCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\n\nexport const findLongestCommonSubString = (str1: string, str2: string) => {\n // let index = 0;\n\n for (let index = 0; index < str1.length; index++) {\n const ele1 = str1.at(index);\n const ele2 = str2.at(index);\n if (ele1 === ele2) {\n continue;\n }\n\n return index;\n }\n\n return -1;\n};\n","export const windowGuard = (cb: Function) => {\n if (typeof window !== \"undefined\") {\n cb();\n }\n};\n\nexport const getGlobalObject = () => {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n // @ts-ignore\n if (typeof global !== \"undefined\") {\n // @ts-ignore\n return global;\n }\n throw new Error(\"cannot find the global object\");\n};\n\n\n/// get timestamp\nexport const getTimestamp = (): number => {\n\n if (typeof window !== \"undefined\") {\n // @ts-ignore\n const timeOffset = getGlobalObject()?.__ORDERLY_timestamp_offset;\n if (typeof timeOffset === 'number') {\n return Date.now() + (timeOffset || 0);\n }\n }\n return Date.now();\n}"],"mappings":"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","names":["src_exports","__export","decimal_default","camelCaseToUnderscoreCase","capitalizeString","commify","commifyOptional","cutNumber","findLongestCommonSubString","getGlobalObject","getPrecisionByNumber","getTimestamp","hex2int","int2hex","isTestnet","numberToHumanStyle","parseChainIdToNumber","parseNumStr","praseChainId","praseChainIdToNumber","removeTrailingZeros","subtractDaysFromCurrentDate","timeConvertString","timestampToString","toNonExponential","todpIfNeed","transSymbolformString","windowGuard","zero","__toCommonJS","import_decimal","Decimal","decimal_default","cutNumber","num","lenght","zero","commifyOptional","options","prefix","value","commify","fillString","hasDecimal","list","fix","str","parts","numberPart","decimalPart","thousands","endsWithPoint","result","toNonExponential","m","getPrecisionByNumber","numberToHumanStyle","number","decimalPlaces","padding","abbreviations","index","roundedNumber","parseNumStr","cleanedStr","unitPart","scientificNotationPattern","removeTrailingZeros","fixedCount","text","isScientific","todpIfNeed","dp","numbers","timeConvertString","time","h","m","s","timestampToString","timestamp","date","year","month","day","hours","minutes","seconds","subtractDaysFromCurrentDate","days","startDate","currentDate","resultDate","import_types","hex2int","chainId","int2hex","praseChainId","praseChainIdToNumber","parseChainIdToNumber","isTestnet","capitalizeString","str","lowercaseStr","transSymbolformString","input","parts","first","second","third","camelCaseToUnderscoreCase","findLongestCommonSubString","str1","str2","index","ele1","ele2","windowGuard","cb","getGlobalObject","getTimestamp","_a","timeOffset","import_dayjs"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/decimal.ts","../src/dateTime.ts","../src/chain.ts","../src/string.ts","../src/window.ts"],"sourcesContent":["// import dayjs from \"dayjs\";\n\nexport { default as Decimal } from \"./decimal\";\nexport * from \"./decimal\";\nexport * from \"./dateTime\";\nexport * from \"./chain\";\nexport * from \"./string\";\nexport { windowGuard, getGlobalObject, getTimestamp } from \"./window\";\nexport { default as dayjs } from \"dayjs\";\n\n// export { dayjs };\n","import Decimal from \"decimal.js-light\";\n\nDecimal.set({\n rounding: Decimal.ROUND_DOWN,\n});\n\nexport default Decimal;\n\nexport const cutNumber = (num: number | string, lenght: number) => {};\n\nexport const zero = new Decimal(0);\n\n/** if num is undefined, returns options?.fallback || '-', otherwise it formats */\nexport const commifyOptional = (\n num?: number | string,\n options?: {\n fix?: number;\n fallback?: string;\n padEnd?: boolean;\n /// default is '0'\n fillString?: string;\n prefix?: string;\n },\n): string => {\n // if num convert to num failed, return fallback\n if (typeof num === \"string\" && isNaN(Number(num))) {\n return options?.fallback || \"--\";\n }\n\n const prefix = options?.prefix || \"\";\n if (typeof num === \"undefined\") {\n return prefix + (options?.fallback || \"--\");\n }\n const value = commify(num, options?.fix);\n\n if (options && options.padEnd && options.fix) {\n const fillString = options?.fillString || \"0\";\n const hasDecimal = value.includes(\".\");\n const list = value.split(\".\");\n if (hasDecimal) {\n return prefix + list[0] + \".\" + list[1].padEnd(options.fix, fillString);\n }\n return prefix + list[0] + \".\" + \"\".padEnd(options.fix, fillString);\n }\n return prefix + value;\n};\n\nconst THOUSANDS_REGEXP = /\\B(?=(\\d{3})+(?!\\d))/g;\nexport const commify = (num: number | string, fix?: number): string => {\n const str = `${num}`;\n const parts = str.split(\".\");\n const numberPart = parts[0];\n const decimalPart = parts[1];\n const endsWithPoint = str.endsWith(\".\") && str.length > 1;\n const result =\n numberPart.replace(THOUSANDS_REGEXP, \",\") +\n (decimalPart\n ? \".\" + decimalPart.substring(0, fix || decimalPart.length)\n : endsWithPoint\n ? \".\"\n : \"\");\n\n if (fix === 0 && result.includes(\".\")) {\n return result.substring(0, result.indexOf(\".\"));\n }\n return result;\n};\n\nconst SCIENTIFICNOTATION_REGEX = /\\d(?:\\.(\\d*))?e([+-]\\d+)/;\nexport const toNonExponential = (num: number) => {\n const m = num.toExponential().match(SCIENTIFICNOTATION_REGEX);\n if (!Array.isArray(m)) {\n return num;\n }\n return num.toFixed(\n Math.max(0, (m[1] || \"\").length - (m[2] as unknown as number)),\n );\n};\n\nexport const getPrecisionByNumber = (num: number | string) => {\n num = toNonExponential(Number(num));\n const parts = num.toString().split(\".\");\n return parts[1] ? parts[1].length : 0;\n};\n\n/**\n *\n * @example\n * const number1 = 12345;\n * const number2 = 987654321;\n */\nexport function numberToHumanStyle(\n number: number,\n decimalPlaces: number = 2,\n options?: {\n padding?: boolean;\n },\n): string {\n const { padding } = options || {};\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\"];\n\n let index = 0;\n while (number >= 1000 && index < abbreviations.length - 1) {\n number /= 1000;\n index++;\n }\n\n // const roundedNumber = number.toFixed(decimalPlaces);\n let roundedNumber = new Decimal(number)\n .toFixed(decimalPlaces, Decimal.ROUND_DOWN)\n .toString();\n\n // const roundedNumber = padding\n // ? number.toFixed(decimalPlaces)\n // : number.toString();\n\n roundedNumber = roundedNumber.replace(/\\.0+$/, \"\");\n\n return `${roundedNumber}${abbreviations[index]}`;\n}\n\n// export function numberToHumanStyle(num: number, dp: number = 0): string {\n// const absNum = Math.abs(num);\n// let formattedNum = \"\";\n\n// let exp;\n\n// if (absNum >= 1e12) {\n// formattedNum = (num / 1e12).toFixed(dp) + \"T\";\n// } else if (absNum >= 1e9) {\n// formattedNum = (num / 1e9).toFixed(dp) + \"B\";\n// } else if (absNum >= 1e6) {\n// formattedNum = (num / 1e6).toFixed(dp) + \"M\";\n// } else if (absNum >= 1e3) {\n// formattedNum = (num / 1e3).toFixed(dp) + \"K\";\n// } else {\n// formattedNum = num.toString();\n// }\n\n// formattedNum = formattedNum.replace(/\\.0$/, \"\");\n\n// return formattedNum;\n// }\n\nexport function parseNumStr(str: string | number): Decimal | undefined {\n const value = str.toString();\n const cleanedStr = value.replace(/,/g, \"\"); // remove `,` char\n const numberPart = new Decimal(cleanedStr);\n const unitPart = cleanedStr.slice(-1);\n\n if (isNaN(numberPart.toNumber())) {\n return undefined; // invalid data\n }\n\n let result;\n\n switch (unitPart) {\n case \"k\":\n case \"K\":\n result = numberPart.mul(1000);\n break;\n case \"m\":\n case \"M\":\n result = numberPart.mul(1000000);\n break;\n case \"b\":\n case \"B\":\n result = numberPart.mul(1000000000);\n break;\n case \"t\":\n case \"T\":\n result = numberPart.mul(1000000000000);\n break;\n default:\n result = numberPart;\n }\n\n return result;\n}\n\nconst SCIENTIFICNOTATIONPATTERN = /^[-+]?[0-9]+(\\.[0-9]+)?[eE][-+]?[0-9]+$/;\n\nconst TRAILINGZERODECIMAL_REGEX = /(\\.[0-9]*[1-9])0+$/;\n\n//** remove trailing zeros 0.00000100 => 0.000001, 1 => 1 */\nexport const removeTrailingZeros = (value: number, fixedCount: number = 16) => {\n const text = `${value}`;\n const isScientific = SCIENTIFICNOTATIONPATTERN.test(text);\n if (!value.toString().includes(\".\") && !isScientific) {\n return `${value}`;\n }\n const formattedNumber = new Decimal(value)\n .toFixed(fixedCount)\n .replace(TRAILINGZERODECIMAL_REGEX, \"$1\");\n return formattedNumber;\n};\n\nexport const todpIfNeed = (value: string | number, dp: number) => {\n if (value === undefined || value === \"\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n value = value.toString();\n }\n\n if (value.endsWith(\".\")) {\n return value;\n }\n\n const numbers = value.split(\".\");\n\n if (numbers.length === 1) {\n return value;\n }\n\n if (numbers[1].length <= dp || !numbers[1]) {\n return value;\n }\n\n return `${numbers[0]}.${numbers[1].substring(0, dp)}`;\n};\n","export const timeConvertString = (time: number): number[] => {\n time /= 1000;\n const h = Math.floor(time / 3600);\n const m = Math.floor((time / 60) % 60);\n const s = Math.floor(time % 60);\n return [h, m, s];\n};\n\n/// will be return 'yyyy-mm-dd hh:MM:ss'\nexport const timestampToString = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const seconds = String(date.getSeconds()).padStart(2, \"0\");\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n};\n\nexport function subtractDaysFromCurrentDate(\n days: number,\n startDate?: Date\n): Date {\n const currentDate = startDate || new Date();\n const resultDate = new Date(currentDate);\n resultDate.setDate(currentDate.getDate() - days);\n return resultDate;\n}\n","import {\n ABSTRACT_TESTNET_CHAINID,\n ARBITRUM_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n} from \"@orderly.network/types\";\n\nexport const hex2int = (chainId: string): number => parseInt(chainId);\nexport const int2hex = (chainId: number): string => `0x${chainId.toString(16)}`;\nexport const praseChainId = (chainId: string | number): number => {\n if (typeof chainId === \"string\") return hex2int(chainId);\n return chainId;\n};\n\nexport const praseChainIdToNumber = (chainId: string | number): number => {\n if (\n typeof chainId === \"string\" &&\n chainId.startsWith(\"0x\") &&\n /^[a-f0-9]+$/iu.test(chainId.slice(2))\n )\n return hex2int(chainId);\n return chainId as number;\n};\n\nexport const parseChainIdToNumber = praseChainIdToNumber;\n\nexport const isTestnet = (chainId: number) => {\n const testnetIds = [\n ARBITRUM_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n ABSTRACT_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n ];\n\n return testnetIds.includes(chainId);\n};\n","export function capitalizeString(str: string): string {\n // Convert the string to lowercase\n const lowercaseStr: string = str.toLowerCase();\n // Capitalize the first letter\n const capitalizedStr: string =\n lowercaseStr.charAt(0).toUpperCase() + lowercaseStr.slice(1);\n return capitalizedStr;\n}\n\n/// \"PERP_ETH_USDC\" => \"ETH_PERP\"\nexport function transSymbolformString(input: string): string {\n const parts = input.split(\"_\");\n if (parts.length !== 3) {\n throw new Error(\"Invalid string format\");\n }\n\n const [first, second, third] = parts;\n\n if (!first.startsWith(\"PERP\")) {\n throw new Error(\"Invalid string format\");\n }\n\n const result = `${second}-${first}`;\n return result;\n}\n\nexport function camelCaseToUnderscoreCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\n\nexport const findLongestCommonSubString = (str1: string, str2: string) => {\n // let index = 0;\n\n for (let index = 0; index < str1.length; index++) {\n const ele1 = str1.at(index);\n const ele2 = str2.at(index);\n if (ele1 === ele2) {\n continue;\n }\n\n return index;\n }\n\n return -1;\n};\n","export const windowGuard = (cb: Function) => {\n if (typeof window !== \"undefined\") {\n cb();\n }\n};\n\nexport const getGlobalObject = () => {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n // @ts-ignore\n if (typeof global !== \"undefined\") {\n // @ts-ignore\n return global;\n }\n throw new Error(\"cannot find the global object\");\n};\n\n\n/// get timestamp\nexport const getTimestamp = (): number => {\n\n if (typeof window !== \"undefined\") {\n // @ts-ignore\n const timeOffset = getGlobalObject()?.__ORDERLY_timestamp_offset;\n if (typeof timeOffset === 'number') {\n return Date.now() + (timeOffset || 0);\n }\n }\n return Date.now();\n}"],"mappings":"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","names":["src_exports","__export","decimal_default","camelCaseToUnderscoreCase","capitalizeString","commify","commifyOptional","cutNumber","findLongestCommonSubString","getGlobalObject","getPrecisionByNumber","getTimestamp","hex2int","int2hex","isTestnet","numberToHumanStyle","parseChainIdToNumber","parseNumStr","praseChainId","praseChainIdToNumber","removeTrailingZeros","subtractDaysFromCurrentDate","timeConvertString","timestampToString","toNonExponential","todpIfNeed","transSymbolformString","windowGuard","zero","__toCommonJS","import_decimal","Decimal","decimal_default","cutNumber","num","lenght","zero","commifyOptional","options","prefix","value","commify","fillString","hasDecimal","list","THOUSANDS_REGEXP","fix","str","parts","numberPart","decimalPart","endsWithPoint","result","SCIENTIFICNOTATION_REGEX","toNonExponential","m","getPrecisionByNumber","numberToHumanStyle","number","decimalPlaces","padding","abbreviations","index","roundedNumber","parseNumStr","cleanedStr","unitPart","SCIENTIFICNOTATIONPATTERN","TRAILINGZERODECIMAL_REGEX","removeTrailingZeros","fixedCount","text","isScientific","todpIfNeed","dp","numbers","timeConvertString","time","h","m","s","timestampToString","timestamp","date","year","month","day","hours","minutes","seconds","subtractDaysFromCurrentDate","days","startDate","currentDate","resultDate","import_types","hex2int","chainId","int2hex","praseChainId","praseChainIdToNumber","parseChainIdToNumber","isTestnet","capitalizeString","str","lowercaseStr","transSymbolformString","input","parts","first","second","third","camelCaseToUnderscoreCase","findLongestCommonSubString","str1","str2","index","ele1","ele2","windowGuard","cb","getGlobalObject","getTimestamp","_a","timeOffset","import_dayjs"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import a from"decimal.js-light";a.set({rounding:a.ROUND_DOWN});var
|
|
1
|
+
import a from"decimal.js-light";a.set({rounding:a.ROUND_DOWN});var l=a,_=(t,e)=>{},$=new a(0),A=(t,e)=>{if(typeof t=="string"&&isNaN(Number(t)))return(e==null?void 0:e.fallback)||"--";let r=(e==null?void 0:e.prefix)||"";if(typeof t=="undefined")return r+((e==null?void 0:e.fallback)||"--");let n=d(t,e==null?void 0:e.fix);if(e&&e.padEnd&&e.fix){let o=(e==null?void 0:e.fillString)||"0",s=n.includes("."),i=n.split(".");return s?r+i[0]+"."+i[1].padEnd(e.fix,o):r+i[0]+"."+"".padEnd(e.fix,o)}return r+n},g=/\B(?=(\d{3})+(?!\d))/g,d=(t,e)=>{let r=`${t}`,n=r.split("."),o=n[0],s=n[1],i=r.endsWith(".")&&r.length>1,c=o.replace(g,",")+(s?"."+s.substring(0,e||s.length):i?".":"");return e===0&&c.includes(".")?c.substring(0,c.indexOf(".")):c},m=/\d(?:\.(\d*))?e([+-]\d+)/,b=t=>{let e=t.toExponential().match(m);return Array.isArray(e)?t.toFixed(Math.max(0,(e[1]||"").length-e[2])):t},O=t=>{t=b(Number(t));let e=t.toString().split(".");return e[1]?e[1].length:0};function R(t,e=2,r){let{padding:n}=r||{},o=["","K","M","B","T"],s=0;for(;t>=1e3&&s<o.length-1;)t/=1e3,s++;let i=new a(t).toFixed(e,a.ROUND_DOWN).toString();return i=i.replace(/\.0+$/,""),`${i}${o[s]}`}function M(t){let r=t.toString().replace(/,/g,""),n=new a(r),o=r.slice(-1);if(isNaN(n.toNumber()))return;let s;switch(o){case"k":case"K":s=n.mul(1e3);break;case"m":case"M":s=n.mul(1e6);break;case"b":case"B":s=n.mul(1e9);break;case"t":case"T":s=n.mul(1e12);break;default:s=n}return s}var p=/^[-+]?[0-9]+(\.[0-9]+)?[eE][-+]?[0-9]+$/,x=/(\.[0-9]*[1-9])0+$/,P=(t,e=16)=>{let r=`${t}`,n=p.test(r);return!t.toString().includes(".")&&!n?`${t}`:new a(t).toFixed(e).replace(x,"$1")},k=(t,e)=>{if(t===void 0||t===""||(typeof t=="number"&&(t=t.toString()),t.endsWith(".")))return t;let r=t.split(".");return r.length===1||r[1].length<=e||!r[1]?t:`${r[0]}.${r[1].substring(0,e)}`};var F=t=>{t/=1e3;let e=Math.floor(t/3600),r=Math.floor(t/60%60),n=Math.floor(t%60);return[e,r,n]},G=t=>{let e=new Date(t),r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0");return`${r}-${n}-${o} ${s}:${i}:${c}`};function B(t,e){let r=e||new Date,n=new Date(r);return n.setDate(r.getDate()-t),n}import{ABSTRACT_TESTNET_CHAINID as S,ARBITRUM_TESTNET_CHAINID as T,BSC_TESTNET_CHAINID as N,MONAD_TESTNET_CHAINID as E,SOLANA_TESTNET_CHAINID as h,STORY_TESTNET_CHAINID as w}from"@orderly.network/types";var u=t=>parseInt(t),U=t=>`0x${t.toString(16)}`,z=t=>typeof t=="string"?u(t):t,D=t=>typeof t=="string"&&t.startsWith("0x")&&/^[a-f0-9]+$/iu.test(t.slice(2))?u(t):t,j=D,X=t=>[T,h,w,E,S,N].includes(t);function Z(t){let e=t.toLowerCase();return e.charAt(0).toUpperCase()+e.slice(1)}function K(t){let e=t.split("_");if(e.length!==3)throw new Error("Invalid string format");let[r,n,o]=e;if(!r.startsWith("PERP"))throw new Error("Invalid string format");return`${n}-${r}`}function q(t){return t.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase()}var J=(t,e)=>{for(let r=0;r<t.length;r++){let n=t.at(r),o=e.at(r);if(n!==o)return r}return-1};var I=t=>{typeof window!="undefined"&&t()},f=()=>{if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global;throw new Error("cannot find the global object")},C=()=>{var t;if(typeof window!="undefined"){let e=(t=f())==null?void 0:t.__ORDERLY_timestamp_offset;if(typeof e=="number")return Date.now()+(e||0)}return Date.now()};import{default as at}from"dayjs";export{l as Decimal,q as camelCaseToUnderscoreCase,Z as capitalizeString,d as commify,A as commifyOptional,_ as cutNumber,at as dayjs,J as findLongestCommonSubString,f as getGlobalObject,O as getPrecisionByNumber,C as getTimestamp,u as hex2int,U as int2hex,X as isTestnet,R as numberToHumanStyle,j as parseChainIdToNumber,M as parseNumStr,z as praseChainId,D as praseChainIdToNumber,P as removeTrailingZeros,B as subtractDaysFromCurrentDate,F as timeConvertString,G as timestampToString,b as toNonExponential,k as todpIfNeed,K as transSymbolformString,I as windowGuard,$ as zero};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/decimal.ts","../src/dateTime.ts","../src/chain.ts","../src/string.ts","../src/window.ts","../src/index.ts"],"sourcesContent":["import Decimal from \"decimal.js-light\";\n\nDecimal.set({\n rounding: Decimal.ROUND_DOWN,\n});\n\nexport default Decimal;\n\nexport const cutNumber = (num: number | string, lenght: number) => {};\n\nexport const zero = new Decimal(0);\n\n/** if num is undefined, returns options?.fallback || '-', otherwise it formats */\nexport const commifyOptional = (\n num?: number | string,\n options?: {\n fix?: number;\n fallback?: string;\n padEnd?: boolean;\n /// default is '0'\n fillString?: string;\n prefix?: string;\n },\n): string => {\n // if num convert to num failed, return fallback\n if (typeof num === \"string\" && isNaN(Number(num))) {\n return options?.fallback || \"--\";\n }\n\n const prefix = options?.prefix || \"\";\n if (typeof num === \"undefined\") {\n return prefix + (options?.fallback || \"--\");\n }\n const value = commify(num, options?.fix);\n\n if (options && options.padEnd && options.fix) {\n const fillString = options?.fillString || \"0\";\n const hasDecimal = value.includes(\".\");\n const list = value.split(\".\");\n if (hasDecimal) {\n return prefix + list[0] + \".\" + list[1].padEnd(options.fix, fillString);\n }\n return prefix + list[0] + \".\" + \"\".padEnd(options.fix, fillString);\n }\n return prefix + value;\n};\n\nexport const commify = (num: number | string, fix?: number): string => {\n const str = `${num}`;\n const parts = str.split(\".\");\n const numberPart = parts[0];\n const decimalPart = parts[1];\n const thousands = /\\B(?=(\\d{3})+(?!\\d))/g;\n\n const endsWithPoint = str.endsWith(\".\") && str.length > 1;\n const result =\n numberPart.replace(thousands, \",\") +\n (decimalPart\n ? \".\" + decimalPart.substring(0, fix || decimalPart.length)\n : endsWithPoint\n ? \".\"\n : \"\");\n\n if (fix === 0 && result.includes(\".\")) {\n return result.substring(0, result.indexOf(\".\"));\n }\n return result;\n};\n\nexport const toNonExponential = (num: number) => {\n const m = num.toExponential().match(/\\d(?:\\.(\\d*))?e([+-]\\d+)/);\n if (!Array.isArray(m)) {\n return num;\n }\n return num.toFixed(\n Math.max(0, (m[1] || \"\").length - (m[2] as unknown as number)),\n );\n};\n\nexport const getPrecisionByNumber = (num: number | string) => {\n num = toNonExponential(Number(num));\n const parts = num.toString().split(\".\");\n return parts[1] ? parts[1].length : 0;\n};\n\n/**\n *\n * @example\n * const number1 = 12345;\n * const number2 = 987654321;\n */\nexport function numberToHumanStyle(\n number: number,\n decimalPlaces: number = 2,\n options?: {\n padding?: boolean;\n },\n): string {\n const { padding } = options || {};\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\"];\n\n let index = 0;\n while (number >= 1000 && index < abbreviations.length - 1) {\n number /= 1000;\n index++;\n }\n\n // const roundedNumber = number.toFixed(decimalPlaces);\n let roundedNumber = new Decimal(number)\n .toFixed(decimalPlaces, Decimal.ROUND_DOWN)\n .toString();\n\n // const roundedNumber = padding\n // ? number.toFixed(decimalPlaces)\n // : number.toString();\n\n roundedNumber = roundedNumber.replace(/\\.0+$/, \"\");\n\n return `${roundedNumber}${abbreviations[index]}`;\n}\n\n// export function numberToHumanStyle(num: number, dp: number = 0): string {\n// const absNum = Math.abs(num);\n// let formattedNum = \"\";\n\n// let exp;\n\n// if (absNum >= 1e12) {\n// formattedNum = (num / 1e12).toFixed(dp) + \"T\";\n// } else if (absNum >= 1e9) {\n// formattedNum = (num / 1e9).toFixed(dp) + \"B\";\n// } else if (absNum >= 1e6) {\n// formattedNum = (num / 1e6).toFixed(dp) + \"M\";\n// } else if (absNum >= 1e3) {\n// formattedNum = (num / 1e3).toFixed(dp) + \"K\";\n// } else {\n// formattedNum = num.toString();\n// }\n\n// formattedNum = formattedNum.replace(/\\.0$/, \"\");\n\n// return formattedNum;\n// }\n\nexport function parseNumStr(str: string | number): Decimal | undefined {\n const value = str.toString();\n const cleanedStr = value.replace(/,/g, \"\"); // remove `,` char\n const numberPart = new Decimal(cleanedStr);\n const unitPart = cleanedStr.slice(-1);\n\n if (isNaN(numberPart.toNumber())) {\n return undefined; // invalid data\n }\n\n let result;\n\n switch (unitPart) {\n case \"k\":\n case \"K\":\n result = numberPart.mul(1000);\n break;\n case \"m\":\n case \"M\":\n result = numberPart.mul(1000000);\n break;\n case \"b\":\n case \"B\":\n result = numberPart.mul(1000000000);\n break;\n case \"t\":\n case \"T\":\n result = numberPart.mul(1000000000000);\n break;\n default:\n result = numberPart;\n }\n\n return result;\n}\n\nconst scientificNotationPattern = /^[-+]?[0-9]+(\\.[0-9]+)?[eE][-+]?[0-9]+$/;\n\n//** remove trailing zeros 0.00000100 => 0.000001, 1 => 1 */\nexport const removeTrailingZeros = (value: number, fixedCount: number = 16) => {\n const text = `${value}`;\n const isScientific = scientificNotationPattern.test(text);\n if (!value.toString().includes(\".\") && !isScientific) {\n return `${value}`;\n }\n const formattedNumber = new Decimal(value)\n .toFixed(fixedCount)\n .replace(/(\\.[0-9]*[1-9])0+$/, \"$1\");\n return formattedNumber;\n};\n\nexport const todpIfNeed = (value: string | number, dp: number) => {\n if (value === undefined || value === \"\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n value = value.toString();\n }\n\n if (value.endsWith(\".\")) {\n return value;\n }\n\n const numbers = value.split(\".\");\n\n if (numbers.length === 1) {\n return value;\n }\n\n if (numbers[1].length <= dp || !numbers[1]) {\n return value;\n }\n\n return `${numbers[0]}.${numbers[1].substring(0, dp)}`;\n};\n","export const timeConvertString = (time: number): number[] => {\n time /= 1000;\n const h = Math.floor(time / 3600);\n const m = Math.floor((time / 60) % 60);\n const s = Math.floor(time % 60);\n return [h, m, s];\n};\n\n/// will be return 'yyyy-mm-dd hh:MM:ss'\nexport const timestampToString = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const seconds = String(date.getSeconds()).padStart(2, \"0\");\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n};\n\nexport function subtractDaysFromCurrentDate(\n days: number,\n startDate?: Date\n): Date {\n const currentDate = startDate || new Date();\n const resultDate = new Date(currentDate);\n resultDate.setDate(currentDate.getDate() - days);\n return resultDate;\n}\n","import {\n ABSTRACT_TESTNET_CHAINID,\n ARBITRUM_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n} from \"@orderly.network/types\";\n\nexport const hex2int = (chainId: string): number => parseInt(chainId);\nexport const int2hex = (chainId: number): string => `0x${chainId.toString(16)}`;\nexport const praseChainId = (chainId: string | number): number => {\n if (typeof chainId === \"string\") return hex2int(chainId);\n return chainId;\n};\n\nexport const praseChainIdToNumber = (chainId: string | number): number => {\n if (\n typeof chainId === \"string\" &&\n chainId.startsWith(\"0x\") &&\n /^[a-f0-9]+$/iu.test(chainId.slice(2))\n )\n return hex2int(chainId);\n return chainId as number;\n};\n\nexport const parseChainIdToNumber = praseChainIdToNumber;\n\nexport const isTestnet = (chainId: number) => {\n const testnetIds = [\n ARBITRUM_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n ABSTRACT_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n ];\n\n return testnetIds.includes(chainId);\n};\n","export function capitalizeString(str: string): string {\n // Convert the string to lowercase\n const lowercaseStr: string = str.toLowerCase();\n // Capitalize the first letter\n const capitalizedStr: string =\n lowercaseStr.charAt(0).toUpperCase() + lowercaseStr.slice(1);\n return capitalizedStr;\n}\n\n/// \"PERP_ETH_USDC\" => \"ETH_PERP\"\nexport function transSymbolformString(input: string): string {\n const parts = input.split(\"_\");\n if (parts.length !== 3) {\n throw new Error(\"Invalid string format\");\n }\n\n const [first, second, third] = parts;\n\n if (!first.startsWith(\"PERP\")) {\n throw new Error(\"Invalid string format\");\n }\n\n const result = `${second}-${first}`;\n return result;\n}\n\nexport function camelCaseToUnderscoreCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\n\nexport const findLongestCommonSubString = (str1: string, str2: string) => {\n // let index = 0;\n\n for (let index = 0; index < str1.length; index++) {\n const ele1 = str1.at(index);\n const ele2 = str2.at(index);\n if (ele1 === ele2) {\n continue;\n }\n\n return index;\n }\n\n return -1;\n};\n","export const windowGuard = (cb: Function) => {\n if (typeof window !== \"undefined\") {\n cb();\n }\n};\n\nexport const getGlobalObject = () => {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n // @ts-ignore\n if (typeof global !== \"undefined\") {\n // @ts-ignore\n return global;\n }\n throw new Error(\"cannot find the global object\");\n};\n\n\n/// get timestamp\nexport const getTimestamp = (): number => {\n\n if (typeof window !== \"undefined\") {\n // @ts-ignore\n const timeOffset = getGlobalObject()?.__ORDERLY_timestamp_offset;\n if (typeof timeOffset === 'number') {\n return Date.now() + (timeOffset || 0);\n }\n }\n return Date.now();\n}","// import dayjs from \"dayjs\";\n\nexport { default as Decimal } from \"./decimal\";\nexport * from \"./decimal\";\nexport * from \"./dateTime\";\nexport * from \"./chain\";\nexport * from \"./string\";\nexport { windowGuard, getGlobalObject, getTimestamp } from \"./window\";\nexport { default as dayjs } from \"dayjs\";\n\n// export { dayjs };\n"],"mappings":"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","names":["Decimal","decimal_default","cutNumber","num","lenght","zero","commifyOptional","options","prefix","value","commify","fillString","hasDecimal","list","fix","str","parts","numberPart","decimalPart","thousands","endsWithPoint","result","toNonExponential","m","getPrecisionByNumber","numberToHumanStyle","number","decimalPlaces","padding","abbreviations","index","roundedNumber","parseNumStr","cleanedStr","unitPart","scientificNotationPattern","removeTrailingZeros","fixedCount","text","isScientific","todpIfNeed","dp","numbers","timeConvertString","time","h","m","s","timestampToString","timestamp","date","year","month","day","hours","minutes","seconds","subtractDaysFromCurrentDate","days","startDate","currentDate","resultDate","ABSTRACT_TESTNET_CHAINID","ARBITRUM_TESTNET_CHAINID","BSC_TESTNET_CHAINID","MONAD_TESTNET_CHAINID","SOLANA_TESTNET_CHAINID","STORY_TESTNET_CHAINID","hex2int","chainId","int2hex","praseChainId","praseChainIdToNumber","parseChainIdToNumber","isTestnet","capitalizeString","str","lowercaseStr","transSymbolformString","input","parts","first","second","third","camelCaseToUnderscoreCase","findLongestCommonSubString","str1","str2","index","ele1","ele2","windowGuard","cb","getGlobalObject","getTimestamp","_a","timeOffset","default"]}
|
|
1
|
+
{"version":3,"sources":["../src/decimal.ts","../src/dateTime.ts","../src/chain.ts","../src/string.ts","../src/window.ts","../src/index.ts"],"sourcesContent":["import Decimal from \"decimal.js-light\";\n\nDecimal.set({\n rounding: Decimal.ROUND_DOWN,\n});\n\nexport default Decimal;\n\nexport const cutNumber = (num: number | string, lenght: number) => {};\n\nexport const zero = new Decimal(0);\n\n/** if num is undefined, returns options?.fallback || '-', otherwise it formats */\nexport const commifyOptional = (\n num?: number | string,\n options?: {\n fix?: number;\n fallback?: string;\n padEnd?: boolean;\n /// default is '0'\n fillString?: string;\n prefix?: string;\n },\n): string => {\n // if num convert to num failed, return fallback\n if (typeof num === \"string\" && isNaN(Number(num))) {\n return options?.fallback || \"--\";\n }\n\n const prefix = options?.prefix || \"\";\n if (typeof num === \"undefined\") {\n return prefix + (options?.fallback || \"--\");\n }\n const value = commify(num, options?.fix);\n\n if (options && options.padEnd && options.fix) {\n const fillString = options?.fillString || \"0\";\n const hasDecimal = value.includes(\".\");\n const list = value.split(\".\");\n if (hasDecimal) {\n return prefix + list[0] + \".\" + list[1].padEnd(options.fix, fillString);\n }\n return prefix + list[0] + \".\" + \"\".padEnd(options.fix, fillString);\n }\n return prefix + value;\n};\n\nconst THOUSANDS_REGEXP = /\\B(?=(\\d{3})+(?!\\d))/g;\nexport const commify = (num: number | string, fix?: number): string => {\n const str = `${num}`;\n const parts = str.split(\".\");\n const numberPart = parts[0];\n const decimalPart = parts[1];\n const endsWithPoint = str.endsWith(\".\") && str.length > 1;\n const result =\n numberPart.replace(THOUSANDS_REGEXP, \",\") +\n (decimalPart\n ? \".\" + decimalPart.substring(0, fix || decimalPart.length)\n : endsWithPoint\n ? \".\"\n : \"\");\n\n if (fix === 0 && result.includes(\".\")) {\n return result.substring(0, result.indexOf(\".\"));\n }\n return result;\n};\n\nconst SCIENTIFICNOTATION_REGEX = /\\d(?:\\.(\\d*))?e([+-]\\d+)/;\nexport const toNonExponential = (num: number) => {\n const m = num.toExponential().match(SCIENTIFICNOTATION_REGEX);\n if (!Array.isArray(m)) {\n return num;\n }\n return num.toFixed(\n Math.max(0, (m[1] || \"\").length - (m[2] as unknown as number)),\n );\n};\n\nexport const getPrecisionByNumber = (num: number | string) => {\n num = toNonExponential(Number(num));\n const parts = num.toString().split(\".\");\n return parts[1] ? parts[1].length : 0;\n};\n\n/**\n *\n * @example\n * const number1 = 12345;\n * const number2 = 987654321;\n */\nexport function numberToHumanStyle(\n number: number,\n decimalPlaces: number = 2,\n options?: {\n padding?: boolean;\n },\n): string {\n const { padding } = options || {};\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\"];\n\n let index = 0;\n while (number >= 1000 && index < abbreviations.length - 1) {\n number /= 1000;\n index++;\n }\n\n // const roundedNumber = number.toFixed(decimalPlaces);\n let roundedNumber = new Decimal(number)\n .toFixed(decimalPlaces, Decimal.ROUND_DOWN)\n .toString();\n\n // const roundedNumber = padding\n // ? number.toFixed(decimalPlaces)\n // : number.toString();\n\n roundedNumber = roundedNumber.replace(/\\.0+$/, \"\");\n\n return `${roundedNumber}${abbreviations[index]}`;\n}\n\n// export function numberToHumanStyle(num: number, dp: number = 0): string {\n// const absNum = Math.abs(num);\n// let formattedNum = \"\";\n\n// let exp;\n\n// if (absNum >= 1e12) {\n// formattedNum = (num / 1e12).toFixed(dp) + \"T\";\n// } else if (absNum >= 1e9) {\n// formattedNum = (num / 1e9).toFixed(dp) + \"B\";\n// } else if (absNum >= 1e6) {\n// formattedNum = (num / 1e6).toFixed(dp) + \"M\";\n// } else if (absNum >= 1e3) {\n// formattedNum = (num / 1e3).toFixed(dp) + \"K\";\n// } else {\n// formattedNum = num.toString();\n// }\n\n// formattedNum = formattedNum.replace(/\\.0$/, \"\");\n\n// return formattedNum;\n// }\n\nexport function parseNumStr(str: string | number): Decimal | undefined {\n const value = str.toString();\n const cleanedStr = value.replace(/,/g, \"\"); // remove `,` char\n const numberPart = new Decimal(cleanedStr);\n const unitPart = cleanedStr.slice(-1);\n\n if (isNaN(numberPart.toNumber())) {\n return undefined; // invalid data\n }\n\n let result;\n\n switch (unitPart) {\n case \"k\":\n case \"K\":\n result = numberPart.mul(1000);\n break;\n case \"m\":\n case \"M\":\n result = numberPart.mul(1000000);\n break;\n case \"b\":\n case \"B\":\n result = numberPart.mul(1000000000);\n break;\n case \"t\":\n case \"T\":\n result = numberPart.mul(1000000000000);\n break;\n default:\n result = numberPart;\n }\n\n return result;\n}\n\nconst SCIENTIFICNOTATIONPATTERN = /^[-+]?[0-9]+(\\.[0-9]+)?[eE][-+]?[0-9]+$/;\n\nconst TRAILINGZERODECIMAL_REGEX = /(\\.[0-9]*[1-9])0+$/;\n\n//** remove trailing zeros 0.00000100 => 0.000001, 1 => 1 */\nexport const removeTrailingZeros = (value: number, fixedCount: number = 16) => {\n const text = `${value}`;\n const isScientific = SCIENTIFICNOTATIONPATTERN.test(text);\n if (!value.toString().includes(\".\") && !isScientific) {\n return `${value}`;\n }\n const formattedNumber = new Decimal(value)\n .toFixed(fixedCount)\n .replace(TRAILINGZERODECIMAL_REGEX, \"$1\");\n return formattedNumber;\n};\n\nexport const todpIfNeed = (value: string | number, dp: number) => {\n if (value === undefined || value === \"\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n value = value.toString();\n }\n\n if (value.endsWith(\".\")) {\n return value;\n }\n\n const numbers = value.split(\".\");\n\n if (numbers.length === 1) {\n return value;\n }\n\n if (numbers[1].length <= dp || !numbers[1]) {\n return value;\n }\n\n return `${numbers[0]}.${numbers[1].substring(0, dp)}`;\n};\n","export const timeConvertString = (time: number): number[] => {\n time /= 1000;\n const h = Math.floor(time / 3600);\n const m = Math.floor((time / 60) % 60);\n const s = Math.floor(time % 60);\n return [h, m, s];\n};\n\n/// will be return 'yyyy-mm-dd hh:MM:ss'\nexport const timestampToString = (timestamp: number): string => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const seconds = String(date.getSeconds()).padStart(2, \"0\");\n\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n};\n\nexport function subtractDaysFromCurrentDate(\n days: number,\n startDate?: Date\n): Date {\n const currentDate = startDate || new Date();\n const resultDate = new Date(currentDate);\n resultDate.setDate(currentDate.getDate() - days);\n return resultDate;\n}\n","import {\n ABSTRACT_TESTNET_CHAINID,\n ARBITRUM_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n} from \"@orderly.network/types\";\n\nexport const hex2int = (chainId: string): number => parseInt(chainId);\nexport const int2hex = (chainId: number): string => `0x${chainId.toString(16)}`;\nexport const praseChainId = (chainId: string | number): number => {\n if (typeof chainId === \"string\") return hex2int(chainId);\n return chainId;\n};\n\nexport const praseChainIdToNumber = (chainId: string | number): number => {\n if (\n typeof chainId === \"string\" &&\n chainId.startsWith(\"0x\") &&\n /^[a-f0-9]+$/iu.test(chainId.slice(2))\n )\n return hex2int(chainId);\n return chainId as number;\n};\n\nexport const parseChainIdToNumber = praseChainIdToNumber;\n\nexport const isTestnet = (chainId: number) => {\n const testnetIds = [\n ARBITRUM_TESTNET_CHAINID,\n SOLANA_TESTNET_CHAINID,\n STORY_TESTNET_CHAINID,\n MONAD_TESTNET_CHAINID,\n ABSTRACT_TESTNET_CHAINID,\n BSC_TESTNET_CHAINID,\n ];\n\n return testnetIds.includes(chainId);\n};\n","export function capitalizeString(str: string): string {\n // Convert the string to lowercase\n const lowercaseStr: string = str.toLowerCase();\n // Capitalize the first letter\n const capitalizedStr: string =\n lowercaseStr.charAt(0).toUpperCase() + lowercaseStr.slice(1);\n return capitalizedStr;\n}\n\n/// \"PERP_ETH_USDC\" => \"ETH_PERP\"\nexport function transSymbolformString(input: string): string {\n const parts = input.split(\"_\");\n if (parts.length !== 3) {\n throw new Error(\"Invalid string format\");\n }\n\n const [first, second, third] = parts;\n\n if (!first.startsWith(\"PERP\")) {\n throw new Error(\"Invalid string format\");\n }\n\n const result = `${second}-${first}`;\n return result;\n}\n\nexport function camelCaseToUnderscoreCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, \"$1_$2\").toLowerCase();\n}\n\nexport const findLongestCommonSubString = (str1: string, str2: string) => {\n // let index = 0;\n\n for (let index = 0; index < str1.length; index++) {\n const ele1 = str1.at(index);\n const ele2 = str2.at(index);\n if (ele1 === ele2) {\n continue;\n }\n\n return index;\n }\n\n return -1;\n};\n","export const windowGuard = (cb: Function) => {\n if (typeof window !== \"undefined\") {\n cb();\n }\n};\n\nexport const getGlobalObject = () => {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n // @ts-ignore\n if (typeof global !== \"undefined\") {\n // @ts-ignore\n return global;\n }\n throw new Error(\"cannot find the global object\");\n};\n\n\n/// get timestamp\nexport const getTimestamp = (): number => {\n\n if (typeof window !== \"undefined\") {\n // @ts-ignore\n const timeOffset = getGlobalObject()?.__ORDERLY_timestamp_offset;\n if (typeof timeOffset === 'number') {\n return Date.now() + (timeOffset || 0);\n }\n }\n return Date.now();\n}","// import dayjs from \"dayjs\";\n\nexport { default as Decimal } from \"./decimal\";\nexport * from \"./decimal\";\nexport * from \"./dateTime\";\nexport * from \"./chain\";\nexport * from \"./string\";\nexport { windowGuard, getGlobalObject, getTimestamp } from \"./window\";\nexport { default as dayjs } from \"dayjs\";\n\n// export { dayjs };\n"],"mappings":"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","names":["Decimal","decimal_default","cutNumber","num","lenght","zero","commifyOptional","options","prefix","value","commify","fillString","hasDecimal","list","THOUSANDS_REGEXP","fix","str","parts","numberPart","decimalPart","endsWithPoint","result","SCIENTIFICNOTATION_REGEX","toNonExponential","m","getPrecisionByNumber","numberToHumanStyle","number","decimalPlaces","padding","abbreviations","index","roundedNumber","parseNumStr","cleanedStr","unitPart","SCIENTIFICNOTATIONPATTERN","TRAILINGZERODECIMAL_REGEX","removeTrailingZeros","fixedCount","text","isScientific","todpIfNeed","dp","numbers","timeConvertString","time","h","m","s","timestampToString","timestamp","date","year","month","day","hours","minutes","seconds","subtractDaysFromCurrentDate","days","startDate","currentDate","resultDate","ABSTRACT_TESTNET_CHAINID","ARBITRUM_TESTNET_CHAINID","BSC_TESTNET_CHAINID","MONAD_TESTNET_CHAINID","SOLANA_TESTNET_CHAINID","STORY_TESTNET_CHAINID","hex2int","chainId","int2hex","praseChainId","praseChainIdToNumber","parseChainIdToNumber","isTestnet","capitalizeString","str","lowercaseStr","transSymbolformString","input","parts","first","second","third","camelCaseToUnderscoreCase","findLongestCommonSubString","str1","str2","index","ele1","ele2","windowGuard","cb","getGlobalObject","getTimestamp","_a","timeOffset","default"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orderly.network/utils",
|
|
3
|
-
"version": "2.5.3
|
|
3
|
+
"version": "2.5.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"jest": "^29.6.1",
|
|
19
19
|
"tsup": "^7.1.0",
|
|
20
20
|
"typescript": "^5.1.6",
|
|
21
|
-
"tsconfig": "0.8.3
|
|
21
|
+
"tsconfig": "0.8.3"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"dayjs": "^1.11.9",
|
|
25
25
|
"decimal.js-light": "^2.5.1",
|
|
26
|
-
"@orderly.network/types": "2.5.3
|
|
26
|
+
"@orderly.network/types": "2.5.3"
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|