From 95dd3b18384bc58fb8e1b03d1b94e4b7dfd98592 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Sun, 18 Sep 2022 00:48:04 +1000 Subject: [PATCH] feat(package): cache --- package/client/index.ts | 7 ++++++- package/server/index.ts | 2 ++ package/shared/resource/cache/index.ts | 22 ++++++++++++++++++++++ package/shared/resource/index.ts | 1 + 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 package/shared/resource/cache/index.ts diff --git a/package/client/index.ts b/package/client/index.ts index 26e5aee..93f2f00 100644 --- a/package/client/index.ts +++ b/package/client/index.ts @@ -1,4 +1,9 @@ import * as lib from './resource'; -export * from './resource'; +import { cache, onCache } from '../shared/resource'; +cache.playerId = PlayerId(); +cache.serverId = GetPlayerServerId(cache.playerId); + +export { cache, onCache }; +export * from './resource'; export default lib; diff --git a/package/server/index.ts b/package/server/index.ts index 26e5aee..b3310fd 100644 --- a/package/server/index.ts +++ b/package/server/index.ts @@ -1,4 +1,6 @@ import * as lib from './resource'; +import { cache, onCache } from '../shared/resource'; export * from './resource'; export default lib; +export { cache, onCache }; diff --git a/package/shared/resource/cache/index.ts b/package/shared/resource/cache/index.ts new file mode 100644 index 0000000..59998df --- /dev/null +++ b/package/shared/resource/cache/index.ts @@ -0,0 +1,22 @@ +export const cache: Record = new Proxy( + { + resource: GetCurrentResourceName(), + }, + { + get(target, key: string) { + let result = key ? target[key] : target; + if (result) return result; + + AddEventHandler(`ox_lib:cache:${key}`, (value: any) => { + target[key] = value; + }); + + target[key] = exports.ox_lib.cache(key); + return target[key]; + }, + } +); + +export const onCache = (key: string, cb: (value: any) => void) => { + AddEventHandler(`ox_lib:cache:${key}`, cb); +}; diff --git a/package/shared/resource/index.ts b/package/shared/resource/index.ts index 70fe043..c654b73 100644 --- a/package/shared/resource/index.ts +++ b/package/shared/resource/index.ts @@ -1 +1,2 @@ export * from './version'; +export * from './cache';