diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2024-09-23 19:49:52 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-23 19:49:52 +0900 |
| commit | 3f0aaaa41efe42776d70490ea213e3c8b194c152 (patch) | |
| tree | aaa2e340be67f32e933851cd6461aa944c06c3db /packages/frontend-embed/src/server-context.ts | |
| parent | enhance(frontend): tweak control panel (diff) | |
| download | sharkey-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.ts | 21 |
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; +} |