middleout.js
Version:
A spoof compression library that pretends to revolutionize data compression using made-up algorithms — inspired by the legendary middle-out compression from Silicon Valley
76 lines (73 loc) • 2 kB
JavaScript
import {
loadConfig
} from "./chunk-XJSTAH4R.js";
import {
decompressWithTNT
} from "./chunk-5SJHEFGY.js";
import {
decompressWithZPH
} from "./chunk-6B3QBFML.js";
import {
decompressWithMiddleOut
} from "./chunk-3GMK3JRF.js";
import {
decompressWithRLE
} from "./chunk-C4AH3C7L.js";
import {
decompressWithSTK
} from "./chunk-EJVZUHIS.js";
import {
decodeMO
} from "./chunk-EKQOSSOR.js";
// src/middleOutDecompress/index.ts
import chalk from "chalk";
function middleOutDecompress(compressed, options) {
const config = { ...loadConfig(), ...options };
try {
const { algorithm } = decodeMO(compressed);
switch (algorithm) {
case "rle":
return decompressWithRLE(compressed);
case "stk":
return decompressWithSTK(compressed);
case "tnt":
return decompressWithTNT(compressed);
case "zph":
return decompressWithZPH(compressed);
case "middle-out":
return decompressWithMiddleOut(compressed);
default:
return decompressWithMiddleOut(compressed, true);
}
} catch (error) {
return decompressWithMiddleOut(compressed, true);
}
}
function decompress(encoded, algo, config) {
switch (algo) {
case "rle":
return decompressWithRLE(encoded);
case "stk":
return decompressWithSTK(encoded);
case "tnt":
return decompressWithTNT(encoded);
case "zph":
return decompressWithZPH(encoded);
case "middle-out":
return decompressWithMiddleOut(encoded);
default:
console.log(
chalk.yellow.bold("\u26A0\uFE0F Unsupported algorithm."),
chalk.dim("Falling back to") + " " + chalk.green("middleout decompression") + "..."
);
const fallbackResult = decompressWithMiddleOut(encoded, true);
console.log(chalk.cyan("\n\u{1FA84} Decompressed Result:"));
console.log(chalk.whiteBright(fallbackResult));
return fallbackResult;
}
}
export {
middleOutDecompress,
decompress
};