web-module.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import type { RequestHandler } from 'express'
  2. type LinkedFileAgent = {
  3. createLinkedFile: (
  4. projectId: string,
  5. linkedFileData: object,
  6. name: string,
  7. parentFolderId: string,
  8. userId: string,
  9. callback: () => void
  10. ) => void
  11. refreshLinkedFile: (
  12. projectId: string,
  13. linkedFileData: object,
  14. name: string,
  15. parentFolderId: string,
  16. userId: string,
  17. callback: () => void
  18. ) => void
  19. promises: {
  20. createLinkedFile: (
  21. projectId: string,
  22. linkedFileData: object,
  23. name: string,
  24. parentFolderId: string,
  25. userId: string
  26. ) => Promise<any>
  27. refreshLinkedFile: (
  28. projectId: string,
  29. linkedFileData: object,
  30. name: string,
  31. parentFolderId: string,
  32. userId: string
  33. ) => Promise<any>
  34. }
  35. }
  36. export type WebModule = {
  37. dependencies?: string[]
  38. router?: {
  39. apply?: (
  40. webRouter: any,
  41. privateApiRouter?: any,
  42. publicApiRouter?: any
  43. ) => void
  44. applyNonCsrfRouter?: (
  45. webRouter: any,
  46. privateApiRouter?: any,
  47. publicApiRouter?: any
  48. ) => void
  49. }
  50. nonCsrfRouter?: {
  51. apply: (webRouter: any, privateApiRouter: any, publicApiRouter: any) => void
  52. }
  53. hooks?: {
  54. promises?: {
  55. [name: string]: (...args: any[]) => Promise<any>
  56. }
  57. [name: string]: ((...args: any[]) => void) | any
  58. }
  59. middleware?: {
  60. [name: string]: RequestHandler
  61. }
  62. sessionMiddleware?: (webRouter: any, options: any) => void
  63. start?: () => Promise<void>
  64. appMiddleware?: (app: any) => void
  65. linkedFileAgents?: {
  66. [name: string]: () => LinkedFileAgent
  67. }
  68. viewIncludes?: Record<string, string[]>
  69. }