mirror of
https://github.com/enso-org/enso.git
synced 2024-11-23 08:08:34 +03:00
4a249688e8
Fixes #10668 Fixes #8484 Summary of changes: * `gui2` and `dashboard` are merged to `gui` directory. Various configs were merged (package.json, playwrigth, TS...). The src and e2e directories are split to `dashboard` and `project-view` for now. * E2E tests run two servers on different ports. The tests are organized in projects. This is also to be changed soon, as we plan to [use better mocking in GUI/ProjectView](#9726) * ESlint configs were merged to central `eslint.config.mjs`, and that file was moved to repository root. We kept the dashboard lints, but they can be relaxed. The dashboard code was changed to meet GUI lints. * Also, the versions of linter plugins were bumped, and code fixed. * The ide-desktop/client no longer has `dashboard` dependency - the only type used there was moved to common package. * `common` package moved to `app`.
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
import * as fs from 'node:fs/promises'
|
|
|
|
console.info('Reading icons from "./src/project-view/assets/icons.svg"...')
|
|
const icons = await fs.readFile('./src/project-view/assets/icons.svg', { encoding: 'utf-8' })
|
|
const iconNames = icons.match(/(?<=<symbol id=")[^"]+/gm) ?? []
|
|
|
|
// All generated files MUST follow Prettier formatting.
|
|
console.info('Writing icon names to "./src/project-view/util/iconList.json"...')
|
|
await fs.writeFile(
|
|
'./src/project-view/util/iconList.json',
|
|
JSON.stringify(iconNames, undefined, 2) + '\n',
|
|
)
|
|
console.info('Writing icon name type to "./src/project-view/util/iconName.ts"...')
|
|
await fs.writeFile(
|
|
'./src/project-view/util/iconName.ts',
|
|
`\
|
|
// Generated by \`scripts/generateIconMetadata.js\`.
|
|
// Please run \`npm run generate-metadata\` to regenerate this file whenever \`icons.svg\` is changed.
|
|
import iconNames from '@/util/iconList.json'
|
|
|
|
/** One of the possible icon names of SvgIcon component. */
|
|
export type Icon =
|
|
${iconNames?.map((name) => ` | '${name}'`).join('\n')}
|
|
|
|
export { iconNames }
|
|
|
|
const iconNamesSet = new Set(iconNames)
|
|
|
|
/** Check if string is one of the valid icon names for SvgIcon. */
|
|
export function isIconName(value: string): value is Icon {
|
|
return iconNamesSet.has(value)
|
|
}
|
|
`,
|
|
)
|
|
console.info('Done.')
|