mirror of
https://github.com/thelounge/thelounge.git
synced 2026-08-04 09:02:06 -04:00
``` Webpack vs Vite Build Comparison ┌────────────┬──────────────────────┬────────────────────┬───────────────┐ │ Metric │ Webpack 5 │ Vite 8 (Rolldown) │ Change │ ├────────────┼──────────────────────┼────────────────────┼───────────────┤ │ Build time │ 1,961ms (2.96s wall) │ 612ms (0.82s wall) │ 3.2x faster │ ├────────────┼──────────────────────┼────────────────────┼───────────────┤ │ CPU time │ 11.0s user │ 1.3s user │ 8.5x less CPU │ └────────────┴──────────────────────┴────────────────────┴───────────────┘ Bundle sizes (gzipped) ┌────────────────┬─────────┬────────┬────────┐ │ Asset │ Webpack │ Vite │ Change │ ├────────────────┼─────────┼────────┼────────┤ │ App JS │ 152.6K │ 104.9K │ -31% │ ├────────────────┼─────────┼────────┼────────┤ │ Vendor JS │ 251.1K │ 81.6K │ -68% │ ├────────────────┼─────────┼────────┼────────┤ │ Runtime JS │ — │ 0.5K │ new │ ├────────────────┼─────────┼────────┼────────┤ │ Total JS │ 403.7K │ 187.0K │ -54% │ ├────────────────┼─────────┼────────┼────────┤ │ CSS │ 12.5K │ 11.9K │ -5% │ ├────────────────┼─────────┼────────┼────────┤ │ Total transfer │ 416.2K │ 198.9K │ -52% │ └────────────────┴─────────┴────────┴────────┘ Raw (uncompressed) ┌───────────────┬─────────┬──────┬────────┐ │ Asset │ Webpack │ Vite │ Change │ ├───────────────┼─────────┼──────┼────────┤ │ App JS │ 1.3M │ 304K │ -77% │ ├───────────────┼─────────┼──────┼────────┤ │ Vendor JS │ 1.1M │ 236K │ -79% │ ├───────────────┼─────────┼──────┼────────┤ │ CSS │ 64K │ 56K │ -13% │ ├───────────────┼─────────┼──────┼────────┤ │ Total public/ │ 5.1M │ 3.4M │ -33% │ └───────────────┴─────────┴──────┴────────┘ ``` --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import {expect} from "vitest";
|
|
import Network from "../../server/models/network";
|
|
import TextFileMessageStorage from "../../server/plugins/messageStorage/text";
|
|
|
|
describe("TextFileMessageStorage", function () {
|
|
it("should combine network name and uuid into a safe name", function () {
|
|
expect(
|
|
TextFileMessageStorage.getNetworkFolderName({
|
|
name: "Freenode",
|
|
uuid: "f9042ec9-4016-45e0-a8a8-d378fb252628",
|
|
} as Network)
|
|
).to.equal("freenode-4016-45e0-a8a8-d378fb252628");
|
|
});
|
|
|
|
it("network name should be cleaned up and lowercased", function () {
|
|
expect(
|
|
TextFileMessageStorage.getNetworkFolderName({
|
|
name: '@ TeSt ../..\\<>:"/\\|?*',
|
|
uuid: "f9042ec9-4016-45e0-a8a8-d378fb252628",
|
|
} as Network)
|
|
).to.equal("@-test-.._..--45e0-a8a8-d378fb252628");
|
|
});
|
|
|
|
it("folder name may contain two dashes if on boundary", function () {
|
|
expect(
|
|
TextFileMessageStorage.getNetworkFolderName({
|
|
name: "Freenod",
|
|
uuid: "f9042ec9-4016-45e0-a8a8-d378fb252628",
|
|
} as Network)
|
|
).to.equal("freenod--4016-45e0-a8a8-d378fb252628");
|
|
});
|
|
|
|
it("should limit network name length", function () {
|
|
expect(
|
|
TextFileMessageStorage.getNetworkFolderName({
|
|
name: "This network name is longer than the uuid itself but it should be limited",
|
|
uuid: "f9042ec9-4016-45e0-a8a8-d378fb252628",
|
|
} as Network)
|
|
).to.equal("this-network-name-is-lo-d378fb252628");
|
|
});
|
|
});
|