From 2d15c92e84c47ca10c36b2d599f633f11a07af17 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Mon, 8 May 2023 08:33:13 -0700 Subject: [PATCH] Move a few more files into events src (#36574) --- components/article/InArticlePicker.tsx | 2 +- components/article/PlatformPicker.tsx | 2 +- components/page-footer/SupportSection.tsx | 2 +- components/sidebar/ProductCollapsibleSection.tsx | 2 +- components/sidebar/RestCollapsibleSection.tsx | 2 +- lib/page.js | 2 +- pages/_app.tsx | 4 ++-- .../events/components}/Survey.module.scss | 0 .../page-footer => src/events/components}/Survey.tsx | 2 +- src/events/{browser.ts => components/events.ts} | 2 +- src/events/{ => components}/experiment.ts | 2 +- {components/lib => src/events/components}/user-agent.ts | 0 {lib => src/events/lib}/get-document-type.js | 0 src/events/{ => lib}/hydro.js | 6 +++--- src/events/{ => lib}/middleware-errors.js | 0 src/events/{ => lib}/schema.js | 8 ++++---- src/events/middleware.js | 8 ++++---- src/events/tests/hydro.js | 2 +- src/events/tests/middleware-errors.js | 4 ++-- {tests/unit => src/events/tests}/user-agent.js | 2 +- src/search/components/SearchResults.tsx | 2 +- src/search/components/index.tsx | 2 +- 22 files changed, 28 insertions(+), 28 deletions(-) rename {components/page-footer => src/events/components}/Survey.module.scss (100%) rename {components/page-footer => src/events/components}/Survey.tsx (99%) rename src/events/{browser.ts => components/events.ts} (99%) rename src/events/{ => components}/experiment.ts (92%) rename {components/lib => src/events/components}/user-agent.ts (100%) rename {lib => src/events/lib}/get-document-type.js (100%) rename src/events/{ => lib}/hydro.js (94%) rename src/events/{ => lib}/middleware-errors.js (100%) rename src/events/{ => lib}/schema.js (98%) rename {tests/unit => src/events/tests}/user-agent.js (96%) diff --git a/components/article/InArticlePicker.tsx b/components/article/InArticlePicker.tsx index dad3a5ec64..de226f0be1 100644 --- a/components/article/InArticlePicker.tsx +++ b/components/article/InArticlePicker.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react' import Cookies from 'js-cookie' import { UnderlineNav } from '@primer/react' -import { sendEvent, EventType } from 'src/events/browser' +import { sendEvent, EventType } from 'src/events/components/events' import { useRouter } from 'next/router' type Option = { diff --git a/components/article/PlatformPicker.tsx b/components/article/PlatformPicker.tsx index 579542eb3c..3bed51dfcc 100644 --- a/components/article/PlatformPicker.tsx +++ b/components/article/PlatformPicker.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react' import { useArticleContext } from 'components/context/ArticleContext' -import { parseUserAgent } from 'components/lib/user-agent' +import { parseUserAgent } from 'src/events/components/user-agent' import { InArticlePicker } from './InArticlePicker' const platformQueryKey = 'platform' diff --git a/components/page-footer/SupportSection.tsx b/components/page-footer/SupportSection.tsx index 39e83b02c1..3276c55e52 100644 --- a/components/page-footer/SupportSection.tsx +++ b/components/page-footer/SupportSection.tsx @@ -1,6 +1,6 @@ import cx from 'classnames' -import { Survey } from 'components/page-footer/Survey' +import { Survey } from 'src/events/components/Survey' import { Contribution } from 'components/page-footer/Contribution' import { Support } from 'components/page-footer/Support' import { useMainContext } from 'components/context/MainContext' diff --git a/components/sidebar/ProductCollapsibleSection.tsx b/components/sidebar/ProductCollapsibleSection.tsx index 77c599266a..1db2ff2610 100644 --- a/components/sidebar/ProductCollapsibleSection.tsx +++ b/components/sidebar/ProductCollapsibleSection.tsx @@ -3,7 +3,7 @@ import { TreeView } from '@primer/react' import { Link } from 'components/Link' import { ProductTreeNode } from 'components/context/MainContext' -import { EventType, sendEvent } from 'src/events/browser' +import { EventType, sendEvent } from 'src/events/components/events' type SectionProps = { routePath: string diff --git a/components/sidebar/RestCollapsibleSection.tsx b/components/sidebar/RestCollapsibleSection.tsx index 6e013d6eae..30dad86c9d 100644 --- a/components/sidebar/RestCollapsibleSection.tsx +++ b/components/sidebar/RestCollapsibleSection.tsx @@ -4,7 +4,7 @@ import { useState, useEffect } from 'react' import { TreeView } from '@primer/react' import { ProductTreeNode } from 'components/context/MainContext' -import { EventType, sendEvent } from 'src/events/browser' +import { EventType, sendEvent } from 'src/events/components/events' import { useAutomatedPageContext } from 'components/context/AutomatedPageContext' import type { MiniTocItem } from 'components/context/ArticleContext' import { Link } from 'components/Link' diff --git a/lib/page.js b/lib/page.js index 25dc3902eb..f5ca029200 100644 --- a/lib/page.js +++ b/lib/page.js @@ -15,7 +15,7 @@ import { productMap } from './all-products.js' import slash from 'slash' import readFileContents from './read-file-contents.js' import getLinkData from './get-link-data.js' -import getDocumentType from './get-document-type.js' +import getDocumentType from '../src/events/lib/get-document-type.js' import { union } from 'lodash-es' import { allTools } from './all-tools.js' import { renderContentWithFallback } from './render-with-fallback.js' diff --git a/pages/_app.tsx b/pages/_app.tsx index 98f9e3a8fd..d54b371d64 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -6,8 +6,8 @@ import { ThemeProvider, SSRProvider } from '@primer/react' import '../stylesheets/index.scss' -import { initializeEvents } from 'src/events/browser' -import { initializeExperiments } from 'src/events/experiment' +import { initializeEvents } from 'src/events/components/events' +import { initializeExperiments } from 'src/events/components/experiment' import { LanguagesContext, LanguagesContextT, diff --git a/components/page-footer/Survey.module.scss b/src/events/components/Survey.module.scss similarity index 100% rename from components/page-footer/Survey.module.scss rename to src/events/components/Survey.module.scss diff --git a/components/page-footer/Survey.tsx b/src/events/components/Survey.tsx similarity index 99% rename from components/page-footer/Survey.tsx rename to src/events/components/Survey.tsx index 11421cf6a0..e0d87bf512 100644 --- a/components/page-footer/Survey.tsx +++ b/src/events/components/Survey.tsx @@ -4,7 +4,7 @@ import { useRouter } from 'next/router' import { ThumbsdownIcon, ThumbsupIcon } from '@primer/octicons-react' import { useTranslation } from 'components/hooks/useTranslation' import { Link } from 'components/Link' -import { sendEvent, EventType } from 'src/events/browser' +import { sendEvent, EventType } from 'src/events/components/events' import styles from './Survey.module.scss' diff --git a/src/events/browser.ts b/src/events/components/events.ts similarity index 99% rename from src/events/browser.ts rename to src/events/components/events.ts index f4b44fdeda..a4a794e1a4 100644 --- a/src/events/browser.ts +++ b/src/events/components/events.ts @@ -1,6 +1,6 @@ /* eslint-disable camelcase */ import Cookies from 'js-cookie' -import { parseUserAgent } from '../../components/lib/user-agent' +import { parseUserAgent } from './user-agent' const COOKIE_NAME = '_docs-events' diff --git a/src/events/experiment.ts b/src/events/components/experiment.ts similarity index 92% rename from src/events/experiment.ts rename to src/events/components/experiment.ts index 368f5a32bb..aaf5076b5e 100644 --- a/src/events/experiment.ts +++ b/src/events/components/experiment.ts @@ -1,5 +1,5 @@ import murmur from 'imurmurhash' -import { getUserEventsId, sendEvent, EventType } from './browser' +import { getUserEventsId, sendEvent, EventType } from './events' let initialized = false diff --git a/components/lib/user-agent.ts b/src/events/components/user-agent.ts similarity index 100% rename from components/lib/user-agent.ts rename to src/events/components/user-agent.ts diff --git a/lib/get-document-type.js b/src/events/lib/get-document-type.js similarity index 100% rename from lib/get-document-type.js rename to src/events/lib/get-document-type.js diff --git a/src/events/hydro.js b/src/events/lib/hydro.js similarity index 94% rename from src/events/hydro.js rename to src/events/lib/hydro.js index bd009b7b46..8df54eefa3 100644 --- a/src/events/hydro.js +++ b/src/events/lib/hydro.js @@ -2,9 +2,9 @@ import { createHmac } from 'crypto' import { Agent } from 'node:https' import got from 'got' import { isNil } from 'lodash-es' -import statsd from '../../lib/statsd.js' -import { report } from '../../lib/failbot.js' -import { MAX_REQUEST_TIMEOUT } from '../../lib/constants.js' +import statsd from '../../../lib/statsd.js' +import { report } from '../../../lib/failbot.js' +import { MAX_REQUEST_TIMEOUT } from '../../../lib/constants.js' const TIME_OUT_TEXT = 'ms has passed since batch creation' const SERVER_DISCONNECT_TEXT = 'The server disconnected before a response was received' diff --git a/src/events/middleware-errors.js b/src/events/lib/middleware-errors.js similarity index 100% rename from src/events/middleware-errors.js rename to src/events/lib/middleware-errors.js diff --git a/src/events/schema.js b/src/events/lib/schema.js similarity index 98% rename from src/events/schema.js rename to src/events/lib/schema.js index 4aa09d67cf..d4782613d5 100644 --- a/src/events/schema.js +++ b/src/events/lib/schema.js @@ -1,7 +1,7 @@ -import { languageKeys } from '../../lib/languages.js' -import { allVersionKeys } from '../../lib/all-versions.js' -import { productIds } from '../../lib/all-products.js' -import { allTools } from '../../lib/all-tools.js' +import { languageKeys } from '../../../lib/languages.js' +import { allVersionKeys } from '../../../lib/all-versions.js' +import { productIds } from '../../../lib/all-products.js' +import { allTools } from '../../../lib/all-tools.js' const versionPattern = '^\\d+(\\.\\d+)?(\\.\\d+)?$' // eslint-disable-line diff --git a/src/events/middleware.js b/src/events/middleware.js index eb9a3c7e59..f870fa804c 100644 --- a/src/events/middleware.js +++ b/src/events/middleware.js @@ -2,11 +2,11 @@ import express from 'express' import { omit, without, mapValues } from 'lodash-es' import Ajv from 'ajv' import addFormats from 'ajv-formats' -import { schemas, hydroNames } from './schema.js' +import { schemas, hydroNames } from './lib/schema.js' import catchMiddlewareError from '../../middleware/catch-middleware-error.js' import { noCacheControl } from '../../middleware/cache-control.js' -import { formatErrors } from './middleware-errors.js' -import { publish as _publish } from './hydro.js' +import { formatErrors } from './lib/middleware-errors.js' +import { publish as _publish } from './lib/hydro.js' const router = express.Router() const ajv = new Ajv() @@ -43,7 +43,7 @@ router.post( const validate = validations[type] if (!validate(req.body)) { // Track validation errors in Hydro so that we can know if - // there's a widespread problem in browser.ts + // there's a widespread problem in events.ts await publish( formatErrors(validate.errors, req.body).map((error) => ({ schema: hydroNames.validation, diff --git a/src/events/tests/hydro.js b/src/events/tests/hydro.js index 7d58ffa116..f7a3d3fa3f 100644 --- a/src/events/tests/hydro.js +++ b/src/events/tests/hydro.js @@ -1,6 +1,6 @@ import { afterEach } from '@jest/globals' import nock from 'nock' -import { publish } from '../hydro.js' +import { publish } from '../lib/hydro.js' describe('Hydro', () => { const secret = '3BD22A91' diff --git a/src/events/tests/middleware-errors.js b/src/events/tests/middleware-errors.js index 2cdc2a806e..8a986e655f 100644 --- a/src/events/tests/middleware-errors.js +++ b/src/events/tests/middleware-errors.js @@ -1,7 +1,7 @@ import Ajv from 'ajv' import addFormats from 'ajv-formats' -import { formatErrors } from '../middleware-errors.js' -import { schemas } from '../schema.js' +import { formatErrors } from '../lib/middleware-errors.js' +import { schemas } from '../lib/schema.js' const ajv = new Ajv() addFormats(ajv) diff --git a/tests/unit/user-agent.js b/src/events/tests/user-agent.js similarity index 96% rename from tests/unit/user-agent.js rename to src/events/tests/user-agent.js index b11e03c6ec..86314297ed 100644 --- a/tests/unit/user-agent.js +++ b/src/events/tests/user-agent.js @@ -1,4 +1,4 @@ -import { parseUserAgent } from '../../components/lib/user-agent.ts' +import { parseUserAgent } from '../components/user-agent.ts' describe('parseUserAgent', () => { it('android, chrome', () => { diff --git a/src/search/components/SearchResults.tsx b/src/search/components/SearchResults.tsx index 99b2778d77..6df909ae16 100644 --- a/src/search/components/SearchResults.tsx +++ b/src/search/components/SearchResults.tsx @@ -7,7 +7,7 @@ import type { SearchResultsT, SearchResultHitT } from './types' import { useTranslation } from 'components/hooks/useTranslation' import { Link } from 'components/Link' import { useQuery } from 'components/hooks/useQuery' -import { sendEvent, EventType } from 'src/events/browser' +import { sendEvent, EventType } from 'src/events/components/events' import styles from './SearchResults.module.scss' diff --git a/src/search/components/index.tsx b/src/search/components/index.tsx index f9a750b978..073ed8d8ef 100644 --- a/src/search/components/index.tsx +++ b/src/search/components/index.tsx @@ -3,7 +3,7 @@ import { useRouter } from 'next/router' import Head from 'next/head' import { Heading } from '@primer/react' -import { sendEvent, EventType } from 'src/events/browser' +import { sendEvent, EventType } from 'src/events/components/events' import { useTranslation } from 'components/hooks/useTranslation' import { DEFAULT_VERSION, useVersion } from 'components/hooks/useVersion' import { useNumberFormatter } from 'components/hooks/useNumberFormatter'