Run through prettier

This commit is contained in:
Mikko Ahlroth 2022-11-10 20:13:24 +02:00
parent 21a26daab0
commit 7733947270
3 changed files with 66 additions and 41 deletions

View file

@ -51,7 +51,7 @@ export class DataOptions {
if (fixedHeaderBytes >= 2) {
const languageIDLowByte = data[1];
const languageIDHighBit = (byte1 & 0b00000001);
const languageIDHighBit = byte1 & 0b00000001;
const languageID = (languageIDHighBit << 8) | languageIDLowByte;
if (LANGUAGES.has(languageID)) {

View file

@ -1,4 +1,8 @@
import brotliInit, { compress, DecompressStream, BrotliStreamResult } from "./vendor/brotli_wasm.js";
import brotliInit, {
compress,
DecompressStream,
BrotliStreamResult,
} from "./vendor/brotli_wasm.js";
import base from "./vendor/base-x.js";
import "./vendor/prism/prism.js";
import "./vendor/prism/plugins/line-numbers/prism-line-numbers.js";
@ -7,12 +11,19 @@ import "./vendor/prism/dependencies.js";
import { waitForLoad } from "./utils.js";
import { DataOptions } from "./dataoptions.js";
import { ViewMode } from "./viewmode.js";
import { getDependenciesForLanguage, getDepsData, LANGUAGES, LANGUAGE_NAMES, PLAINTEXT } from "./languages.js";
import {
getDependenciesForLanguage,
getDepsData,
LANGUAGES,
LANGUAGE_NAMES,
PLAINTEXT,
} from "./languages.js";
const PROJECT_NAME = "Tahnaroskakori";
const COMPRESS_WAIT = 500;
const ENCODER = new TextEncoder();
const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?/-._~$&+=";
const ALPHABET =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?/-._~$&+=";
const BASECODEC = base(ALPHABET);
const QUALITY = 11;
const MAX_URL = 2048;
@ -41,7 +52,9 @@ function setTitle() {
if (dataOptions.title !== "") {
document.title = dataOptions.title + TITLE_POSTFIX;
} else if (currentCode !== "") {
document.title = currentCode.replace("\n", "").substring(0, TITLE_CODE_LENGTH) + TITLE_POSTFIX;
document.title =
currentCode.replace("\n", "").substring(0, TITLE_CODE_LENGTH) +
TITLE_POSTFIX;
} else {
document.title = PROJECT_NAME;
}
@ -80,9 +93,12 @@ async function highlightLanguage() {
codeViewEl.classList.add(getLanguageClassName(dataOptions.language));
if (dataOptions.language !== PLAINTEXT) {
const deps = getDependenciesForLanguage(languageDependencies, dataOptions.language);
const deps = getDependenciesForLanguage(
languageDependencies,
dataOptions.language
);
for (const dep of [...deps, dataOptions.language]) {
await import(`./vendor/prism/components/prism-${dep}.js`)
await import(`./vendor/prism/components/prism-${dep}.js`);
}
if (viewMode === ViewMode.VIEW) {
@ -177,7 +193,9 @@ async function syncCompress() {
const compressed = compress(dataWithHeader, { quality: QUALITY });
const encoded = BASECODEC.encode(compressed);
statusEl.textContent = `Length: ${dataWithHeader.length} B -> ${compressed.length} B -> ${encoded.length}/${maxHashLength()} chars`;
statusEl.textContent = `Length: ${dataWithHeader.length} B -> ${
compressed.length
} B -> ${encoded.length}/${maxHashLength()} chars`;
if (encoded.length <= maxHashLength()) {
history.replaceState(null, "", `#${encoded}`);
@ -209,29 +227,37 @@ async function streamDecompress() {
start(controller) {
controller.enqueue(data);
controller.close();
}
},
});
const decompressStream = new DecompressStream();
const decompressionRunner = new TransformStream({
start() {},
transform(chunk, controller) {
controller.enqueue(decompressStream.decompress(chunk, DECOMPRESS_CHUNK_SIZE));
controller.enqueue(
decompressStream.decompress(chunk, DECOMPRESS_CHUNK_SIZE)
);
let slice = chunk;
while (decompressStream.result() === BrotliStreamResult.NeedsMoreOutput) {
while (
decompressStream.result() === BrotliStreamResult.NeedsMoreOutput
) {
slice = slice.slice(decompressStream.last_input_offset());
controller.enqueue(decompressStream.decompress(slice, DECOMPRESS_CHUNK_SIZE));
controller.enqueue(
decompressStream.decompress(slice, DECOMPRESS_CHUNK_SIZE)
);
}
},
flush(controller) {
if (decompressStream.result() === BrotliStreamResult.NeedsMoreInput) {
controller.enqueue(decompressStream.decompress("", DECOMPRESS_CHUNK_SIZE));
controller.enqueue(
decompressStream.decompress("", DECOMPRESS_CHUNK_SIZE)
);
}
controller.terminate();
}
},
});
const optionsPickerStream = new TransformStream({
@ -250,7 +276,7 @@ async function streamDecompress() {
} else {
controller.enqueue(chunk);
}
}
},
});
const textDecoderStream = new TextDecoderStream();
@ -265,8 +291,10 @@ async function streamDecompress() {
renderCode();
// Delay stream between every chunk to avoid zip bombing
return new Promise(resolve => setTimeout(resolve, DECOMPRESS_CHUNK_TIMEOUT));
}
return new Promise((resolve) =>
setTimeout(resolve, DECOMPRESS_CHUNK_TIMEOUT)
);
},
});
await inputStream
@ -287,7 +315,9 @@ async function streamDecompress() {
*/
async function languageSelected() {
codeViewEl.classList.remove(getLanguageClassName(dataOptions.language));
codeViewContentEl.classList.remove(getLanguageClassName(dataOptions.language));
codeViewContentEl.classList.remove(
getLanguageClassName(dataOptions.language)
);
if (LANGUAGES.has(languageSelectEl.value)) {
dataOptions.language = languageSelectEl.value;
@ -339,11 +369,7 @@ async function init() {
renderLanguageOptions();
renderView();
[languageDependencies,] = await Promise.all([
getDepsData(),
brotliInit(),
]);
[languageDependencies] = await Promise.all([getDepsData(), brotliInit()]);
codeEditEl.addEventListener("input", codeEdited);
viewModeSwitcherEl.addEventListener("click", switchMode);

View file

@ -3,13 +3,12 @@
* @returns {Promise<void>}
*/
export function waitForLoad() {
return new Promise(resolve => {
return new Promise((resolve) => {
// If already loaded, fire immediately
if (/complete|interactive|loaded/.test(document.readyState)) {
resolve();
}
else {
document.addEventListener('DOMContentLoaded', resolve);
} else {
document.addEventListener("DOMContentLoaded", resolve);
}
});
}