From 3b469334d2b71eed19d958d8564b448ba39473ad Mon Sep 17 00:00:00 2001 From: Der_Googler <54764558+DerGoogler@users.noreply.github.com> Date: Wed, 3 Jul 2024 21:32:02 +0200 Subject: [PATCH] make modfs core external --- Website/package-lock.json | 6 +++++ Website/package.json | 41 +++++++++++++++++++++++++++------- Website/src/hooks/useModFS.tsx | 10 ++++++--- Website/src/util/licenses.json | 8 +++++++ 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/Website/package-lock.json b/Website/package-lock.json index 5fca1b02..4e2f099c 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -34,6 +34,7 @@ "markdown-to-jsx": "^7.4.0", "material-icons": "^1.10.8", "material-ui-confirm": "^3.0.11", + "modfs": "^1.0.0", "monaco-editor": "^0.48.0", "monaco-editor-core": "^0.46.0", "monaco-languageclient": "^6.5.0", @@ -7214,6 +7215,11 @@ "node": ">=4" } }, + "node_modules/modfs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modfs/-/modfs-1.0.0.tgz", + "integrity": "sha512-7OsJIT6HzCSslxbQYZ6Bf6AWrZUt4lKLZwRt9FVt8sxk3B5ihLy9uyTIohxY1swVGnFgjnyz/zeGiV227MZMxw==" + }, "node_modules/monaco-editor": { "version": "0.48.0", "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.48.0.tgz", diff --git a/Website/package.json b/Website/package.json index 3594fced..e1ce0d19 100644 --- a/Website/package.json +++ b/Website/package.json @@ -8,14 +8,38 @@ "version_name": "2.19.18", "version_code": 21918, "verified_hosts": [ - ["mmrl", "i"], - ["localhost", "i"], - ["mmrl.dergoogler.com", "i"], - ["dergoogler.com", "i"], - ["dergoogler.github.io", "i"], - ["gr.dergoogler.com", "i"], - ["googlers-repo.github.io", "i"], - ["(localhost|\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)(?::\\d{0,4})?\\b)", "g"] + [ + "mmrl", + "i" + ], + [ + "localhost", + "i" + ], + [ + "mmrl.dergoogler.com", + "i" + ], + [ + "dergoogler.com", + "i" + ], + [ + "dergoogler.github.io", + "i" + ], + [ + "gr.dergoogler.com", + "i" + ], + [ + "googlers-repo.github.io", + "i" + ], + [ + "(localhost|\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)(?::\\d{0,4})?\\b)", + "g" + ] ] }, "main": "index.tsx", @@ -68,6 +92,7 @@ "markdown-to-jsx": "^7.4.0", "material-icons": "^1.10.8", "material-ui-confirm": "^3.0.11", + "modfs": "^1.0.0", "monaco-editor": "^0.48.0", "monaco-editor-core": "^0.46.0", "monaco-languageclient": "^6.5.0", diff --git a/Website/src/hooks/useModFS.tsx b/Website/src/hooks/useModFS.tsx index 9f300321..6c69adc9 100644 --- a/Website/src/hooks/useModFS.tsx +++ b/Website/src/hooks/useModFS.tsx @@ -5,6 +5,8 @@ import { SetStateAction } from "./useStateCallback"; import { formatObjectEntries, formatString } from "@Util/stringFormat"; import { useNativeFileStorage } from "./useNativeFileStorage"; +import { default as PModFS } from "modfs"; + export interface ModFS { //cli MSUCLI: string; @@ -128,12 +130,14 @@ export const useModFS = () => { export const ModFSProvider = (props: React.PropsWithChildren) => { const [modFS, setModFS] = useNativeFileStorage("/data/adb/mmrl/modfs.json", INITIAL_MOD_CONF, { loader: "json" }); + const pmodFS = React.useMemo(() => new PModFS(defaultComposer(INITIAL_MOD_CONF, modFS)), [modFS]); + const contextValue = React.useMemo( () => ({ _modFS: defaultComposer(INITIAL_MOD_CONF, modFS), - __modFS: formatObjectEntries(defaultComposer(INITIAL_MOD_CONF, modFS)), - modFS: (key, adds) => { - return formatString(defaultComposer(INITIAL_MOD_CONF, modFS)[key], { ...modFS, ...adds }); + __modFS: pmodFS.formatEntries(), + modFS(key: K, adds: ModFS | object): ModFS[K] { + return PModFS.format(pmodFS.getEntrie(key)!, { ...modFS, ...adds }); }, setModFS: (name, state) => { setModFS((prev) => { diff --git a/Website/src/util/licenses.json b/Website/src/util/licenses.json index f89f4620..283ca87a 100644 --- a/Website/src/util/licenses.json +++ b/Website/src/util/licenses.json @@ -212,6 +212,14 @@ "version": "3.0.11", "source": "https://www.npmjs.com/package/material-ui-confirm" }, + { + "name": "modfs", + "author": null, + "license": "MIT", + "description": "ModFS is a json format processor and also used in MMRL as the ModFS system", + "version": "1.0.0", + "source": "https://www.npmjs.com/package/modfs" + }, { "name": "monaco-editor", "author": null,