bde148f286
* wip * some extra fixes * stuff kinda works? * need to figure out mocks * need to figure out mocks * fix db listener * gqlgen fix * minor gqlgen watch adjustment * lint fixes * delete old codegen file * converting migrations to ESM * getModuleDIrectory * vitest sort of works * added back ts-vitest * resolve gql double load * fixing test timeout configs * TSC lint fix * fix automate tests * moar debugging * debugging * more debugging * codegen update * server works * yargs migrated * chore(server): getting rid of global mocks for Server ESM (#5046) * got rid of email mock * got rid of comment mocks * got rid of multi region mocks * got rid of stripe mock * admin override mock updated * removed final mock * fixing import.meta.resolve calls * another import.meta.resolve fix * added requested test * nyc ESM fix * removed unneeded deps + linting * yarn lock forgot to commit * tryna fix flakyness * email capture util fix * sendEmail fix * fix TSX check * sender transporter fix + CR comments * merge main fix * test fixx * circleci fix * gqlgen bigint fix * error formatter fix * more error formatting improvements * esmloader added to Dockerfile * more dockerfile fixes * bg jobs fix
64 lines
2.7 KiB
TypeScript
64 lines
2.7 KiB
TypeScript
import { db } from '@/db/knex'
|
|
import { moduleLogger } from '@/observability/logging'
|
|
import { saveStreamActivityFactory } from '@/modules/activitystream/repositories'
|
|
import { reportSubscriptionEventsFactory } from '@/modules/comments/events/subscriptionListeners'
|
|
import { getCommentsResourcesFactory } from '@/modules/comments/repositories/comments'
|
|
import { notifyUsersOnCommentEventsFactory } from '@/modules/comments/services/notifications'
|
|
import { getCommitsAndTheirBranchIdsFactory } from '@/modules/core/repositories/commits'
|
|
import { getStreamObjectsFactory } from '@/modules/core/repositories/objects'
|
|
import {
|
|
getViewerResourcesForCommentFactory,
|
|
getViewerResourcesForCommentsFactory,
|
|
getViewerResourcesFromLegacyIdentifiersFactory
|
|
} from '@/modules/core/services/commit/viewerResources'
|
|
import { publishNotification } from '@/modules/notifications/services/publication'
|
|
import { Optional, SpeckleModule } from '@/modules/shared/helpers/typeHelper'
|
|
import { getEventBus } from '@/modules/shared/services/eventBus'
|
|
import { publish } from '@/modules/shared/utils/subscriptions'
|
|
|
|
let unsubFromEvents: Optional<() => void> = undefined
|
|
|
|
const commentsModule: SpeckleModule = {
|
|
async init({ isInitial }) {
|
|
moduleLogger.info('🗣 Init comments module')
|
|
|
|
if (isInitial) {
|
|
const notifyUsersOnCommentEvents = notifyUsersOnCommentEventsFactory({
|
|
eventBus: getEventBus(),
|
|
publish: publishNotification,
|
|
saveActivity: saveStreamActivityFactory({ db })
|
|
})
|
|
unsubFromEvents = await notifyUsersOnCommentEvents()
|
|
|
|
const getViewerResourcesFromLegacyIdentifiers =
|
|
getViewerResourcesFromLegacyIdentifiersFactory({
|
|
getViewerResourcesForComments: getViewerResourcesForCommentsFactory({
|
|
getCommentsResources: getCommentsResourcesFactory({ db }),
|
|
getViewerResourcesFromLegacyIdentifiers: (...args) =>
|
|
getViewerResourcesFromLegacyIdentifiers(...args) // recursive dep
|
|
}),
|
|
getCommitsAndTheirBranchIds: getCommitsAndTheirBranchIdsFactory({ db }),
|
|
getStreamObjects: getStreamObjectsFactory({ db })
|
|
})
|
|
const getViewerResourcesForComment = getViewerResourcesForCommentFactory({
|
|
getCommentsResources: getCommentsResourcesFactory({ db }),
|
|
getViewerResourcesFromLegacyIdentifiers: (...args) =>
|
|
getViewerResourcesFromLegacyIdentifiers(...args) // recursive dep
|
|
})
|
|
|
|
reportSubscriptionEventsFactory({
|
|
eventListen: getEventBus().listen,
|
|
publish,
|
|
getViewerResourcesForComment
|
|
})()
|
|
}
|
|
},
|
|
async finalize() {},
|
|
async shutdown() {
|
|
unsubFromEvents?.()
|
|
unsubFromEvents = undefined
|
|
}
|
|
}
|
|
|
|
export default commentsModule
|