Skip to content

Commit 6ce6749

Browse files
feat: add biome, fix format and lint (#19)
1 parent fd24b06 commit 6ce6749

File tree

10 files changed

+1219
-1276
lines changed

10 files changed

+1219
-1276
lines changed

.vscode/settings.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"editor.defaultFormatter": "biomejs.biome",
3+
"editor.formatOnSave": true,
4+
"[javascript]": {
5+
"editor.defaultFormatter": "biomejs.biome"
6+
},
7+
"[typescript]": {
8+
"editor.defaultFormatter": "biomejs.biome"
9+
},
10+
"[react]": {
11+
"editor.defaultFormatter": "biomejs.biome"
12+
}
13+
}

biome.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3+
"vcs": {
4+
"enabled": false,
5+
"clientKind": "git",
6+
"useIgnoreFile": false
7+
},
8+
"files": {
9+
"ignoreUnknown": false,
10+
"ignore": [
11+
"web/scripts/alpine-3.10.4.js"
12+
]
13+
},
14+
"formatter": {
15+
"enabled": true,
16+
"indentStyle": "space",
17+
"lineWidth": 120,
18+
"indentWidth": 4
19+
},
20+
"linter": {
21+
"enabled": true,
22+
"rules": {
23+
"recommended": true,
24+
"complexity": {
25+
"useLiteralKeys": "info"
26+
}
27+
}
28+
},
29+
"javascript": {
30+
"formatter": {
31+
"quoteStyle": "double"
32+
}
33+
}
34+
}

web/scripts/dragdrop.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
21
export class DropTarget {
3-
constructor (elm, callback) {
2+
constructor(elm, callback) {
43
this.elm = elm;
54
this.callback = callback;
65

@@ -9,7 +8,7 @@ export class DropTarget {
98
(e) => {
109
e.preventDefault();
1110
},
12-
false
11+
false,
1312
);
1413

1514
elm.addEventListener(
@@ -18,7 +17,7 @@ export class DropTarget {
1817
e.preventDefault();
1918
e.dataTransfer.dropEffect = "move";
2019
},
21-
false
20+
false,
2221
);
2322

2423
elm.addEventListener(
@@ -32,7 +31,7 @@ export class DropTarget {
3231
callback(files);
3332
}
3433
},
35-
false
34+
false,
3635
);
3736
}
3837
}

web/scripts/libgingerbread.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ export class LibGingerbread {
99
}
1010

1111
static async new() {
12-
if (this.wasm_module == null) {
13-
this.wasm_module = await ZigWASM.compile(this.wasm_src);
12+
if (LibGingerbread.wasm_module == null) {
13+
LibGingerbread.wasm_module = await ZigWASM.compile(LibGingerbread.wasm_src);
1414
}
1515

16-
return new this(await ZigWASM.new(this.wasm_module));
16+
return new LibGingerbread(await ZigWASM.new(LibGingerbread.wasm_module));
1717
}
1818

1919
conversion_start() {
@@ -50,5 +50,4 @@ export class LibGingerbread {
5050
conversion_add_drill(x, y, d, scale_factor) {
5151
this.zig.exports.conversion_add_drill(x, y, d, scale_factor);
5252
}
53-
5453
}

web/scripts/main.js

Lines changed: 17 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,7 @@ class Design {
212212
if (this.preview_layout === "both") {
213213
cvs.draw_image_two_up(await layer.get_preview_bitmap(), side);
214214
} else if (this.preview_layout.endsWith("-spread")) {
215-
cvs.draw_image_n_up(
216-
await layer.get_preview_bitmap(),
217-
i,
218-
layers.length
219-
);
215+
cvs.draw_image_n_up(await layer.get_preview_bitmap(), i, layers.length);
220216
} else {
221217
cvs.draw_image(await layer.get_preview_bitmap());
222218
}
@@ -231,26 +227,12 @@ class Design {
231227

232228
cvs.clear();
233229

234-
if (
235-
this.preview_layout === "front" ||
236-
this.preview_layout === "front-spread" ||
237-
this.preview_layout === "both"
238-
) {
239-
await this.draw_layers(
240-
["EdgeCuts", "FCu", "FMask", "FSilkS", "Drill"],
241-
"left"
242-
);
230+
if (this.preview_layout === "front" || this.preview_layout === "front-spread" || this.preview_layout === "both") {
231+
await this.draw_layers(["EdgeCuts", "FCu", "FMask", "FSilkS", "Drill"], "left");
243232
}
244233

245-
if (
246-
this.preview_layout === "back" ||
247-
this.preview_layout === "back-spread" ||
248-
this.preview_layout === "both"
249-
) {
250-
await this.draw_layers(
251-
["EdgeCuts", "BCu", "BMask", "BSilkS", "Drill"],
252-
"right"
253-
);
234+
if (this.preview_layout === "back" || this.preview_layout === "back-spread" || this.preview_layout === "both") {
235+
await this.draw_layers(["EdgeCuts", "BCu", "BMask", "BSilkS", "Drill"], "right");
254236
}
255237
}
256238

@@ -268,36 +250,24 @@ class Design {
268250

269251
for (const layer of this.layers) {
270252
switch (layer.type) {
271-
case "raster":
253+
case "raster": {
272254
const bm = await layer.get_raster_bitmap();
273255
const imgdata = await yak.ImageData_from_ImageBitmap(bm);
274-
gingerbread.conversion_add_raster_layer(
275-
layer.number,
276-
this.trace_scale_factor,
277-
imgdata
278-
);
256+
gingerbread.conversion_add_raster_layer(layer.number, this.trace_scale_factor, imgdata);
279257
break;
258+
}
280259
case "vector":
281260
for (const path of layer.get_paths()) {
282261
gingerbread.conversion_start_poly();
283262
for (const pt of path) {
284-
gingerbread.conversion_add_poly_point(
285-
pt[0],
286-
pt[1],
287-
this.dpmm
288-
);
263+
gingerbread.conversion_add_poly_point(pt[0], pt[1], this.dpmm);
289264
}
290265
gingerbread.conversion_end_poly(layer.number, 1, false);
291266
}
292267
break;
293268
case "drill":
294269
for (const circle of layer.get_circles()) {
295-
gingerbread.conversion_add_drill(
296-
circle.cx.baseVal.value,
297-
circle.cy.baseVal.value,
298-
circle.r.baseVal.value * 2,
299-
this.dpmm
300-
);
270+
gingerbread.conversion_add_drill(circle.cx.baseVal.value, circle.cy.baseVal.value, circle.r.baseVal.value * 2, this.dpmm);
301271
}
302272
break;
303273
default:
@@ -307,10 +277,10 @@ class Design {
307277

308278
const footprint = gingerbread.conversion_finish();
309279

310-
if (method == "clipboard") {
280+
if (method === "clipboard") {
311281
navigator.clipboard.writeText(footprint);
312282
} else {
313-
let file = new File([footprint], "design.kicad_pcb");
283+
const file = new File([footprint], "design.kicad_pcb");
314284
yak.initiateDownload(file);
315285
}
316286
}
@@ -352,26 +322,16 @@ class Layer {
352322

353323
async get_preview_bitmap() {
354324
if (!this.bitmap) {
355-
this.bitmap = await yak.createImageBitmap(
356-
this.svg,
357-
this.design.constructor.preview_width
358-
);
325+
this.bitmap = await yak.createImageBitmap(this.svg, this.design.constructor.preview_width);
359326
if (this.is_mask) {
360-
this.bitmap = await yak.ImageBitmap_inverse_mask(
361-
this.bitmap,
362-
await this.design.edge_cuts.get_preview_bitmap(),
363-
this.color
364-
);
327+
this.bitmap = await yak.ImageBitmap_inverse_mask(this.bitmap, await this.design.edge_cuts.get_preview_bitmap(), this.color);
365328
}
366329
}
367330
return this.bitmap;
368331
}
369332

370333
async get_raster_bitmap() {
371-
return await yak.createImageBitmap(
372-
this.svg,
373-
this.design.raster_width
374-
);
334+
return await yak.createImageBitmap(this.svg, this.design.raster_width);
375335
}
376336

377337
*get_paths() {
@@ -391,10 +351,7 @@ async function load_design_file(file) {
391351
cvs = new PreviewCanvas(document.getElementById("preview-canvas"));
392352
}
393353

394-
const svg_doc = new DOMParser().parseFromString(
395-
await file.text(),
396-
"image/svg+xml"
397-
);
354+
const svg_doc = new DOMParser().parseFromString(await file.text(), "image/svg+xml");
398355

399356
design = new Design(cvs, svg_doc);
400357

@@ -433,7 +390,7 @@ document.addEventListener("alpine:init", () => {
433390
async export_design(method) {
434391
this.exporting = true;
435392
await this.design.export(method);
436-
this.exporting = 'done';
393+
this.exporting = "done";
437394
window.setTimeout(() => {
438395
this.exporting = false;
439396
}, 3000);

0 commit comments

Comments
 (0)