diff --git a/server/plugins/changelog.ts b/server/plugins/changelog.ts index 731027ac..f095e201 100644 --- a/server/plugins/changelog.ts +++ b/server/plugins/changelog.ts @@ -4,6 +4,7 @@ import log from "../log"; import pkg from "../../package.json"; import ClientManager from "../clientManager"; import Config from "../config"; +import {SharedChangelogData} from "../../shared/types/changelog"; const TIME_TO_LIVE = 15 * 60 * 1000; // 15 minutes, in milliseconds @@ -12,23 +13,7 @@ export default { fetch, checkForUpdates, }; -export type ChangelogData = { - current: { - prerelease: boolean; - version: string; - changelog?: string; - url: string; - }; - expiresAt: number; - latest?: { - prerelease: boolean; - version: string; - url: string; - }; - packages?: boolean; -}; - -const versions: ChangelogData = { +const versions: SharedChangelogData = { current: { prerelease: false, version: `v${pkg.version}`, @@ -36,6 +21,8 @@ const versions: ChangelogData = { url: "", // TODO: properly init }, expiresAt: -1, + latest: undefined, + packages: undefined, }; async function fetch() { diff --git a/shared/types/changelog.ts b/shared/types/changelog.ts new file mode 100644 index 00000000..43e6d66a --- /dev/null +++ b/shared/types/changelog.ts @@ -0,0 +1,15 @@ +export type SharedChangelogData = { + current: { + prerelease: boolean; + version: string; + changelog?: string; + url: string; + }; + expiresAt: number; + latest?: { + prerelease: boolean; + version: string; + url: string; + }; + packages?: boolean; +}; diff --git a/shared/types/socket-events.d.ts b/shared/types/socket-events.d.ts index 7d5a5c98..55df9be1 100644 --- a/shared/types/socket-events.d.ts +++ b/shared/types/socket-events.d.ts @@ -3,7 +3,7 @@ import {SharedMention} from "../../shared/types/mention"; import {ChanState} from "../../shared/types/chan"; import {SharedMsg, ClientMessage} from "../../shared/types/msg"; import {SharedUser} from "../../shared/types/user"; -import {ChangelogData} from "../plugins/changelog"; +import {SharedChangelogData} from "../../shared/types/changelog"; import {LinkPreview} from "../plugins/irc-events/link"; import {ClientConfiguration} from "../server"; @@ -23,7 +23,7 @@ interface ServerToClientEvents { "upload:auth": (token: string) => void; - changelog: (data: ChangelogData) => void; + changelog: (data: SharedChangelogData) => void; "changelog:newversion": () => void; "channel:state": (data: {chan: number; state: ChanState}) => void;