diff --git a/packages/bezier-icons/scripts/add-pr-description.js b/packages/bezier-icons/scripts/add-pr-description.js index 770987739f..73fc2e3055 100644 --- a/packages/bezier-icons/scripts/add-pr-description.js +++ b/packages/bezier-icons/scripts/add-pr-description.js @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import { getDescription } from './utils/getPrDescription' +const { getDescription } = require('./utils/getPrDescription.js') const { exec } = require('child_process') diff --git a/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.js b/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.js new file mode 100644 index 0000000000..b49dd06664 --- /dev/null +++ b/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.js @@ -0,0 +1,33 @@ +const fs = require('fs') +const path = require('path') + +const flushAndMakeIconsDirectory = (dir) => { + if (fs.existsSync(dir)) { + fs.rmSync(dir, { recursive: true, force: true }) + fs.mkdirSync(dir) + } +} + +const makeSvgFiles = (dir) => ([iconName, svgObject]) => { + const svgPath = path.resolve(dir, `${iconName}.svg`) + const { svg } = svgObject + + fs.writeFileSync(svgPath, svg, 'utf-8') +} + +const generateSVGFilesFromMap = (iconsJson, dir) => { + const svgByName = JSON.parse(fs.readFileSync(iconsJson, 'utf-8')) + + Object.entries(svgByName) + .forEach(makeSvgFiles(dir)) +} + + +const generateIconFiles = (iconsJson, dir) => { + flushAndMakeIconsDirectory(dir) + generateSVGFilesFromMap(iconsJson, dir) +} + +module.exports = { + generateIconFiles, +} diff --git a/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.ts b/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.js similarity index 92% rename from packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.ts rename to packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.js index 73cd87a05a..b9d0630a06 100644 --- a/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.ts +++ b/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.test.js @@ -1,13 +1,13 @@ -import fs from 'fs' -import path from 'path' +const fs = require('fs') +const path = require('path') -import { generateIconFiles } from './generateIconFilesFromJson' +const { generateIconFiles } = require('./generateIconFilesFromJson') jest.mock('fs', () => ({ existsSync: () => false, rmSync: () => {}, mkdirSync: () => {}, - readFileSync: (v: string) => v, + readFileSync: (v) => v, writeFileSync: jest.fn(), })) diff --git a/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.ts b/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.ts deleted file mode 100644 index 0fa5421dca..0000000000 --- a/packages/bezier-icons/scripts/utils/generateIconFilesFromJson.ts +++ /dev/null @@ -1,30 +0,0 @@ -import fs from 'fs' -import path from 'path' - -type SvgObject = Record - -const flushAndMakeIconsDirectory = (dir: string) => { - if (fs.existsSync(dir)) { - fs.rmSync(dir, { recursive: true, force: true }) - fs.mkdirSync(dir) - } -} - -const makeSvgFiles = (dir: string) => ([iconName, svgObject]: [string, SvgObject]) => { - const svgPath = path.resolve(dir, `${iconName}.svg`) - const { svg } = svgObject - - fs.writeFileSync(svgPath, svg, 'utf-8') -} - -const generateSVGFilesFromMap = (iconsJson: string, dir: string) => { - const svgByName: Record = JSON.parse(fs.readFileSync(iconsJson, 'utf-8')) - - Object.entries(svgByName) - .forEach(makeSvgFiles(dir)) -} - -export const generateIconFiles = (iconsJson: string, dir: string) => { - flushAndMakeIconsDirectory(dir) - generateSVGFilesFromMap(iconsJson, dir) -} diff --git a/packages/bezier-icons/scripts/utils/getPrDescription.ts b/packages/bezier-icons/scripts/utils/getPrDescription.js similarity index 73% rename from packages/bezier-icons/scripts/utils/getPrDescription.ts rename to packages/bezier-icons/scripts/utils/getPrDescription.js index d8327d42ea..83c69738b7 100644 --- a/packages/bezier-icons/scripts/utils/getPrDescription.ts +++ b/packages/bezier-icons/scripts/utils/getPrDescription.js @@ -1,20 +1,18 @@ -type IconsByStatus = Record - -const statusByKey: Record = { +const statusByKey = { M: 'modified', A: 'added', D: 'deleted', } -const emojiByKey: Record = { +const emojiByKey = { M: '✏️', A: '🆕', D: '🗑️', } -const getIconName = (path: string) => path.split('/').at(-1) +const getIconName = (path) => path.split('/').at(-1) -const getSummary = (iconsByStatus: IconsByStatus) => { +const getSummary = (iconsByStatus) => { let res = '' for (const [key, icons] of Object.entries(iconsByStatus)) { @@ -24,7 +22,7 @@ const getSummary = (iconsByStatus: IconsByStatus) => { return res } -const getTable = (iconsByStatus: IconsByStatus) => { +const getTable = (iconsByStatus) => { let res = '| Name | Status |\n|--|--|\n' for (const [key, icons] of Object.entries(iconsByStatus)) { @@ -36,7 +34,7 @@ const getTable = (iconsByStatus: IconsByStatus) => { return res } -export const getDescription = (gitLog: string) => { +const getDescription = (gitLog) => { let description = '### Icon update is ready to be merged! 🎉\n\n' const iconsByStatus = gitLog @@ -56,7 +54,7 @@ export const getDescription = (gitLog: string) => { acc[key].push(icon) } return acc - }, {} as Record) + }, {}) description += getSummary(iconsByStatus) description += '\n' @@ -64,3 +62,7 @@ export const getDescription = (gitLog: string) => { return description.trim() } + +module.exports = { + getDescription, +} diff --git a/packages/bezier-icons/scripts/utils/getPrDescription.test.ts b/packages/bezier-icons/scripts/utils/getPrDescription.test.js similarity index 88% rename from packages/bezier-icons/scripts/utils/getPrDescription.test.ts rename to packages/bezier-icons/scripts/utils/getPrDescription.test.js index 0f2425157c..ccd75f91ee 100644 --- a/packages/bezier-icons/scripts/utils/getPrDescription.test.ts +++ b/packages/bezier-icons/scripts/utils/getPrDescription.test.js @@ -1,4 +1,4 @@ -import { getDescription } from './getPrDescription' +const { getDescription } = require('./getPrDescription.js/index.js') describe('getDescription function', () => { test('generates pr description from git log', () => {