Skip to content

Commit 62fd2d1

Browse files
authored
feat(sass): Merge pull request #610 from tancredi/feature/601-sass-map-get-is-deprecated
Feature/601 sass map get is deprecated
2 parents 69433bd + 903288e commit 62fd2d1

9 files changed

Lines changed: 41 additions & 36 deletions

File tree

src/generators/asset-types/__tests__/__snapshots__/sass.ts.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ exports[`\`SASS\` asset generator > renders SASS correctly with \`selector\` opt
1717
-webkit-font-smoothing: antialiased
1818
-moz-osx-font-smoothing: grayscale
1919
20-
2120
$test-map: (
2221
"my-icon": "\\f101",
2322
)
2423
25-
.my-selector.tf-my-icon:before
26-
content: map-get($test-map, "my-icon")
24+
@each $name, $value in ($test-map)
25+
.my-selector.tf-#{$name}:before
26+
content: $value
2727
"
2828
`;
2929

@@ -44,12 +44,12 @@ b[class^="tf-"]:before, b[class*=" tf-"]:before
4444
-webkit-font-smoothing: antialiased
4545
-moz-osx-font-smoothing: grayscale
4646
47-
4847
$test-map: (
4948
"my-icon": "\\f101",
5049
)
5150
52-
.tf-my-icon:before
53-
content: map-get($test-map, "my-icon")
51+
@each $name, $value in ($test-map)
52+
.tf-#{$name}:before
53+
content: $value
5454
"
5555
`;

src/generators/asset-types/__tests__/__snapshots__/scss.ts.snap

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ $test-map: (
2323
"my-icon": "\\f101",
2424
);
2525
26-
.my-selector.tf-my-icon:before {
27-
content: map-get($test-map, "my-icon");
26+
@each $name, $value in ($test-map) {
27+
.my-selector.tf-#{$name}:before {
28+
content: $value;
29+
}
2830
}
2931
"
3032
`;
@@ -52,8 +54,10 @@ $test-map: (
5254
"my-icon": "\\f101",
5355
);
5456
55-
.tf-my-icon:before {
56-
content: map-get($test-map, "my-icon");
57+
@each $name, $value in ($test-map) {
58+
.tf-#{$name}:before {
59+
content: $value;
60+
}
5761
}
5862
"
5963
`;

src/generators/asset-types/__tests__/sass.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,17 @@ describe('`SASS` asset generator', () => {
4646
const result = await sassGen.generate(mockOptions, fontBuffer);
4747

4848
expect(renderSrcMock).toHaveBeenCalledTimes(1);
49-
expect(renderSrcMock).toHaveBeenCalledWith(mockOptions, fontBuffer);
49+
expect(renderSrcMock).toHaveBeenCalledWith(mockOptions, fontBuffer, {
50+
inline: true
51+
});
5052
expect(result).toContain('::src-attr::');
5153
});
5254

5355
it('renders expected selector blocks', async () => {
5456
const sass = await sassGen.generate(mockOptions, Buffer.from(''));
5557

5658
expect(sass).toContain('b[class^="tf-"]:before, b[class*=" tf-"]:before');
57-
expect(sass).toContain('.tf-my-icon:before');
59+
expect(sass).toContain('.tf-#{$name}:before');
5860
});
5961

6062
it('renders expected variables', async () => {
@@ -71,6 +73,6 @@ describe('`SASS` asset generator', () => {
7173
);
7274

7375
expect(sass).toContain('.my-selector:before');
74-
expect(sass).toContain('.my-selector.tf-my-icon:before');
76+
expect(sass).toContain('.my-selector.tf-#{$name}:before');
7577
});
7678
});

src/generators/asset-types/__tests__/scss.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe('`SCSS` asset generator', () => {
5454
const scss = await scssGen.generate(mockOptions, Buffer.from(''));
5555

5656
expect(scss).toContain('b[class^="tf-"]:before, b[class*=" tf-"]:before {');
57-
expect(scss).toContain('.tf-my-icon:before {');
57+
expect(scss).toContain('.tf-#{$name}:before {');
5858
});
5959

6060
it('renders expected variables', async () => {
@@ -71,6 +71,6 @@ describe('`SCSS` asset generator', () => {
7171
);
7272

7373
expect(scss).toContain('.my-selector:before {');
74-
expect(scss).toContain('.my-selector.tf-my-icon:before {');
74+
expect(scss).toContain('.my-selector.tf-#{$name}:before {');
7575
});
7676
});

src/generators/asset-types/sass.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const generator: FontGenerator<Buffer> = {
99
generate: (options, svg: Buffer) =>
1010
renderTemplate(options.templates.sass, {
1111
...options,
12-
fontSrc: renderSrcAttribute(options, svg)
12+
fontSrc: renderSrcAttribute(options, svg, { inline: true })
1313
})
1414
};
1515

src/utils/css.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ const renderSrcOptions: { [key in FontAssetType]: RenderSrcOptions } = {
2020

2121
export const renderSrcAttribute = (
2222
{ name, fontTypes, fontsUrl }: FontGeneratorOptions,
23-
font: string | Buffer
23+
font: string | Buffer,
24+
{ inline = false }: { inline?: boolean } = {}
2425
) =>
2526
fontTypes
2627
.map(fontType => {
@@ -31,4 +32,4 @@ export const renderSrcAttribute = (
3132
fontsUrl || '.'
3233
}/${name}.${fontType}?${hash}${suffix}") format("${formatValue}")`;
3334
})
34-
.join(',\n');
35+
.join(inline ? ', ' : ',\n');

templates/css.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
{{# if ../selector }}
2323
{{ ../selector }}.{{ ../prefix }}-{{ @key }}:before {
2424
{{ else }}
25-
{{ tag }}.{{ ../prefix }}-{{ @key }}:before {
25+
.{{ ../prefix }}-{{ @key }}:before {
2626
{{/ if }}
2727
content: "\\{{ codepoint this }}";
2828
}

templates/sass.hbs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,16 @@ ${{ name }}-font: "{{ name }}"
1818
-webkit-font-smoothing: antialiased
1919
-moz-osx-font-smoothing: grayscale
2020

21-
2221
${{ name }}-map: (
2322
{{# each codepoints }}
2423
"{{ @key }}": "\\{{ codepoint this }}",
2524
{{/ each }}
2625
)
2726

28-
{{# each codepoints }}
29-
{{# if ../selector }}
30-
{{ ../selector }}.{{ ../prefix }}-{{ @key }}:before
31-
{{ else }}
32-
{{ tag }}.{{ ../prefix }}-{{ @key }}:before
33-
{{/ if }}
34-
content: map-get(${{ ../name }}-map, "{{ @key }}")
35-
{{/ each }}
27+
@each $name, $value in (${{ name }}-map)
28+
{{# if selector }}
29+
{{ selector }}.{{ prefix }}-#{$name}:before
30+
{{ else }}
31+
.{{ prefix }}-#{$name}:before
32+
{{/ if }}
33+
content: $value

templates/scss.hbs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ ${{ name }}-map: (
2626
{{/ each }}
2727
);
2828

29-
{{# each codepoints }}
30-
{{# if ../selector }}
31-
{{ ../selector }}.{{ ../prefix }}-{{ @key }}:before {
32-
{{ else }}
33-
{{ tag }}.{{ ../prefix }}-{{ @key }}:before {
34-
{{/ if }}
35-
content: map-get(${{ ../name }}-map, "{{ @key }}");
29+
@each $name, $value in (${{ name }}-map) {
30+
{{# if selector }}
31+
{{ selector }}.{{ prefix }}-#{$name}:before {
32+
{{ else }}
33+
.{{ prefix }}-#{$name}:before {
34+
{{/ if }}
35+
content: $value;
36+
}
3637
}
37-
{{/ each }}

0 commit comments

Comments
 (0)