@yangzw/bruce-img
Version:
An image processing tool that multifunctional and unrestricted
1 lines • 2.29 kB
JavaScript
var x=this&&this.__awaiter||function(t,e,o,r){return new(o||(o=Promise))((function(n,a){function i(t){try{s(r.next(t))}catch(t){a(t)}}function l(t){try{s(r.throw(t))}catch(t){a(t)}}function s(t){var e;t.done?n(t.value):(e=t.value,e instanceof o?e:new o((function(t){t(e)}))).then(i,l)}s((r=r.apply(t,e||[])).next())}))};import{readFileSync as tt}from"node:fs";import{basename as _,join as ei}from"node:path";import{exit as s}from"node:process";import{AbsPath as E,CreateDir as ns,RemoveDir as eo,WaitFor as Ze}from"@yangzw/bruce-us/dist/node.js";import ko from"is-animated";import no from"ora";import Gt from"sharp";import{TRANSFORM_TEXT as n$}from"../langs/index.js";import{OUTPUT_DIR as ai,FilterImg as pi,FormatExt as ci,GetExt as ui,ShowTitle as io}from"../utils/index.js";function Ft(t){return[{key:"blur",val:t.blur},{key:"extract",val:t.extract},{key:"flip",val:t.flip},{key:"flop",val:t.flop},{key:"grayscale",val:t.grayscale},{key:"negate",val:t.negate},{key:"normalise",val:t.normalise},{key:"resize",val:t.resize},{key:"rotate",val:t.rotate},{key:"sharpen",val:t.sharpen},{key:"toFormat",val:t.toFormat}].filter((t=>!!t.val))}function At(){return x(this,arguments,void 0,(function*(t="",e=[]){var o;const r=tt(E(t)),n=ui(t);if(ko(r)&&"webp"===n)return n$.result2(t,"webp动态图像无法变换");try{const r=ei(ai.transform,t.replace(_(t),"")),n=E(ei(ai.transform,ci(t))),a=e.reduce(((t,e)=>Array.isArray(e.val)?t[e.key](...e.val):!0===e.val?t[e.key]():t[e.key](e.val)),Gt(t).withMetadata()),{val:i}=null!==(o=e.find((t=>"toFormat"===t.key)))&&void 0!==o?o:{};let l=null;if(ns(r),i&&"string"==typeof i){const e=_(t).split(".");e.pop();const o=e.concat(i).join("."),r=n.replace(_(t),o);l=yield a.toFile(r)}else l=yield a.toFile(n);return n$.result1(t,l)}catch(e){return n$.result2(t,e.message)}}))}export default function Bo(t){return x(this,void 0,void 0,(function*(){io("transform");const e=Ft(t);e.length||(console.log(n$.empty),s(1));const o=no(n$.doing).start();eo(ai.transform),ns(ai.transform);const{count:r,validImgs:n}=yield pi("jpg,png,webp,JPG,PNG,WEBP"),a=n.map((t=>x(this,void 0,void 0,(function*(){return yield At(t,e)})))),i=yield Promise.all(a);yield Ze(2e3),o.stop(),console.log(n$.stats(r)),i.length<=100&&i.forEach((t=>console.log(t))),console.log(n$.done),s(1)}))}