52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
"use strict";
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
var compress_exports = {};
|
|
__export(compress_exports, {
|
|
default: () => compress
|
|
});
|
|
module.exports = __toCommonJS(compress_exports);
|
|
const isCompactDoubleQuotedString = (string) => {
|
|
return !string.match(/[\x00-\x1f\u2028\u2029\\"]/);
|
|
};
|
|
const compressWithPrefix = (parsed) => {
|
|
if (!Array.isArray(parsed)) {
|
|
return parsed;
|
|
}
|
|
if (!parsed.every(
|
|
(entry) => typeof entry === "string" && isCompactDoubleQuotedString(entry)
|
|
)) {
|
|
return parsed;
|
|
}
|
|
const deltas = [];
|
|
let last = "";
|
|
parsed.forEach((entry) => {
|
|
let prefixLen = 0;
|
|
const maxPrefixLen = Math.min(entry.length, last.length, 25);
|
|
while (prefixLen < maxPrefixLen && entry.charAt(prefixLen) === last.charAt(prefixLen)) {
|
|
prefixLen += 1;
|
|
}
|
|
deltas.push(String.fromCharCode(65 + prefixLen) + entry.slice(prefixLen));
|
|
last = entry;
|
|
});
|
|
return deltas.join("");
|
|
};
|
|
function compress(data) {
|
|
return compressWithPrefix(data);
|
|
}
|
|
//# sourceMappingURL=compress.cjs.map |