MCPcopy Create free account
hub / github.com/SpaceZephyr/myskill / processFile

Function processFile

baoyu-compress-image/scripts/main.ts:135–164  ·  view source on GitHub ↗
(
  compressor: Compressor,
  input: string,
  opts: Options
)

Source from the content-addressed store, hash-verified

133}
134
135async function processFile(
136 compressor: Compressor,
137 input: string,
138 opts: Options
139): Promise<Result> {
140 const absInput = resolve(input);
141 const inputSize = statSync(absInput).size;
142 const output = getOutputPath(absInput, opts.format, opts.keep, opts.output);
143 const tempOutput = output + ".tmp";
144
145 await compress(compressor, absInput, tempOutput, opts.format, opts.quality);
146
147 const outputSize = statSync(tempOutput).size;
148
149 if (!opts.keep && absInput !== output) {
150 const ext = extname(absInput);
151 const base = absInput.slice(0, -ext.length);
152 renameSync(absInput, `${base}_original${ext}`);
153 }
154 renameSync(tempOutput, output);
155
156 return {
157 input: absInput,
158 output,
159 inputSize,
160 outputSize,
161 ratio: outputSize / inputSize,
162 compressor,
163 };
164}
165
166function collectFiles(dir: string, recursive: boolean): string[] {
167 const files: string[] = [];

Callers 1

mainFunction · 0.85

Calls 2

getOutputPathFunction · 0.85
compressFunction · 0.85

Tested by

no test coverage detected