mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-04 04:40:05 +02:00
add some packages
This commit is contained in:
52
node_modules/babel-plugin-minify-mangle-names/lib/charset.js
generated
vendored
Normal file
52
node_modules/babel-plugin-minify-mangle-names/lib/charset.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
"use strict";
|
||||
|
||||
const CHARSET = ("abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ$_").split("");
|
||||
module.exports = class Charset {
|
||||
constructor(shouldConsider) {
|
||||
this.shouldConsider = shouldConsider;
|
||||
this.chars = CHARSET.slice();
|
||||
this.frequency = {};
|
||||
this.chars.forEach(c => {
|
||||
this.frequency[c] = 0;
|
||||
});
|
||||
this.finalized = false;
|
||||
}
|
||||
|
||||
consider(str) {
|
||||
if (!this.shouldConsider) {
|
||||
return;
|
||||
}
|
||||
|
||||
str.split("").forEach(c => {
|
||||
if (this.frequency[c] != null) {
|
||||
this.frequency[c]++;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
sort() {
|
||||
if (this.shouldConsider) {
|
||||
this.chars = this.chars.sort((a, b) => this.frequency[b] - this.frequency[a]);
|
||||
}
|
||||
|
||||
this.finalized = true;
|
||||
}
|
||||
|
||||
getIdentifier(num) {
|
||||
if (!this.finalized) {
|
||||
throw new Error("Should sort first");
|
||||
}
|
||||
|
||||
let ret = "";
|
||||
num++;
|
||||
|
||||
do {
|
||||
num--;
|
||||
ret += this.chars[num % this.chars.length];
|
||||
num = Math.floor(num / this.chars.length);
|
||||
} while (num > 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
};
|
Reference in New Issue
Block a user