Skip to content

Commit

Permalink
biome
Browse files Browse the repository at this point in the history
  • Loading branch information
guiltygyoza committed Sep 19, 2024
1 parent 3962bc4 commit bd2d715
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 33 deletions.
41 changes: 24 additions & 17 deletions examples/grid/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { TopologyNode } from "@topology-foundation/node";
import type { TopologyObject } from "@topology-foundation/object";
import { Grid } from "./objects/grid";
import { rgbToHsl, hslToRgb, rgbToHex } from "./util/color";
import { hslToRgb, rgbToHex, rgbToHsl } from "./util/color";

const node = new TopologyNode();
let topologyObject: TopologyObject;
Expand All @@ -28,9 +28,9 @@ const hashCode = (str: string): number => {
const getColorForNodeId = (id: string): string => {
if (!colorMap.has(id)) {
const hash = hashCode(id);
let r = (hash & 0xFF0000) >> 16;
let g = (hash & 0x00FF00) >> 8;
let b = (hash & 0x0000FF);
let r = (hash & 0xff0000) >> 16;
let g = (hash & 0x00ff00) >> 8;
let b = hash & 0x0000ff;

// Convert to HSL and adjust lightness to be below 50%
let [h, s, l] = rgbToHsl(r, g, b);
Expand All @@ -41,7 +41,7 @@ const getColorForNodeId = (id: string): string => {
const color = rgbToHex(r, g, b); // Convert RGB to hex
colorMap.set(id, color);
}
return colorMap.get(id) || '#000000';
return colorMap.get(id) || "#000000";
};

const render = () => {
Expand All @@ -63,17 +63,17 @@ const render = () => {
element_peerId.innerHTML = `<strong style="color: ${getColorForNodeId(node.networkNode.peerId)};">${formatNodeId(node.networkNode.peerId)}</strong>`;

const element_peers = <HTMLDivElement>document.getElementById("peers");
element_peers.innerHTML = `[${peers.map(peer => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;
element_peers.innerHTML = `[${peers.map((peer) => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;

const element_discoveryPeers = <HTMLDivElement>(
document.getElementById("discoveryPeers")
);
element_discoveryPeers.innerHTML = `[${discoveryPeers.map(peer => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;
element_discoveryPeers.innerHTML = `[${discoveryPeers.map((peer) => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;

const element_objectPeers = <HTMLDivElement>(
document.getElementById("objectPeers")
);
element_objectPeers.innerHTML = `[${objectPeers.map(peer => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;
element_objectPeers.innerHTML = `[${objectPeers.map((peer) => `<strong style="color: ${getColorForNodeId(peer)};">${formatNodeId(peer)}</strong>`).join(", ")}]`;

if (!gridCRO) return;
const users = gridCRO.getUsers();
Expand Down Expand Up @@ -112,7 +112,7 @@ const render = () => {
}

for (const userColorString of users) {
const [id, color] = userColorString.split(':');
const [id, color] = userColorString.split(":");
const position = gridCRO.getUserPosition(userColorString);

if (position) {
Expand Down Expand Up @@ -171,7 +171,10 @@ async function addUser() {
return;
}

gridCRO.addUser(node.networkNode.peerId, getColorForNodeId(node.networkNode.peerId));
gridCRO.addUser(
node.networkNode.peerId,
getColorForNodeId(node.networkNode.peerId),
);
render();
}

Expand Down Expand Up @@ -249,13 +252,17 @@ async function main() {

const copyButton = <HTMLButtonElement>document.getElementById("copyGridId");
copyButton.addEventListener("click", () => {
const gridIdText = (<HTMLSpanElement>document.getElementById("gridId")).innerText;
navigator.clipboard.writeText(gridIdText).then(() => {
// alert("Grid CRO ID copied to clipboard!");
console.log("Grid CRO ID copied to clipboard")
}).catch(err => {
console.error("Failed to copy: ", err);
});
const gridIdText = (<HTMLSpanElement>document.getElementById("gridId"))
.innerText;
navigator.clipboard
.writeText(gridIdText)
.then(() => {
// alert("Grid CRO ID copied to clipboard!");
console.log("Grid CRO ID copied to clipboard");
})
.catch((err) => {
console.error("Failed to copy: ", err);
});
});
}

Expand Down
16 changes: 10 additions & 6 deletions examples/grid/src/objects/grid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import {
export class Grid implements CRO {
operations: string[] = ["addUser", "moveUser"];
semanticsType: SemanticsType = SemanticsType.pair;
positions: Map<string, { x: number, y: number }>;
positions: Map<string, { x: number; y: number }>;

constructor() {
this.positions = new Map<string, { x: number, y: number }>();
this.positions = new Map<string, { x: number; y: number }>();
}

addUser(userId: string, color: string): void {
Expand All @@ -22,15 +22,17 @@ export class Grid implements CRO {

private _addUser(userId: string, color: string): void {
const userColorString = `${userId}:${color}`;
this.positions.set(userColorString, {x: 0, y: 0});
this.positions.set(userColorString, { x: 0, y: 0 });
}

moveUser(userId: string, direction: string): void {
this._moveUser(userId, direction);
}

private _moveUser(userId: string, direction: string): void {
const userColorString = [...this.positions.keys()].find(u => u.startsWith(`${userId}:`));
const userColorString = [...this.positions.keys()].find((u) =>
u.startsWith(`${userId}:`),
);
if (userColorString) {
const position = this.positions.get(userColorString);
if (position) {
Expand All @@ -56,7 +58,9 @@ export class Grid implements CRO {
return [...this.positions.keys()];
}

getUserPosition(userColorString: string): { x: number, y: number } | undefined {
getUserPosition(
userColorString: string,
): { x: number; y: number } | undefined {
const position = this.positions.get(userColorString);
if (position) {
return position;
Expand All @@ -70,7 +74,7 @@ export class Grid implements CRO {

mergeCallback(operations: Operation[]): void {
// reset this.positions
this.positions = new Map<string, { x: number, y: number }>();
this.positions = new Map<string, { x: number; y: number }>();

// apply operations to this.positions
for (const op of operations) {
Expand Down
27 changes: 20 additions & 7 deletions examples/grid/src/util/color.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@

export const rgbToHsl = (rInt: number, gInt: number, bInt: number): [number, number, number] => {
export const rgbToHsl = (
rInt: number,
gInt: number,
bInt: number,
): [number, number, number] => {
const r = rInt / 255;
const g = gInt / 255;
const b = bInt / 255;
Expand All @@ -15,16 +18,26 @@ export const rgbToHsl = (rInt: number, gInt: number, bInt: number): [number, num
const chromaticity = max - min;
s = l > 0.5 ? chromaticity / (2 - max - min) : chromaticity / (max + min);
switch (max) {
case r: h = (g - b) / chromaticity + (g < b ? 6 : 0); break;
case g: h = (b - r) / chromaticity + 2; break;
case b: h = (r - g) / chromaticity + 4; break;
case r:
h = (g - b) / chromaticity + (g < b ? 6 : 0);
break;
case g:
h = (b - r) / chromaticity + 2;
break;
case b:
h = (r - g) / chromaticity + 4;
break;
}
h /= 6;
}
return [h * 360, s, l];
};

export const hslToRgb = (h: number, s: number, l: number): [number, number, number] => {
export const hslToRgb = (
h: number,
s: number,
l: number,
): [number, number, number] => {
let r: number;
let g: number;
let b: number;
Expand Down Expand Up @@ -54,4 +67,4 @@ export const hslToRgb = (h: number, s: number, l: number): [number, number, numb

export const rgbToHex = (r: number, g: number, b: number): string => {
return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;
};
};
4 changes: 1 addition & 3 deletions examples/grid/vite.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ export default defineConfig({
build: {
target: "esnext",
},
plugins: [
nodePolyfills(),
],
plugins: [nodePolyfills()],
optimizeDeps: {
esbuildOptions: {
target: "esnext",
Expand Down

0 comments on commit bd2d715

Please sign in to comment.