Skip to content

Commit

Permalink
Move useful helper functions to extended api, remove zod
Browse files Browse the repository at this point in the history
  • Loading branch information
lucsoft committed Oct 27, 2024
1 parent e86c5f8 commit 955cfb6
Show file tree
Hide file tree
Showing 28 changed files with 49 additions and 1,667 deletions.
14 changes: 14 additions & 0 deletions extended/filePicker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export async function createFilePicker(accept: string): Promise<File> {
const fileSignal = Promise.withResolvers<File>();
const input = document.createElement("input");
input.type = "file";
input.hidden = true;
input.accept = accept;

input.addEventListener("change", () => {
fileSignal.resolve(Array.from(input.files ?? [])[ 0 ]!);
});

input.showPicker();
return await fileSignal.promise;
}
28 changes: 28 additions & 0 deletions extended/fromFormEntries.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/**
* fromEntries can't handle duplicates
*
* this method turns
*
* ["key", "value"]
* ["list", "one"]
* ["list", "two"]
*
* to
*
* {
* key: "value"
* list: ["one", "two"]
* }
*/
export function fromFormEntries(data: [ key: string, value: FormDataEntryValue ][]) {
const entries = Object.entries(Object.groupBy(data, ([ key ]) => key)) as [ key: string, value: [ key: string, value: FormDataEntryValue ][] ][];
const pureEntries = entries.map(([ key, value ]) => {
const values = value.map(([ _, data ]) => data);
if (values.length == 1)
return [ key, values[ 0 ] ];
return [ key, values ];
});
return {
...Object.fromEntries(pureEntries)
};
}
2 changes: 2 additions & 0 deletions extended/mod.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export * from "./filePicker.ts";
export * from "./fromFormEntries.ts";
export * from "./iterableWeakMap.ts";
export * from "./keyValueStore.ts";
export * from "./network.ts";
Expand Down
6 changes: 5 additions & 1 deletion mod.ts
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
export * from './src/webgen.ts'
export * from "./core/mod.ts";

export * from "./components/mod.ts";
export * from "./extended/mod.ts";
export * from "./navigation/mod.ts";
3 changes: 0 additions & 3 deletions src/Accessibility.ts

This file was deleted.

6 changes: 0 additions & 6 deletions src/Color.ts

This file was deleted.

178 changes: 0 additions & 178 deletions src/Component.ts

This file was deleted.

29 changes: 0 additions & 29 deletions src/Components.ts

This file was deleted.

51 changes: 0 additions & 51 deletions src/Helper.ts

This file was deleted.

Loading

0 comments on commit 955cfb6

Please sign in to comment.