Skip to content

Commit b11ccf0

Browse files
committed
fix(clerk-js): Replace Object.fromEntries with fromEntries ponyfill
1 parent 14197d7 commit b11ccf0

8 files changed

+23
-11
lines changed

packages/clerk-js/src/v4/customizables/colorOptionToHslaScale.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ColorScale, CssColorOrScale, HslaColor, HslaColorString } from '@clerk/types';
22

3-
import { colors } from '../utils';
3+
import { colors, fromEntries } from '../utils';
44

55
type InternalColorScale<T> = ColorScale<T> & Partial<Record<20, T>>;
66

@@ -67,7 +67,7 @@ const mergeFilledIntoUserDefinedScale = (
6767
userDefined: InternalColorScale<HslaColor>,
6868
): InternalColorScale<HslaColor> => {
6969
// @ts-expect-error
70-
return Object.fromEntries(Object.entries(userDefined).map(([k, v]) => [k, v || generated[k]]));
70+
return fromEntries(Object.entries(userDefined).map(([k, v]) => [k, v || generated[k]]));
7171
};
7272

7373
const prefixAndStringifyHslaScale = (
@@ -90,7 +90,7 @@ const userDefinedColorToHslaColorScale = (colorOption: CssColorOrScale): Interna
9090
const hslaScale = createEmptyColorScale();
9191
// @ts-expect-error
9292
const entries = Object.keys(hslaScale).map(k => [k, baseScale[k] ? colors.toHslaColor(baseScale[k]) : undefined]);
93-
return Object.fromEntries(entries) as InternalColorScale<HslaColor>;
93+
return fromEntries(entries) as InternalColorScale<HslaColor>;
9494
};
9595

9696
/**

packages/clerk-js/src/v4/customizables/elementDescriptors.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ElementObjectKey, ElementsConfig, IdSelectors, StateSelectors } from '@clerk/types';
22

3-
import { containsAllOfType } from '../utils';
3+
import { containsAllOfType, fromEntries } from '../utils';
44

55
export const CLASS_PREFIX = 'cl-';
66
export const ID_CLASS_PREFIX = 'cl-id-';
@@ -245,7 +245,7 @@ const createDescriptorMap = <K extends keyof ElementsConfig>(keys = APPEARANCE_K
245245
const entries = keys.map(key => [toObjectKey(key), createElementDescriptor(key)]) as unknown as Array<
246246
[K, ElementDescriptor<K>]
247247
>;
248-
return Object.fromEntries(entries) as unknown as ElementDescriptors;
248+
return fromEntries(entries) as unknown as ElementDescriptors;
249249
};
250250

251251
export const descriptors = createDescriptorMap();

packages/clerk-js/src/v4/customizables/parseVariables.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Theme } from '@clerk/types';
22

33
import { spaceScaleKeys } from '../foundations/sizes';
44
import { fontSizes, fontWeights } from '../foundations/typography';
5-
import { colors, removeUndefinedProps } from '../utils';
5+
import { colors, fromEntries, removeUndefinedProps } from '../utils';
66
import { colorOptionToHslaAlphaScale, colorOptionToHslaLightnessScale } from './colorOptionToHslaScale';
77

88
export const createColorScales = (theme: Theme) => {
@@ -55,7 +55,7 @@ export const createSpaceScale = (theme: Theme) => {
5555
return;
5656
}
5757
const { numericValue, unit } = splitCssUnit(spacingUnit);
58-
return Object.fromEntries(
58+
return fromEntries(
5959
spaceScaleKeys.map(k => {
6060
const num = Number.parseFloat(k.replace('x', '.'));
6161
const percentage = (num / 0.5) * 0.125;

packages/clerk-js/src/v4/hooks/useEnabledThirdPartyProviders.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { OAUTH_PROVIDERS, WEB3_PROVIDERS } from '@clerk/types/src';
44

55
import { svgUrl } from '../../ui/common/constants';
66
import { useEnvironment } from '../../ui/contexts/EnvironmentContext';
7+
import { fromEntries } from '../utils';
78

89
type ThirdPartyStrategyToDataMap = {
910
[k in Web3Strategy | OAuthStrategy]: { id: Web3Provider | OAuthProvider; iconUrl: string; name: string };
@@ -13,13 +14,13 @@ type ThirdPartyProviderToDataMap = {
1314
[k in Web3Provider | OAuthProvider]: { strategy: Web3Strategy | OAuthStrategy; iconUrl: string; name: string };
1415
};
1516

16-
const providerToDisplayData: ThirdPartyProviderToDataMap = Object.fromEntries(
17+
const providerToDisplayData: ThirdPartyProviderToDataMap = fromEntries(
1718
[...OAUTH_PROVIDERS, ...WEB3_PROVIDERS].map(p => {
1819
return [p.provider, { strategy: p.strategy, name: p.name, iconUrl: svgUrl(p.provider) }];
1920
}),
2021
) as ThirdPartyProviderToDataMap;
2122

22-
const strategyToDisplayData: ThirdPartyStrategyToDataMap = Object.fromEntries(
23+
const strategyToDisplayData: ThirdPartyStrategyToDataMap = fromEntries(
2324
[...OAUTH_PROVIDERS, ...WEB3_PROVIDERS].map(p => {
2425
return [p.strategy, { id: p.provider, name: p.name, iconUrl: svgUrl(p.provider) }];
2526
}),

packages/clerk-js/src/v4/styledSystem/breakpoints.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { fromEntries } from '../utils';
2+
13
const breakpoints = Object.freeze({
24
xs: '21em', // 336px
35
sm: '30em', // 480px
@@ -17,5 +19,5 @@ const deviceQueries = {
1719

1820
export const mqu = {
1921
...deviceQueries,
20-
...Object.fromEntries(Object.entries(breakpoints).map(([k, v]) => [k, `@media (max-width: ${v})`])),
22+
...fromEntries(Object.entries(breakpoints).map(([k, v]) => [k, `@media (max-width: ${v})`])),
2123
} as Record<keyof typeof breakpoints | keyof typeof deviceQueries, string>;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
// eslint-disable-next-line no-restricted-imports
22

3+
import { fromEntries } from '../utils';
4+
35
const varHashId = Date.now();
46

57
export const createCssVariables = <T extends string[]>(...names: T): { [k in T[number]]: string } => {
6-
return Object.fromEntries(names.map(name => [name, `var(--${name})`])) as any;
8+
return fromEntries(names.map(name => [name, `var(--${name})`]));
79
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export const fromEntries = (iterable: Iterable<any>) => {
2+
return [...iterable].reduce((obj, [key, val]) => {
3+
obj[key] = val;
4+
return obj;
5+
}, {});
6+
};

packages/clerk-js/src/v4/utils/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ export * from './phoneUtils';
1515
export * from './formatSafeIdentifier';
1616
export * from './removeUndefinedProps';
1717
export * from './getIdentifier';
18+
export * from './fromEntries';

0 commit comments

Comments
 (0)