top.ts 1009 B

1234567891011121314151617181920212223242526272829303132
  1. import { requiredScopes } from '@growi/slack';
  2. import { Controller, Get, Inject, View } from '@tsed/common';
  3. import readPkgUp from 'read-pkg-up';
  4. /* eslint-disable @typescript-eslint/consistent-type-imports */
  5. import { InstallerService } from '~/services/InstallerService';
  6. /* eslint-enable @typescript-eslint/consistent-type-imports */
  7. const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
  8. @Controller('/')
  9. export class TopCtrl {
  10. @Inject()
  11. installerService: InstallerService;
  12. @Get('/')
  13. @View('top.ejs')
  14. // biome-ignore lint/suspicious/noExplicitAny: ignore
  15. async getTopPage(): Promise<any> {
  16. const url = await this.installerService.installer.generateInstallUrl({
  17. // Add the scopes your app needs
  18. scopes: requiredScopes,
  19. });
  20. // use await import in order to avoid typescript-eslint error
  21. const readPkgUpResult = await readPkgUp();
  22. const growiBotVersion = readPkgUpResult?.packageJson.version;
  23. return { url, isOfficialMode, growiBotVersion };
  24. }
  25. }