+ },
+
+ getServerConfig () {
+ return getServerConfig()
+ }
+ }
+}
+
+function buildPluginRelatedHelpers (plugin: MPlugin, npmName: string) {
+ return {
+ getBaseStaticRoute: () => `/plugins/${plugin.name}/${plugin.version}/static/`,
+
+ getBaseRouterRoute: () => `/plugins/${plugin.name}/${plugin.version}/router/`,
+
+ getDataDirectoryPath: () => join(CONFIG.STORAGE.PLUGINS_DIR, 'data', npmName)
+ }
+}
+
+function buildUserHelpers () {
+ return {
+ getAuthUser: (res: express.Response) => {
+ const user = res.locals.oauth?.token?.User
+ if (!user) return undefined
+
+ return UserModel.loadByIdFull(user.id)