cn-font-split
Version:
划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.
1 lines • 2.27 kB
Source Map (JSON)
{"version":3,"file":"isMusl.mjs","names":[],"sources":["../../src/node/isMusl.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { execSync } from 'child_process';\nimport path from 'path';\nexport const isMusl = () => {\n let musl: boolean | null = false;\n if (process.platform === 'linux') {\n musl = isMuslFromFilesystem();\n if (musl === null) {\n musl = isMuslFromReport();\n }\n if (musl === null) {\n musl = isMuslFromChildProcess();\n }\n }\n return !!musl;\n};\n\nexport const isMuslFromFilesystem = () => {\n try {\n return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl');\n } catch {\n return null;\n }\n};\n\nexport const isMuslFromReport = () => {\n const report: any =\n typeof process.report.getReport === 'function'\n ? process.report.getReport()\n : null;\n if (!report) {\n return null;\n }\n if (report.header && report.header.glibcVersionRuntime) {\n return false;\n }\n if (Array.isArray(report.sharedObjects)) {\n if (\n report.sharedObjects.some(\n (f: string) =>\n f.includes('libc.musl-') || f.includes('ld-musl-'),\n )\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const isMuslFromChildProcess = () => {\n try {\n return execSync('ldd --version', { encoding: 'utf8' }).includes('musl');\n } catch (e) {\n // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false\n return false;\n }\n};\n"],"mappings":";;;AAGA,IAAa,UAAe;CACxB,IAAI,IAAuB;CAU3B,OATI,QAAQ,aAAa,YACrB,IAAO,EAAqB,GACxB,MAAS,SACT,IAAO,EAAiB,IAExB,MAAS,SACT,IAAO,EAAuB,KAG/B,CAAC,CAAC;AACb,GAEa,UAA6B;CACtC,IAAI;EACA,OAAO,EAAa,gBAAgB,OAAO,EAAE,SAAS,MAAM;CAChE,QAAQ;EACJ,OAAO;CACX;AACJ,GAEa,UAAyB;CAClC,IAAM,IACF,OAAO,QAAQ,OAAO,aAAc,aAC9B,QAAQ,OAAO,UAAU,IACzB;CAiBV,OAhBK,IAGD,EAAO,UAAU,EAAO,OAAO,sBACxB,KAEX,GAAI,MAAM,QAAQ,EAAO,aAAa,KAE9B,EAAO,cAAc,MAChB,MACG,EAAE,SAAS,YAAY,KAAK,EAAE,SAAS,UAAU,CACzD,KAVG;AAgBf,GAEa,UAA+B;CACxC,IAAI;EACA,OAAO,EAAS,iBAAiB,EAAE,UAAU,OAAO,CAAC,EAAE,SAAS,MAAM;CAC1E,QAAY;EAER,OAAO;CACX;AACJ"}