This commit is contained in:
Asaki Yuki 2026-01-05 10:58:28 +07:00
parent d9cf50eec1
commit bb9b300d6f
9 changed files with 83 additions and 31 deletions

View file

@ -1,9 +1,11 @@
import { UI } from "../components/UI.js"
import { Renderer } from "../types/enums/Renderer.js"
import { Type } from "../types/enums/Type.js"
export const Memory = {
cache: new Map<string, { namespace: string; elements: Map<string, UI<any>> }>(),
cache: new Map<string, { namespace: string; elements: Map<string, UI<Type, Renderer | null>> }>(),
register_ui(path: string, element: UI<any, any>) {
register_ui(path: string, element: UI<Type, Renderer | null>) {
const { elements: saver, namespace } = this.get_file(path, element.namespace!)
if (saver.get(element.name!)) {
@ -15,11 +17,22 @@ export const Memory = {
return namespace
},
gen_ui_file_content(namespace: string, elements: Map<string, UI<Type, Renderer | null>>) {
return JSON.stringify(
{
namespace,
...elements.toJSON(),
},
null,
4
)
},
get_file(path: string, namespace: string) {
let cached = this.cache.get(path)
if (!cached) {
cached = { namespace, elements: new Map<string, UI<any>>() }
cached = { namespace, elements: new Map<string, UI<Type, Renderer | null>>() }
this.cache.set(path, cached)
}