From 4cbe69c44713e31cf078c1e08198812bdca35509 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Wed, 26 Oct 2022 12:31:10 -0500 Subject: [PATCH 1/2] refactor get cdn to have smaller footprint --- .changeset/tall-stingrays-approve.md | 5 +++++ .../src/browser/__tests__/standalone-analytics.test.ts | 8 ++++---- packages/browser/src/browser/index.ts | 8 +++----- 3 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 .changeset/tall-stingrays-approve.md diff --git a/.changeset/tall-stingrays-approve.md b/.changeset/tall-stingrays-approve.md new file mode 100644 index 000000000..344420ec9 --- /dev/null +++ b/.changeset/tall-stingrays-approve.md @@ -0,0 +1,5 @@ +--- +'@segment/analytics-next': patch +--- + +Refactor get cdn to have smaller footprint diff --git a/packages/browser/src/browser/__tests__/standalone-analytics.test.ts b/packages/browser/src/browser/__tests__/standalone-analytics.test.ts index f318a2abe..67acd5c93 100644 --- a/packages/browser/src/browser/__tests__/standalone-analytics.test.ts +++ b/packages/browser/src/browser/__tests__/standalone-analytics.test.ts @@ -1,6 +1,6 @@ import jsdom, { JSDOM } from 'jsdom' import { InitOptions } from '../../' -import { AnalyticsBrowser, loadLegacySettings } from '../../browser' +import { AnalyticsBrowser } from '../../browser' import { snippet } from '../../tester/__fixtures__/segment-snippet' import { install, AnalyticsStandalone } from '../standalone-analytics' import unfetch from 'unfetch' @@ -127,10 +127,10 @@ describe('standalone bundle', () => { // @ts-ignore ignore Response required fields .mockImplementation((): Promise => fetchSettings) - await loadLegacySettings(segmentDotCom) + await AnalyticsBrowser.standalone('my-write-key') expect(unfetch).toHaveBeenCalledWith( - 'https://cdn.foo.com/v1/projects/foo/settings' + 'https://cdn.foo.com/v1/projects/my-write-key/settings' ) }) @@ -142,7 +142,7 @@ describe('standalone bundle', () => { const mockCdn = 'http://my-overridden-cdn.com' window.analytics._cdn = mockCdn - await loadLegacySettings(segmentDotCom) + await AnalyticsBrowser.standalone('abc') expect(unfetch).toHaveBeenCalledWith(expect.stringContaining(mockCdn)) }) diff --git a/packages/browser/src/browser/index.ts b/packages/browser/src/browser/index.ts index b8fe6e078..938938b35 100644 --- a/packages/browser/src/browser/index.ts +++ b/packages/browser/src/browser/index.ts @@ -79,11 +79,9 @@ export interface AnalyticsBrowserSettings extends AnalyticsSettings { export function loadLegacySettings( writeKey: string, - cdnURL?: string + cdnURL: string ): Promise { - const baseUrl = cdnURL ?? getCDN() - - return fetch(`${baseUrl}/v1/projects/${writeKey}/settings`) + return fetch(`${cdnURL}/v1/projects/${writeKey}/settings`) .then((res) => { if (!res.ok) { return res.text().then((errorResponseMessage) => { @@ -263,7 +261,7 @@ async function loadAnalytics( const legacySettings = settings.cdnSettings ?? - (await loadLegacySettings(settings.writeKey, settings.cdnURL)) + (await loadLegacySettings(settings.writeKey, settings.cdnURL || getCDN())) const retryQueue: boolean = legacySettings.integrations['Segment.io']?.retryQueue ?? true From 7a8da6e74d14f311ba6e2d7e22a2ef244dc05dc1 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Wed, 26 Oct 2022 12:48:29 -0500 Subject: [PATCH 2/2] add install --- .../src/browser/__tests__/standalone-analytics.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/browser/src/browser/__tests__/standalone-analytics.test.ts b/packages/browser/src/browser/__tests__/standalone-analytics.test.ts index 67acd5c93..d2e6c113e 100644 --- a/packages/browser/src/browser/__tests__/standalone-analytics.test.ts +++ b/packages/browser/src/browser/__tests__/standalone-analytics.test.ts @@ -127,10 +127,10 @@ describe('standalone bundle', () => { // @ts-ignore ignore Response required fields .mockImplementation((): Promise => fetchSettings) - await AnalyticsBrowser.standalone('my-write-key') + await install() expect(unfetch).toHaveBeenCalledWith( - 'https://cdn.foo.com/v1/projects/my-write-key/settings' + 'https://cdn.foo.com/v1/projects/foo/settings' ) }) @@ -142,7 +142,7 @@ describe('standalone bundle', () => { const mockCdn = 'http://my-overridden-cdn.com' window.analytics._cdn = mockCdn - await AnalyticsBrowser.standalone('abc') + await install() expect(unfetch).toHaveBeenCalledWith(expect.stringContaining(mockCdn)) })