UNPKG

@node-minify/run

Version:
1 lines 3.94 kB
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2024 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport childProcess from \"node:child_process\";\nimport type { MinifierOptions } from \"@node-minify/types\";\n\n/**\n * Run the command line with spawn.\n * @param args Arguments\n * @param data Data to minify\n * @param settings Settings\n * @param callback Callback\n * @returns Minified content\n */\nconst runCommandLine = ({\n args,\n data,\n settings,\n callback,\n}: MinifierOptions) => {\n if (settings?.sync) {\n return runSync({ settings, data, args, callback });\n }\n\n return runAsync({ data, args, callback });\n};\n\n/**\n * Exec command as async.\n * @param data Data to minify\n * @param args Arguments\n * @param callback Callback\n * @returns Minified content\n */\nconst runAsync = ({ data, args, callback }: MinifierOptions) => {\n let stdout = \"\";\n let stderr = \"\";\n\n const child = childProcess.spawn(\"java\", args, {\n stdio: \"pipe\",\n });\n\n child.on(\"error\", console.log.bind(console, \"child\"));\n child.stdin.on(\"error\", console.log.bind(console, \"child.stdin\"));\n child.stdout.on(\"error\", console.log.bind(console, \"child.stdout\"));\n child.stderr.on(\"error\", console.log.bind(console, \"child.stderr\"));\n\n child.on(\"exit\", (code) => {\n if (code !== 0) {\n return callback?.(new Error(stderr));\n }\n\n return callback?.(null, stdout);\n });\n\n child.stdout.on(\"data\", (chunk) => {\n stdout += chunk;\n });\n child.stderr.on(\"data\", (chunk) => {\n stderr += chunk;\n });\n\n child.stdin.end(data);\n};\n\n/**\n * Exec command as sync.\n *\n * @param settings Settings\n * @param data Data to minify\n * @param args Arguments\n * @param callback Callback\n * @returns Minified content\n */\nconst runSync = ({ settings, data, args, callback }: MinifierOptions) => {\n try {\n const child = childProcess.spawnSync(\"java\", args, {\n input: data,\n stdio: \"pipe\",\n maxBuffer: settings?.buffer,\n });\n const stdout = child.stdout.toString();\n const stderr = child.stderr.toString();\n const code = child.status;\n\n if (code !== 0) {\n return callback?.(new Error(stderr));\n }\n\n return callback?.(null, stdout);\n } catch (err: unknown) {\n return callback?.(err);\n }\n};\n\n/**\n * Expose `runCommandLine()`.\n */\nexport { runCommandLine };\n"],"mappings":";AASA,OAAO,kBAAkB;AAWzB,IAAM,iBAAiB,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAuB;AACnB,MAAI,UAAU,MAAM;AAChB,WAAO,QAAQ,EAAE,UAAU,MAAM,MAAM,SAAS,CAAC;AAAA,EACrD;AAEA,SAAO,SAAS,EAAE,MAAM,MAAM,SAAS,CAAC;AAC5C;AASA,IAAM,WAAW,CAAC,EAAE,MAAM,MAAM,SAAS,MAAuB;AAC5D,MAAI,SAAS;AACb,MAAI,SAAS;AAEb,QAAM,QAAQ,aAAa,MAAM,QAAQ,MAAM;AAAA,IAC3C,OAAO;AAAA,EACX,CAAC;AAED,QAAM,GAAG,SAAS,QAAQ,IAAI,KAAK,SAAS,OAAO,CAAC;AACpD,QAAM,MAAM,GAAG,SAAS,QAAQ,IAAI,KAAK,SAAS,aAAa,CAAC;AAChE,QAAM,OAAO,GAAG,SAAS,QAAQ,IAAI,KAAK,SAAS,cAAc,CAAC;AAClE,QAAM,OAAO,GAAG,SAAS,QAAQ,IAAI,KAAK,SAAS,cAAc,CAAC;AAElE,QAAM,GAAG,QAAQ,CAAC,SAAS;AACvB,QAAI,SAAS,GAAG;AACZ,aAAO,WAAW,IAAI,MAAM,MAAM,CAAC;AAAA,IACvC;AAEA,WAAO,WAAW,MAAM,MAAM;AAAA,EAClC,CAAC;AAED,QAAM,OAAO,GAAG,QAAQ,CAAC,UAAU;AAC/B,cAAU;AAAA,EACd,CAAC;AACD,QAAM,OAAO,GAAG,QAAQ,CAAC,UAAU;AAC/B,cAAU;AAAA,EACd,CAAC;AAED,QAAM,MAAM,IAAI,IAAI;AACxB;AAWA,IAAM,UAAU,CAAC,EAAE,UAAU,MAAM,MAAM,SAAS,MAAuB;AACrE,MAAI;AACA,UAAM,QAAQ,aAAa,UAAU,QAAQ,MAAM;AAAA,MAC/C,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW,UAAU;AAAA,IACzB,CAAC;AACD,UAAM,SAAS,MAAM,OAAO,SAAS;AACrC,UAAM,SAAS,MAAM,OAAO,SAAS;AACrC,UAAM,OAAO,MAAM;AAEnB,QAAI,SAAS,GAAG;AACZ,aAAO,WAAW,IAAI,MAAM,MAAM,CAAC;AAAA,IACvC;AAEA,WAAO,WAAW,MAAM,MAAM;AAAA,EAClC,SAAS,KAAc;AACnB,WAAO,WAAW,GAAG;AAAA,EACzB;AACJ;","names":[]}