Skip to content

Commit 418e179

Browse files
authored
fix(design-system): don't break icons if process is not defined (#3525)
1 parent e3ef4f5 commit 418e179

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { addVersionToAssetUrl } from './assets'
2+
3+
describe('addVersionToAssetUrl', () => {
4+
afterEach(() => {
5+
vi.unstubAllGlobals()
6+
vi.unstubAllEnvs()
7+
})
8+
9+
it('adds the package version as query parameter', () => {
10+
vi.stubEnv('PACKAGE_VERSION', '1.2.3')
11+
expect(addVersionToAssetUrl('icons/foo.svg')).toBe('icons/foo.svg?v=1.2.3')
12+
})
13+
it('appends the package version to existing query parameters', () => {
14+
vi.stubEnv('PACKAGE_VERSION', '1.2.3')
15+
expect(addVersionToAssetUrl('icons/foo.svg?bar=1')).toBe('icons/foo.svg?bar=1&v=1.2.3')
16+
})
17+
it('returns the url unchanged if no package version is set', () => {
18+
vi.stubEnv('PACKAGE_VERSION', '')
19+
expect(addVersionToAssetUrl('icons/foo.svg')).toBe('icons/foo.svg')
20+
})
21+
it('returns the url unchanged if "process" is not defined', () => {
22+
vi.stubGlobal('process', undefined)
23+
expect(addVersionToAssetUrl('icons/foo.svg')).toBe('icons/foo.svg')
24+
})
25+
})

‎packages/design-system/src/helpers/assets.ts‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
// Vite injects this at build time
22
declare const process: { env: { PACKAGE_VERSION?: string } }
33

4+
function getPackageVersion(): string | undefined {
5+
try {
6+
return process.env.PACKAGE_VERSION
7+
} catch {
8+
// `process` doesn't exist in the browser if the bundler doesn't inject the version (e.g. in the docs)
9+
return undefined
10+
}
11+
}
12+
413
/**
514
* Adds version query parameter to asset URLs for cache busting
615
*/
716
export const addVersionToAssetUrl = (url: string): string => {
8-
const version = process.env.PACKAGE_VERSION
17+
const version = getPackageVersion()
918
if (!version) {
1019
return url
1120
}

0 commit comments

Comments
 (0)