Skip to content

Commit 85450ad

Browse files
Merge pull request #142 from lukasoppermann/only-$type
Only $type
2 parents 44481b0 + 2cc8cc9 commit 85450ad

94 files changed

Lines changed: 919 additions & 2373 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 229 additions & 485 deletions
Large diffs are not rendered by default.

src/build.test.js

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,21 @@ describe('index.js', () => {
88
expect(StyleDictionary.hooks.formats['typescript/esm-declarations']).toBeDefined()
99
})
1010
it('all transformers are attached', () => {
11+
expect(StyleDictionary.hooks.transforms['clamp/css']).toBeDefined()
1112
expect(StyleDictionary.hooks.transforms['color/css']).toBeDefined()
12-
expect(StyleDictionary.hooks.transforms['color/hex']).toBeDefined()
13-
expect(StyleDictionary.hooks.transforms['color/rgba']).toBeDefined()
14-
expect(StyleDictionary.hooks.transforms['color/rgbAlpha']).toBeDefined()
15-
expect(StyleDictionary.hooks.transforms['color/rgbaFloat']).toBeDefined()
16-
expect(StyleDictionary.hooks.transforms['color/hexAlpha']).toBeDefined()
1713
expect(StyleDictionary.hooks.transforms['comment/deprecated']).toBeDefined()
18-
expect(StyleDictionary.hooks.transforms['clamp/css']).toBeDefined()
19-
expect(StyleDictionary.hooks.transforms['name/pathToDotNotation']).toBeDefined()
20-
expect(StyleDictionary.hooks.transforms['name/pathToCamelCase']).toBeDefined()
21-
expect(StyleDictionary.hooks.transforms['shadow/css']).toBeDefined()
22-
expect(StyleDictionary.hooks.transforms['transition/css']).toBeDefined()
14+
expect(StyleDictionary.hooks.transforms['cubicBezier/css']).toBeDefined()
15+
expect(StyleDictionary.hooks.transforms['dimension/css']).toBeDefined()
2316
expect(StyleDictionary.hooks.transforms['font/css']).toBeDefined()
2417
expect(StyleDictionary.hooks.transforms['fontFamily/css']).toBeDefined()
2518
expect(StyleDictionary.hooks.transforms['fontWeight/number']).toBeDefined()
2619
expect(StyleDictionary.hooks.transforms['gradient/css']).toBeDefined()
27-
expect(StyleDictionary.hooks.transforms['cubicBezier/css']).toBeDefined()
28-
expect(StyleDictionary.hooks.transforms['strokeStyle/css']).toBeDefined()
29-
expect(StyleDictionary.hooks.transforms['dimension/pixelToRem']).toBeDefined()
30-
expect(StyleDictionary.hooks.transforms['dimension/remToPixel']).toBeDefined()
31-
expect(StyleDictionary.hooks.transforms['dimension/pixelUnitless']).toBeDefined()
20+
expect(StyleDictionary.hooks.transforms['name/pathToCamelCase']).toBeDefined()
21+
expect(StyleDictionary.hooks.transforms['name/pathToDotNotation']).toBeDefined()
3222
expect(StyleDictionary.hooks.transforms['number']).toBeDefined()
23+
expect(StyleDictionary.hooks.transforms['shadow/css']).toBeDefined()
24+
expect(StyleDictionary.hooks.transforms['strokeStyle/css']).toBeDefined()
25+
expect(StyleDictionary.hooks.transforms['transition/css']).toBeDefined()
3326
})
3427

3528
it('all transformGroups are attached', () => {
@@ -38,21 +31,19 @@ describe('index.js', () => {
3831

3932
it('all filters are attached', () => {
4033
expect(StyleDictionary.hooks.filters['isBorder']).toBeDefined()
34+
expect(StyleDictionary.hooks.filters['isClamp']).toBeDefined()
4135
expect(StyleDictionary.hooks.filters['isColor']).toBeDefined()
42-
expect(StyleDictionary.hooks.filters['isColorOrGradient']).toBeDefined()
4336
expect(StyleDictionary.hooks.filters['isCubicBezier']).toBeDefined()
44-
expect(StyleDictionary.hooks.filters['isClamp']).toBeDefined()
4537
expect(StyleDictionary.hooks.filters['isDeprecated']).toBeDefined()
4638
expect(StyleDictionary.hooks.filters['isDimension']).toBeDefined()
4739
expect(StyleDictionary.hooks.filters['isDuration']).toBeDefined()
4840
expect(StyleDictionary.hooks.filters['isFontFamily']).toBeDefined()
4941
expect(StyleDictionary.hooks.filters['isFontWeight']).toBeDefined()
5042
expect(StyleDictionary.hooks.filters['isGradient']).toBeDefined()
43+
expect(StyleDictionary.hooks.filters['isNumber']).toBeDefined()
5144
expect(StyleDictionary.hooks.filters['isShadow']).toBeDefined()
5245
expect(StyleDictionary.hooks.filters['isSource']).toBeDefined()
5346
expect(StyleDictionary.hooks.filters['isStrokeStyle']).toBeDefined()
5447
expect(StyleDictionary.hooks.filters['isTransition']).toBeDefined()
55-
expect(StyleDictionary.hooks.filters['isTypographic']).toBeDefined()
56-
expect(StyleDictionary.hooks.filters['isNumber']).toBeDefined()
5748
})
5849
})

src/filter/getIsType.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ describe('Filter: getIsType', () => {
2020
},
2121
] as TransformedToken[]
2222
it('filters type tokens', () => {
23-
expect(items.filter(getIsType('border', 'color'))).toStrictEqual([items[0], items[2]])
23+
expect(items.filter(getIsType('border', 'dimension', 'color'))).toStrictEqual([items[0], items[1]])
2424
})
2525
})

src/filter/getIsType.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ import {TransformedToken} from 'style-dictionary/types'
99
export const getIsType =
1010
(...args: string[]) =>
1111
(token: TransformedToken): boolean =>
12-
args.includes(token?.$type ?? token?.type ?? '')
12+
args.includes(token?.$type ?? '')

src/filter/isBorder.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ describe('Filter: isBorder', () => {
2020
},
2121
] as TransformedToken[]
2222
it('filters border tokens', () => {
23-
expect(items.filter(isBorder)).toStrictEqual([items[0], items[2]])
23+
expect(items.filter(isBorder.filter)).toStrictEqual([items[0]])
2424
})
2525
})

src/filter/isBorder.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ import {TransformedToken} from 'style-dictionary/types'
44
* @type filter
55
* @description only returns tokens of type `border`
66
*/
7-
export const isBorder = (token: TransformedToken): boolean => token?.$type === 'border' || token?.type === 'border'
7+
export const isBorderFilter = (token: TransformedToken): boolean => token?.$type === 'border'
8+
9+
export const isBorder = {
10+
name: 'isBorder',
11+
filter: isBorderFilter,
12+
}

src/filter/isClamp.test.ts

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,6 @@ import {isClamp} from './isClamp'
33

44
describe('Filter: isClamp', () => {
55
const items = [
6-
{
7-
value: '300ms',
8-
$type: 'clamp',
9-
},
10-
{
11-
value: {
12-
test: '2rem',
13-
},
14-
$type: 'clamp',
15-
},
16-
{
17-
value: {
18-
min: '2rem',
19-
},
20-
type: 'clamp',
21-
},
22-
{
23-
value: 'string',
24-
},
25-
{
26-
value: {
27-
min: '2rem',
28-
ideal: '3rem',
29-
max: '3rem',
30-
},
31-
type: 'clamp',
32-
},
33-
{
34-
value: {
35-
min: '2rem',
36-
ideal: '3rem',
37-
max: '3rem',
38-
},
39-
type: 'dimension',
40-
},
41-
] as TransformedToken[]
42-
43-
const w3cItems = [
446
{
457
$value: '300ms',
468
$type: 'clamp',
@@ -66,7 +28,7 @@ describe('Filter: isClamp', () => {
6628
ideal: '3rem',
6729
max: '3rem',
6830
},
69-
type: 'clamp',
31+
$type: 'clamp',
7032
},
7133
{
7234
$value: {
@@ -78,10 +40,6 @@ describe('Filter: isClamp', () => {
7840
},
7941
] as TransformedToken[]
8042
it('filters clamp tokens', () => {
81-
expect(items.filter(isClamp)).toStrictEqual([items[4]])
82-
})
83-
84-
it('filters clamp tokens in W3C format', () => {
85-
expect(w3cItems.filter(isClamp)).toStrictEqual([w3cItems[4]])
43+
expect(items.filter(isClamp.filter)).toStrictEqual([items[4]])
8644
})
8745
})

src/filter/isClamp.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@ import {getValue} from '../utilities/getValue.js'
55
* @type filter
66
* @description only returns tokens of type `shadow`
77
*/
8-
export const isClamp = (token: TransformedToken): boolean => {
8+
export const isClampFilter = (token: TransformedToken): boolean => {
99
const tokenValue = getValue(token)
1010
return (
11-
(token?.$type === 'clamp' || token?.type === 'clamp') &&
11+
token?.$type === 'clamp' &&
1212
tokenValue !== null &&
1313
typeof tokenValue === 'object' &&
1414
'min' in tokenValue &&
1515
'ideal' in tokenValue &&
1616
'max' in tokenValue
1717
)
1818
}
19+
20+
export const isClamp = {
21+
name: 'isClamp',
22+
filter: isClampFilter,
23+
}

src/filter/isColor.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ describe('Filter: isColor', () => {
2020
},
2121
] as TransformedToken[]
2222
it('filters color tokens', () => {
23-
expect(items.filter(isColor)).toStrictEqual([items[0], items[2]])
23+
expect(items.filter(isColor.filter)).toStrictEqual([items[0]])
2424
})
2525
})

src/filter/isColor.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ import {TransformedToken} from 'style-dictionary/types'
44
* @type filter
55
* @description only returns tokens of type `color`
66
*/
7-
export const isColor = (token: TransformedToken): boolean => token?.$type === 'color' || token?.type === 'color'
7+
export const isColorFilter = (token: TransformedToken): boolean => token?.$type === 'color'
8+
9+
export const isColor = {
10+
name: 'isColor',
11+
filter: isColorFilter,
12+
}

0 commit comments

Comments
 (0)