import * as admin from "firebase-admin"; import { Firestore } from "firebase-admin/firestore"; import { Auth } from "firebase-admin/auth"; import * as akashicModule from "./modules/akashic"; import * as config from "./config"; import { AppConfig } from "./config"; import * as fw from "./fw"; export class App extends fw.App { readonly firestore: Firestore; readonly akashicClient: akashicModule.AkashicWrapper; readonly auth: Auth; readonly userConfig: config.UserConfig; readonly akashicConfig: config.AkashicConfig; readonly scrapConfig: config.ScrapConfig; readonly playConfig: config.PlayConfig; readonly scrapMemberConfig: config.ScrapMemberConfig; constructor(config: AppConfig) { super(config); this.firestore = admin.firestore(); this.akashicClient = akashicModule.createWrapper({ mode: config.akashic.mode, baseUrl: config.akashic.baseUrl, apiKey: config.akashic.apiKey, refreshToken: config.akashic.refreshToken, refreshTokenUrl: config.akashic.refreshTokenUrl, firestore: this.firestore, }); this.auth = admin.auth(); this.userConfig = config.user; this.akashicConfig = config.akashic; this.scrapConfig = config.scrap; this.playConfig = config.play; this.scrapMemberConfig = config.scrapMember; } enableCredentials() { this.app.use((req, res, next) => { res.header("Access-Control-Allow-Credentials", "true"); next(); }); } }