summaryrefslogtreecommitdiff
path: root/packages/frontend-embed/src/server-context.ts
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-10-18 21:14:49 +0000
committerdakkar <dakkar@thenautilus.net>2024-10-18 21:14:49 +0000
commitba17776b1961376b5369aa775e8910a227cc02ec (patch)
tree0d0579dd911a6c9b74ebc84195cacf10eafe0918 /packages/frontend-embed/src/server-context.ts
parentmerge: Allow logged in users to refresh polls (!686) (diff)
parentMerge branch 'develop' into feature/2024.9.0 (diff)
downloadsharkey-ba17776b1961376b5369aa775e8910a227cc02ec.tar.gz
sharkey-ba17776b1961376b5369aa775e8910a227cc02ec.tar.bz2
sharkey-ba17776b1961376b5369aa775e8910a227cc02ec.zip
merge: version 2024.9.0 (!675)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/675 Approved-by: Julia <julia@insertdomain.name> Approved-by: Marie <github@yuugi.dev>
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;
+}