Skip to content

Commit 7180380

Browse files
authored
chore: update gulpfile.js scripts to use ESM, bump plugin versions (#9420)
1 parent 1be1f20 commit 7180380

File tree

14 files changed

+682
-998
lines changed

14 files changed

+682
-998
lines changed

eslint.config.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ export default [
173173
},
174174
},
175175
{
176-
files: ['scripts/**/*.js', '*.config.js', 'wtr-utils.js', 'custom-rules/**/*.js'],
176+
files: ['scripts/**/*.js', '*.config.js', 'wtr-utils.js', 'custom-rules/**/*.js', 'packages/**/gulpfile.js'],
177177
languageOptions: {
178178
globals: {
179179
...globals.node,
@@ -183,17 +183,6 @@ export default [
183183
'no-console': 'off',
184184
},
185185
},
186-
{
187-
files: ['packages/**/gulpfile.cjs'],
188-
languageOptions: {
189-
globals: {
190-
...globals.node,
191-
},
192-
},
193-
rules: {
194-
'@typescript-eslint/no-require-imports': 'off',
195-
},
196-
},
197186
{
198187
files: ['packages/**/test/**', 'test/integration/**'],
199188
languageOptions: {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"typescript": "^5.8.3"
7777
},
7878
"resolutions": {
79+
"svg2ttf": "6.0.3",
7980
"playwright": "^1.52.0"
8081
},
8182
"lint-staged": {

packages/icons/gulpfile.cjs

Lines changed: 0 additions & 54 deletions
This file was deleted.

packages/icons/gulpfile.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import * as cheerio from 'cheerio';
2+
import { dest, src, task } from 'gulp';
3+
import concat from 'gulp-concat';
4+
import { gulpPlugin } from 'gulp-plugin-extras';
5+
import { basename } from 'path';
6+
7+
function createCopyright() {
8+
return `/**
9+
* @license
10+
* Copyright (c) 2015 - ${new Date().getFullYear()} Vaadin Ltd.
11+
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
12+
*/`;
13+
}
14+
15+
function transformIcon() {
16+
return gulpPlugin('gulp-transform-icon', (file) => {
17+
const id = basename(file.path, '.svg');
18+
const svg = cheerio.load(file.contents, { xmlMode: true })('svg');
19+
// Remove fill attributes.
20+
svg.children('[fill]').removeAttr('fill');
21+
// Add closing tags instead of self-closing.
22+
const content = svg.children().toString().replace(/"\/>/gu, '"></path>');
23+
console.warn(id, content);
24+
// Output the "meat" of the SVG as group element.
25+
file.contents = Buffer.from(`<g id="vaadin:${id}">${content}</g>`);
26+
return file;
27+
});
28+
}
29+
30+
function createIconset() {
31+
return gulpPlugin('gulp-create-iconset', (file) => {
32+
// Enclose all icons in a vaadin-iconset
33+
const contents = `${createCopyright()}
34+
import { Iconset } from '@vaadin/icon/vaadin-iconset.js';
35+
36+
const template = document.createElement('template');
37+
38+
template.innerHTML = \`<svg><defs>\n${file.contents}\n</defs></svg>\`;
39+
40+
Iconset.register('vaadin', 16, template);\n`;
41+
file.contents = Buffer.from(contents);
42+
return file;
43+
});
44+
}
45+
46+
task('icons', () => {
47+
return src(['assets/svg/*.svg'], { base: '.' })
48+
.pipe(transformIcon())
49+
.pipe(concat('vaadin-iconset.js'))
50+
.pipe(createIconset())
51+
.pipe(dest('.'));
52+
});

packages/icons/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"module": "vaadin-iconset.js",
2121
"type": "module",
2222
"scripts": {
23-
"icons": "gulp icons --gulpfile gulpfile.cjs"
23+
"icons": "gulp icons"
2424
},
2525
"files": [
2626
"assets/**/*",
@@ -37,10 +37,10 @@
3737
"@vaadin/icon": "25.0.0-alpha3"
3838
},
3939
"devDependencies": {
40-
"cheerio": "^1.0.0-rc.10",
41-
"gulp": "^5.0.0",
42-
"gulp-cli": "^3.0.0",
40+
"cheerio": "^1.0.0",
41+
"gulp": "^5.0.1",
42+
"gulp-cli": "^3.1.0",
4343
"gulp-concat": "^2.6.1",
44-
"gulp-modify": "^0.1.1"
44+
"gulp-plugin-extras": "^1.0.0"
4545
}
4646
}

packages/rich-text-editor/gulpfile.cjs renamed to packages/rich-text-editor/gulpfile.js

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
1-
'use strict';
1+
import fs from 'fs';
2+
import { dest, task } from 'gulp';
3+
import iconfont from 'gulp-iconfont';
24

3-
const gulp = require('gulp');
4-
const iconfont = require('gulp-iconfont');
5-
const fs = require('fs');
6-
7-
gulp.task('icons', (done) => {
5+
task('icons', (done) => {
86
let glyphs;
97
const fontName = 'vaadin-rte-icons';
108
const fileName = 'vaadin-rich-text-editor-icons';
119

12-
gulp
13-
.src('icons/*.svg')
14-
.pipe(
15-
iconfont({
16-
fontName: fileName,
17-
formats: ['woff'],
18-
fontHeight: 1000,
19-
ascent: 850,
20-
descent: 150,
21-
fixedWidth: true,
22-
normalize: true,
23-
timestamp: 1, // Truthy!
24-
}),
25-
)
10+
iconfont('icons/*.svg', {
11+
fontName: fileName,
12+
formats: ['woff'],
13+
fontHeight: 1000,
14+
ascent: 850,
15+
descent: 150,
16+
fixedWidth: true,
17+
normalize: true,
18+
timestamp: 1, // Truthy!
19+
})
2620
.on('glyphs', (glyphData) => {
2721
// Store for later use
2822
glyphs = glyphData;
2923
})
30-
.pipe(gulp.dest('.', { encoding: false }))
24+
.pipe(dest('.', { encoding: false }))
3125
.on('finish', () => {
3226
// Generate base64 version of the font
3327
const iconsWoff = fs.readFileSync('vaadin-rich-text-editor-icons.woff');

packages/rich-text-editor/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"module": "vaadin-rich-text-editor.js",
2121
"type": "module",
2222
"scripts": {
23-
"icons": "gulp icons --gulpfile gulpfile.cjs"
23+
"icons": "gulp icons"
2424
},
2525
"files": [
2626
"src",
@@ -54,9 +54,9 @@
5454
"@vaadin/chai-plugins": "25.0.0-alpha3",
5555
"@vaadin/test-runner-commands": "25.0.0-alpha3",
5656
"@vaadin/testing-helpers": "^2.0.0",
57-
"gulp": "^5.0.0",
58-
"gulp-cli": "^3.0.0",
59-
"gulp-iconfont": "^11.0.0",
57+
"gulp": "^5.0.1",
58+
"gulp-cli": "^3.1.0",
59+
"gulp-iconfont": "^12.0.0",
6060
"sinon": "^18.0.0"
6161
},
6262
"cvdlName": "vaadin-rich-text-editor",

packages/rich-text-editor/src/vaadin-rich-text-editor-icons.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ template.innerHTML = `
1616
<style>
1717
@font-face {
1818
font-family: 'vaadin-rte-icons';
19-
src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
19+
src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
2020
font-weight: normal;
2121
font-style: normal;
2222
}

0 commit comments

Comments
 (0)