diff --git a/server/emails/mailer.tsx b/server/emails/mailer.tsx index c69e22bd3..c6f584aa3 100644 --- a/server/emails/mailer.tsx +++ b/server/emails/mailer.tsx @@ -142,6 +142,4 @@ export class Mailer { } } -const mailer = new Mailer(); - -export default mailer; +export default new Mailer(); diff --git a/server/logging/tracing.ts b/server/logging/tracing.ts index bbfe62168..cca2af511 100644 --- a/server/logging/tracing.ts +++ b/server/logging/tracing.ts @@ -23,7 +23,8 @@ import { SpanOptions } from "dd-trace"; import DDTags from "dd-trace/ext/tags"; import env from "@server/env"; -import tracer, { setError } from "./tracer"; +import tracer from "./tracer"; +import * as Tracing from "./tracer"; type DDTag = typeof DDTags[keyof typeof DDTags]; @@ -64,20 +65,15 @@ export const traceFunction = (config: TraceConfig) => < env.ENVIRONMENT === "test" ? target : (function wrapperFn(this: any, ...args: P): R { - const { - className, - methodName = target.name, - spanName = "DEFAULT_SPAN_NAME", - makeSearchable: useAnalytics, - tags, - } = config; + const { className, methodName = target.name, tags } = config; const childOf = config.isRoot ? undefined : tracer.scope().active() || undefined; + + const spanName = config.spanName || className || "DEFAULT_SPAN_NAME"; + const resourceName = config.resourceName ? config.resourceName - : className - ? `${className}.${methodName}` : methodName; const spanOptions: SpanOptions = { childOf, @@ -100,7 +96,7 @@ export const traceFunction = (config: TraceConfig) => < ); } - if (useAnalytics) { + if (config.makeSearchable) { span.setTag(DDTags.ANALYTICS, true); } @@ -111,7 +107,7 @@ export const traceFunction = (config: TraceConfig) => < if (output && typeof output.then === "function") { output .catch((error: Error) => { - setError(error, span); + Tracing.setError(error, span); }) .finally(() => { span.finish(); diff --git a/server/presenters/apiKey.ts b/server/presenters/apiKey.ts index 67d3cf246..190b54319 100644 --- a/server/presenters/apiKey.ts +++ b/server/presenters/apiKey.ts @@ -1,6 +1,6 @@ import ApiKey from "@server/models/ApiKey"; -export default function present(key: ApiKey) { +export default function presentApiKey(key: ApiKey) { return { id: key.id, name: key.name, diff --git a/server/presenters/attachment.ts b/server/presenters/attachment.ts index ebb568c91..6c46c0fbe 100644 --- a/server/presenters/attachment.ts +++ b/server/presenters/attachment.ts @@ -1,6 +1,6 @@ import { Attachment } from "@server/models"; -export default function present(attachment: Attachment) { +export default function presentAttachment(attachment: Attachment) { return { documentId: attachment.documentId, contentType: attachment.contentType, diff --git a/server/presenters/authenticationProvider.ts b/server/presenters/authenticationProvider.ts index 4bf136247..5070d60fb 100644 --- a/server/presenters/authenticationProvider.ts +++ b/server/presenters/authenticationProvider.ts @@ -1,6 +1,6 @@ import { AuthenticationProvider } from "@server/models"; -export default function present( +export default function presentAuthenticationProvider( authenticationProvider: AuthenticationProvider ) { return { diff --git a/server/presenters/availableTeam.ts b/server/presenters/availableTeam.ts index 1b0f1274d..086d14786 100644 --- a/server/presenters/availableTeam.ts +++ b/server/presenters/availableTeam.ts @@ -1,6 +1,6 @@ import { Team } from "@server/models"; -export default function present(team: Team, isSignedIn = false) { +export default function presentAvailableTeam(team: Team, isSignedIn = false) { return { id: team.id, name: team.name, diff --git a/server/presenters/collection.ts b/server/presenters/collection.ts index f90d861a9..7ff81465e 100644 --- a/server/presenters/collection.ts +++ b/server/presenters/collection.ts @@ -1,6 +1,6 @@ import Collection from "@server/models/Collection"; -export default function present(collection: Collection) { +export default function presentCollection(collection: Collection) { return { id: collection.id, url: collection.url, diff --git a/server/presenters/collectionGroupMembership.ts b/server/presenters/collectionGroupMembership.ts index 3e9938b99..f13353e13 100644 --- a/server/presenters/collectionGroupMembership.ts +++ b/server/presenters/collectionGroupMembership.ts @@ -8,11 +8,13 @@ type Membership = { permission: CollectionPermission; }; -export default (membership: CollectionGroup): Membership => { +export default function presentCollectionGroupMembership( + membership: CollectionGroup +): Membership { return { id: `${membership.groupId}-${membership.collectionId}`, groupId: membership.groupId, collectionId: membership.collectionId, permission: membership.permission, }; -}; +} diff --git a/server/presenters/document.ts b/server/presenters/document.ts index 2ba77ebb4..df2652f7d 100644 --- a/server/presenters/document.ts +++ b/server/presenters/document.ts @@ -7,7 +7,7 @@ type Options = { isPublic?: boolean; }; -async function present( +async function presentDocument( document: Document, options: Options | null | undefined = {} ) { @@ -64,5 +64,5 @@ async function present( } export default traceFunction({ - spanName: "presentDocument", -})(present); + spanName: "presenters", +})(presentDocument); diff --git a/server/presenters/event.ts b/server/presenters/event.ts index 912172fe5..beaacf1d9 100644 --- a/server/presenters/event.ts +++ b/server/presenters/event.ts @@ -1,7 +1,7 @@ import { Event } from "@server/models"; import presentUser from "./user"; -export default function present(event: Event, isAdmin = false) { +export default function presentEvent(event: Event, isAdmin = false) { const data = { id: event.id, name: event.name, diff --git a/server/presenters/fileOperation.ts b/server/presenters/fileOperation.ts index 13f568d4f..ee4558151 100644 --- a/server/presenters/fileOperation.ts +++ b/server/presenters/fileOperation.ts @@ -2,7 +2,7 @@ import path from "path"; import { FileOperation } from "@server/models"; import { presentUser } from "."; -export default function present(data: FileOperation) { +export default function presentFileOperation(data: FileOperation) { return { id: data.id, type: data.type, diff --git a/server/presenters/group.ts b/server/presenters/group.ts index 3ce5d4463..f797385b3 100644 --- a/server/presenters/group.ts +++ b/server/presenters/group.ts @@ -1,6 +1,6 @@ import Group from "@server/models/Group"; -export default function present(group: Group) { +export default function presentGroup(group: Group) { return { id: group.id, name: group.name, diff --git a/server/presenters/groupMembership.ts b/server/presenters/groupMembership.ts index cffe84d2a..122c38a0a 100644 --- a/server/presenters/groupMembership.ts +++ b/server/presenters/groupMembership.ts @@ -8,14 +8,14 @@ type GroupMembership = { user?: ReturnType; }; -export default ( +export default function presentGroupMembership( membership: GroupUser, options?: { includeUser: boolean } -): GroupMembership => { +): GroupMembership { return { id: `${membership.userId}-${membership.groupId}`, userId: membership.userId, groupId: membership.groupId, user: options?.includeUser ? presentUser(membership.user) : undefined, }; -}; +} diff --git a/server/presenters/integration.ts b/server/presenters/integration.ts index d3f65c9d4..d3603b570 100644 --- a/server/presenters/integration.ts +++ b/server/presenters/integration.ts @@ -1,6 +1,6 @@ import { Integration } from "@server/models"; -export default function present(integration: Integration) { +export default function presentIntegration(integration: Integration) { return { id: integration.id, type: integration.type, diff --git a/server/presenters/membership.ts b/server/presenters/membership.ts index 90843accd..02a6cfa33 100644 --- a/server/presenters/membership.ts +++ b/server/presenters/membership.ts @@ -8,11 +8,13 @@ type Membership = { permission: CollectionPermission; }; -export default (membership: CollectionUser): Membership => { +export default function presentMembership( + membership: CollectionUser +): Membership { return { id: `${membership.userId}-${membership.collectionId}`, userId: membership.userId, collectionId: membership.collectionId, permission: membership.permission, }; -}; +} diff --git a/server/presenters/notificationSetting.ts b/server/presenters/notificationSetting.ts index c3ab4d72e..037406afc 100644 --- a/server/presenters/notificationSetting.ts +++ b/server/presenters/notificationSetting.ts @@ -1,6 +1,8 @@ import { NotificationSetting } from "@server/models"; -export default function present(setting: NotificationSetting) { +export default function presentNotificationSetting( + setting: NotificationSetting +) { return { id: setting.id, event: setting.event, diff --git a/server/presenters/pin.ts b/server/presenters/pin.ts index faa4500c6..df38b3d4e 100644 --- a/server/presenters/pin.ts +++ b/server/presenters/pin.ts @@ -1,6 +1,6 @@ import { Pin } from "@server/models"; -export default function present(pin: Pin) { +export default function presentPin(pin: Pin) { return { id: pin.id, documentId: pin.documentId, diff --git a/server/presenters/policy.ts b/server/presenters/policy.ts index 2d8b5c83b..2c8670223 100644 --- a/server/presenters/policy.ts +++ b/server/presenters/policy.ts @@ -6,7 +6,7 @@ type Policy = { abilities: Record; }; -function present(user: User, objects: Record[]): Policy[] { +function presentPolicy(user: User, objects: Record[]): Policy[] { // eslint-disable-next-line @typescript-eslint/no-var-requires const { serialize } = require("../policies"); @@ -17,5 +17,5 @@ function present(user: User, objects: Record[]): Policy[] { } export default traceFunction({ - spanName: "presentPolicy", -})(present); + spanName: "presenters", +})(presentPolicy); diff --git a/server/presenters/revision.ts b/server/presenters/revision.ts index ab0b23faa..daa09cef9 100644 --- a/server/presenters/revision.ts +++ b/server/presenters/revision.ts @@ -1,8 +1,10 @@ +import { traceFunction } from "@server/logging/tracing"; import { Revision } from "@server/models"; import presentUser from "./user"; -export default async function present(revision: Revision, diff?: string) { +async function presentRevision(revision: Revision, diff?: string) { await revision.migrateVersion(); + return { id: revision.id, documentId: revision.documentId, @@ -13,3 +15,7 @@ export default async function present(revision: Revision, diff?: string) { createdBy: presentUser(revision.user), }; } + +export default traceFunction({ + spanName: "presenters", +})(presentRevision); diff --git a/server/presenters/searchQuery.ts b/server/presenters/searchQuery.ts index 3df6db8c0..ef696569b 100644 --- a/server/presenters/searchQuery.ts +++ b/server/presenters/searchQuery.ts @@ -1,6 +1,6 @@ import { SearchQuery } from "@server/models"; -export default function present(searchQuery: SearchQuery) { +export default function presentSearchQuery(searchQuery: SearchQuery) { return { id: searchQuery.id, query: searchQuery.query, diff --git a/server/presenters/share.ts b/server/presenters/share.ts index 1e7134f7c..a113002ed 100644 --- a/server/presenters/share.ts +++ b/server/presenters/share.ts @@ -1,7 +1,7 @@ import { Share } from "@server/models"; import { presentUser } from "."; -export default function present(share: Share, isAdmin = false) { +export default function presentShare(share: Share, isAdmin = false) { const data = { id: share.id, documentId: share.documentId, diff --git a/server/presenters/slackAttachment.ts b/server/presenters/slackAttachment.ts index cd182f4f9..76b7bfb70 100644 --- a/server/presenters/slackAttachment.ts +++ b/server/presenters/slackAttachment.ts @@ -8,7 +8,7 @@ type Action = { value: string; }; -function present( +function presentSlackAttachment( document: Document, team: Team, collection?: Collection | null, @@ -34,5 +34,5 @@ function present( } export default traceFunction({ - spanName: "presentSlackAttachment", -})(present); + spanName: "presenters", +})(presentSlackAttachment); diff --git a/server/presenters/star.ts b/server/presenters/star.ts index 27b263a8e..c8bedb8eb 100644 --- a/server/presenters/star.ts +++ b/server/presenters/star.ts @@ -1,6 +1,6 @@ import { Star } from "@server/models"; -export default function present(star: Star) { +export default function presentStar(star: Star) { return { id: star.id, documentId: star.documentId, diff --git a/server/presenters/subscription.ts b/server/presenters/subscription.ts index fcd142992..084cb5163 100644 --- a/server/presenters/subscription.ts +++ b/server/presenters/subscription.ts @@ -1,6 +1,6 @@ import { Subscription } from "@server/models"; -export default function present(subscription: Subscription) { +export default function presentSubscription(subscription: Subscription) { return { id: subscription.id, userId: subscription.userId, diff --git a/server/presenters/team.ts b/server/presenters/team.ts index 142082810..27cfcf61f 100644 --- a/server/presenters/team.ts +++ b/server/presenters/team.ts @@ -1,6 +1,6 @@ import { Team } from "@server/models"; -export default function present(team: Team) { +export default function presentTeam(team: Team) { return { id: team.id, name: team.name, diff --git a/server/presenters/user.ts b/server/presenters/user.ts index abf5a90cc..935447fce 100644 --- a/server/presenters/user.ts +++ b/server/presenters/user.ts @@ -22,7 +22,10 @@ type UserPresentation = { preferences?: UserPreferences | null; }; -export default (user: User, options: Options = {}): UserPresentation => { +export default function presentUser( + user: User, + options: Options = {} +): UserPresentation { const userData: UserPresentation = { id: user.id, name: user.name, @@ -43,4 +46,4 @@ export default (user: User, options: Options = {}): UserPresentation => { } return userData; -}; +} diff --git a/server/presenters/view.ts b/server/presenters/view.ts index 61f114cb2..e97caf6d5 100644 --- a/server/presenters/view.ts +++ b/server/presenters/view.ts @@ -1,7 +1,7 @@ import { View } from "@server/models"; import { presentUser } from "../presenters"; -export default function present(view: View) { +export default function presentView(view: View) { return { id: view.id, documentId: view.documentId, diff --git a/server/presenters/webhook.ts b/server/presenters/webhook.ts index a7592a1e2..dd6261b3b 100644 --- a/server/presenters/webhook.ts +++ b/server/presenters/webhook.ts @@ -22,7 +22,7 @@ export interface WebhookPresentation { createdAt: Date; } -export default function present({ +export default function presentWebhook({ event, delivery, payload, diff --git a/server/presenters/webhookSubscription.ts b/server/presenters/webhookSubscription.ts index 1b74c83d9..9447d8644 100644 --- a/server/presenters/webhookSubscription.ts +++ b/server/presenters/webhookSubscription.ts @@ -1,6 +1,8 @@ import { WebhookSubscription } from "@server/models"; -export default function present(webhook: WebhookSubscription) { +export default function presentWebhookSubscription( + webhook: WebhookSubscription +) { return { id: webhook.id, name: webhook.name,