aboutsummaryrefslogtreecommitdiff
path: root/vnext/server/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnext/server/app.js')
-rw-r--r--vnext/server/app.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/vnext/server/app.js b/vnext/server/app.js
new file mode 100644
index 00000000..4249b922
--- /dev/null
+++ b/vnext/server/app.js
@@ -0,0 +1,66 @@
+import express from 'express'
+import { raw } from 'body-parser'
+import cookieParser from 'cookie-parser'
+import cors from 'cors'
+import config from 'config'
+
+//import serverRenderer from './middleware/renderer'
+import event from './middleware/event'
+import oembed from './middleware/oembed'
+import urlExpand from './middleware/urlexpand'
+import releases from './middleware/android'
+import { instance } from './middleware/mastodon'
+
+import path from 'path'
+import { webhook, webhookPath } from './durov'
+import { webfinger } from './middleware/webfinger'
+import { jsonMeta, nodeinfo, xmlMeta } from './middleware/host-meta'
+import { rememberMeParser } from './middleware/rememberme'
+
+// initialize the application and create the routes
+export const app = express()
+app.use(raw())
+app.use(cors())
+app.use(cookieParser())
+app.use(rememberMeParser)
+const router = express.Router()
+
+router.post('/api/v2/sender', event)
+router.get('/api/v2/oembed', oembed)
+router.get('/api/v2/urlexpand', urlExpand)
+router.get('/api/apps/android/releases', releases)
+
+// Web Host Metadata
+
+router.get('/.well-known/host-meta', xmlMeta)
+router.get('/.well-known/host-meta.json', jsonMeta)
+
+// WebFinger
+
+router.get('/.well-known/webfinger', webfinger)
+
+// Nodeinfo
+
+router.get('/.well-known/nodeinfo', nodeinfo)
+
+// Mastodon API
+
+router.get('/api/v2/instance', instance)
+
+const durov_webhook = webhookPath()
+if (durov_webhook) {
+ router.post(`/api/v2/${durov_webhook}`, webhook)
+}
+//router.use('^/$', serverRenderer)
+
+const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public')
+
+// other static resources should just be served as they are
+router.use(express.static(
+ STATIC_ROOT,
+ { maxAge: '30d' },
+))
+
+//router.use('*', serverRenderer)
+
+app.use(router)