26 lines
1 KiB
JavaScript
26 lines
1 KiB
JavaScript
import config from '../base/config.mjs'
|
|
import Parent from '../base/server.mjs'
|
|
import StaticRoutes from '../base/static_routes.mjs'
|
|
import ServeHandler from './serve.mjs'
|
|
import AuthenticationRoutes from '../base/authentication/routes.mjs'
|
|
import ArticleRoutes from './article/routes.mjs'
|
|
|
|
export default class Server extends Parent {
|
|
init() {
|
|
super.init()
|
|
let localUtil = new this.core.sc.Util(import.meta.url)
|
|
|
|
this.flaskaOptions.appendHeaders['Content-Security-Policy'] = `default-src 'self'; style-src 'self' 'unsafe-inline'; img-src * data: blob:; font-src 'self' data:; object-src 'none'; frame-ancestors 'none'; connect-src 'self' https://media.nfp.is/; media-src 'self' https://cdn.nfp.is/`,
|
|
this.flaskaOptions.nonce = []
|
|
this.routes = {
|
|
static: new StaticRoutes(),
|
|
auth: new AuthenticationRoutes(),
|
|
article: new ArticleRoutes(),
|
|
}
|
|
this.routes.serve = new ServeHandler({
|
|
root: localUtil.getPathFromRoot('../public'),
|
|
version: this.core.app.running,
|
|
frontend: config.get('frontend:url'),
|
|
})
|
|
}
|
|
}
|