summaryrefslogtreecommitdiff
path: root/packages/frontend-embed/src/server-context.ts
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-09-23 19:49:52 +0900
committerGitHub <noreply@github.com>2024-09-23 19:49:52 +0900
commit3f0aaaa41efe42776d70490ea213e3c8b194c152 (patch)
treeaaa2e340be67f32e933851cd6461aa944c06c3db /packages/frontend-embed/src/server-context.ts
parentenhance(frontend): tweak control panel (diff)
downloadsharkey-3f0aaaa41efe42776d70490ea213e3c8b194c152.tar.gz
sharkey-3f0aaaa41efe42776d70490ea213e3c8b194c152.tar.bz2
sharkey-3f0aaaa41efe42776d70490ea213e3c8b194c152.zip
perf(embed): improve embed performance (#14613)
* wip * wip * wip * refactor * refactor --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'packages/frontend-embed/src/server-context.ts')
-rw-r--r--packages/frontend-embed/src/server-context.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/frontend-embed/src/server-context.ts b/packages/frontend-embed/src/server-context.ts
new file mode 100644
index 0000000000..a84a1a726a
--- /dev/null
+++ b/packages/frontend-embed/src/server-context.ts
@@ -0,0 +1,21 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+import * as Misskey from 'misskey-js';
+
+const providedContextEl = document.getElementById('misskey_embedCtx');
+
+export type ServerContext = {
+ clip?: Misskey.entities.Clip;
+ note?: Misskey.entities.Note;
+ user?: Misskey.entities.UserLite;
+} | null;
+
+// NOTE: devモードのときしか embedCtx が null になることは無い
+export const serverContext: ServerContext = (providedContextEl && providedContextEl.textContent) ? JSON.parse(providedContextEl.textContent) : null;
+
+export function assertServerContext<K extends keyof NonNullable<ServerContext>>(ctx: ServerContext, entity: K): ctx is Required<Pick<NonNullable<ServerContext>, K>> {
+ if (ctx == null) return false;
+ return entity in ctx;
+}