From 321809716f16cce8245ff70c3611b8e859ca6b7e Mon Sep 17 00:00:00 2001 From: kamiazya Date: Wed, 25 Aug 2021 00:50:59 +0900 Subject: [PATCH 1/7] refactor: add core module clode #133 close #108 close #98 close #61 --- package.json | 2 +- packages/cli/rollup.config.js | 2 +- packages/cli/src/rediagramc.ts | 14 +--- packages/common/package.json | 10 ++- packages/common/rollup.config.js | 2 +- packages/common/src/config/beta1.ts | 38 +++++++++ packages/common/src/config/default.ts | 17 ++++ packages/common/src/config/index.ts | 103 +------------------------ packages/common/src/config/types.ts | 16 ++++ packages/common/src/config/utils.ts | 17 ++++ packages/common/src/index.ts | 1 + packages/common/src/rediagram/core.ts | 75 ++++++++++++++++++ packages/common/src/rediagram/index.ts | 2 + packages/common/src/rediagram/types.ts | 16 ++++ packages/rediagram/src/core.ts | 3 + packages/rediagram/src/formats.ts | 86 ++++++++------------- packages/rediagram/src/index.ts | 1 + yarn.lock | 68 +++++++++++++++- 18 files changed, 301 insertions(+), 172 deletions(-) create mode 100644 packages/common/src/config/beta1.ts create mode 100644 packages/common/src/config/default.ts create mode 100644 packages/common/src/config/types.ts create mode 100644 packages/common/src/config/utils.ts create mode 100644 packages/common/src/rediagram/core.ts create mode 100644 packages/common/src/rediagram/index.ts create mode 100644 packages/common/src/rediagram/types.ts create mode 100644 packages/rediagram/src/core.ts diff --git a/package.json b/package.json index ae5e8723..b65066ba 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "lerna": "lerna", "test": "jest", "prebuild": "lerna run --parallel clean", - "build": "yarn workspace @rediagram/common build && yarn workspace create-rediagram-project build && yarn workspace @rediagram/cdk build && yarn workspace @rediagram/cli build && yarn workspace rediagram build && yarn workspace @rediagram/aws build && yarn workspace @rediagram/gcp build && yarn workspace @rediagram/firebase build", + "build": "yarn workspace @rediagram/common build && yarn workspace create-rediagram-project build && yarn workspace @rediagram/cdk build && yarn workspace rediagram build && yarn workspace @rediagram/cli build && yarn workspace @rediagram/aws build && yarn workspace @rediagram/gcp build && yarn workspace @rediagram/firebase build", "prewatch": "yarn build", "watch": "lerna run --parallel watch", "rediagram": "yarn workspace @rediagram/cli start", diff --git a/packages/cli/rollup.config.js b/packages/cli/rollup.config.js index a2fc29d8..8654aaf9 100644 --- a/packages/cli/rollup.config.js +++ b/packages/cli/rollup.config.js @@ -8,6 +8,6 @@ export default { file: './lib/rediagramc.js', }, ], - external: ['commander', 'fast-glob', 'path', 'fs', 'sucrase/dist/register', '@rediagram/common', 'chokidar'], + external: ['commander', 'fast-glob', 'path', 'fs', 'sucrase/dist/register', 'rediagram', 'chokidar'], plugins: [typescript()], }; diff --git a/packages/cli/src/rediagramc.ts b/packages/cli/src/rediagramc.ts index 52d8c628..58d9025f 100644 --- a/packages/cli/src/rediagramc.ts +++ b/packages/cli/src/rediagramc.ts @@ -1,23 +1,15 @@ import cmd from 'commander'; import glob from 'fast-glob'; import chokidar from 'chokidar'; -import { CONFIG } from '@rediagram/common'; +import { Rediagram } from 'rediagram'; import { registerAll } from 'sucrase/dist/register'; -import path from 'path'; import pkg from './pkg'; type Options = { watch: boolean; }; -function runRediagram(src: string) { - // eslint-disable-next-line no-console - console.log(src); - const resolved = path.resolve(src); - // eslint-disable-next-line global-require, import/no-dynamic-require - require(resolved); - delete require.cache[resolved]; -} +const runRediagram = Rediagram.run.bind(Rediagram); cmd .name('rediagramc') @@ -29,7 +21,7 @@ cmd const paths = pattarns.length >= 1 ? pattarns - : [...CONFIG.scope.getIncludesPattarns(), ...CONFIG.scope.getExcludesPattarns().map((p) => `!${p}`)]; + : [...Rediagram.config.scope.includes, ...Rediagram.config.scope.excludes.map((p) => `!${p}`)]; if (this.watch) { chokidar.watch(paths).on('add', runRediagram).on('change', runRediagram); } else { diff --git a/packages/common/package.json b/packages/common/package.json index ae25ffd7..6c462a48 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -27,14 +27,18 @@ "build": "rollup -c && prettier --write './lib/*'", "watch": "tsc --watch" }, + "dependencies": { + "@ts-graphviz/node": "^0.4.0", + "@ts-graphviz/react": "^0.9.0", + "cosmiconfig": "^7.0.1", + "fs-extra": "^10.0.0", + "tslog": "^3.2.1" + }, "devDependencies": { "rollup": "^2.55.0", "rollup-plugin-delete": "^2.0.0", "rollup-plugin-dts": "^3.0.2", "rollup-plugin-typescript2": "^0.30.0", "typescript": "^4.0.2" - }, - "dependencies": { - "cosmiconfig": "^7.0.0" } } diff --git a/packages/common/rollup.config.js b/packages/common/rollup.config.js index 096b0384..8c5e8c99 100644 --- a/packages/common/rollup.config.js +++ b/packages/common/rollup.config.js @@ -12,7 +12,7 @@ const options = [ file: './lib/index.js', }, ], - external: ['path', 'cosmiconfig'], + external: ['path', 'cosmiconfig', 'fs-extra', 'tslog', '@ts-graphviz/react', '@ts-graphviz/node'], plugins: [typescript()], }, { diff --git a/packages/common/src/config/beta1.ts b/packages/common/src/config/beta1.ts new file mode 100644 index 00000000..361f2f86 --- /dev/null +++ b/packages/common/src/config/beta1.ts @@ -0,0 +1,38 @@ +/* eslint-disable @typescript-eslint/no-namespace */ +import path from 'path'; +import { Format } from '@ts-graphviz/node'; +import { RediagramGlobalConfig } from './types'; + +export namespace beta1 { + export const version = 'beta1'; + + interface Config { + version: typeof version; + includes?: string[]; + excludes?: string[]; + output?: { + dir?: string; + type?: Format; + }; + dot?: { + timeout?: number; + }; + } + + export function load(filepath: string, data: Config): RediagramGlobalConfig { + return { + filepath, + output: { + dir: path.resolve(path.dirname(filepath), data.output?.dir ?? '.'), + format: data.output?.type ?? 'png', + }, + scope: { + includes: data.includes ?? ['**/*.rediagram.{jsx,tsx}'], + excludes: data.excludes ?? ['**/node_modules/**/*'], + }, + dot: { + timeout: data.dot?.timeout ?? 10_000, + }, + }; + } +} diff --git a/packages/common/src/config/default.ts b/packages/common/src/config/default.ts new file mode 100644 index 00000000..0af1b108 --- /dev/null +++ b/packages/common/src/config/default.ts @@ -0,0 +1,17 @@ +import { RediagramGlobalConfig } from './types'; + +export function createDefaultConfig(): RediagramGlobalConfig { + return { + filepath: null, + scope: { + includes: ['**/*.rediagram.{jsx,tsx}'], + excludes: ['**/node_modules/**/*'], + }, + output: { + format: 'png', + }, + dot: { + timeout: 10_000, + }, + }; +} diff --git a/packages/common/src/config/index.ts b/packages/common/src/config/index.ts index 385c52cd..0851813d 100644 --- a/packages/common/src/config/index.ts +++ b/packages/common/src/config/index.ts @@ -1,99 +1,4 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable import/no-dynamic-require */ -/* eslint-disable global-require */ -/* eslint-disable @typescript-eslint/ban-types */ -/* eslint-disable @typescript-eslint/no-namespace */ -/* eslint-disable no-useless-constructor */ -/* eslint-disable max-classes-per-file */ -import path from 'path'; -import { cosmiconfigSync } from 'cosmiconfig'; -import { Beta1 } from './version'; - -export class OutputConfig { - constructor(private readonly data?: { dir?: string }) {} - - public getDir(): string { - return this.data?.dir ?? process.cwd(); - } -} - -export class ScopeConfig { - constructor(private readonly data?: { includes?: string[]; excludes?: string[] }) {} - - public getIncludesPattarns(): string[] { - return this.data?.includes ?? ['**/*.rediagram.{jsx,tsx}']; - } - - public getExcludesPattarns(): string[] { - return this.data?.excludes ?? ['**/node_modules/**/*']; - } -} - -export class DotConfig { - constructor(private readonly data?: { timeout?: number }) {} - - public getTimeout(): number { - return this.data?.timeout ?? 10_000; - } -} - -export type RediagramGlobalConfig = { - readonly filepath: string | null; - readonly output: OutputConfig; - readonly scope: ScopeConfig; - readonly dot: DotConfig; -}; - -const MODULE_NAME = 'rediagram'; - -function createDefaultConfig(): RediagramGlobalConfig { - return { - filepath: null, - scope: new ScopeConfig(), - output: new OutputConfig(), - dot: new DotConfig(), - }; -} - -namespace beta1 { - type Config = { - version: Beta1; - includes?: string[]; - excludes?: string[]; - output?: { - dir?: string; - }; - dot?: { - timeout?: number; - }; - }; - - export function load(filepath: string, data: Config): RediagramGlobalConfig { - return { - filepath, - output: new OutputConfig({ - dir: path.resolve(path.dirname(filepath), data.output?.dir ?? '.'), - }), - scope: new ScopeConfig({ - includes: data.includes, - excludes: data.excludes, - }), - dot: new DotConfig({ - timeout: data.dot?.timeout, - }), - }; - } -} - -function loadConfig(): RediagramGlobalConfig { - const { search } = cosmiconfigSync(MODULE_NAME); - const result = search(); - if (result !== null) { - if (result.config.version === 'beta1') { - return beta1.load(result.filepath, result.config); - } - } - return createDefaultConfig(); -} - -export const CONFIG = loadConfig(); +export * from './beta1'; +export * from './default'; +export * from './types'; +export * from './utils'; diff --git a/packages/common/src/config/types.ts b/packages/common/src/config/types.ts new file mode 100644 index 00000000..5ff7fd16 --- /dev/null +++ b/packages/common/src/config/types.ts @@ -0,0 +1,16 @@ +import { Format } from '@ts-graphviz/node'; + +export type RediagramGlobalConfig = { + filepath: string | null; + scope: Readonly<{ + includes: ReadonlyArray; + excludes: ReadonlyArray; + }>; + output: Readonly<{ + dir?: string; + format: Format; + }>; + dot: Readonly<{ + timeout: number; + }>; +}; diff --git a/packages/common/src/config/utils.ts b/packages/common/src/config/utils.ts new file mode 100644 index 00000000..5d8cba9e --- /dev/null +++ b/packages/common/src/config/utils.ts @@ -0,0 +1,17 @@ +import { cosmiconfigSync } from 'cosmiconfig'; +import { RediagramGlobalConfig } from './types'; +import { beta1 } from './beta1'; +import { createDefaultConfig } from './default'; + +const MODULE_NAME = 'rediagram'; + +export function loadConfigfile(): RediagramGlobalConfig { + const { search } = cosmiconfigSync(MODULE_NAME); + const result = search(); + switch (result?.config.version) { + case beta1.version: + return beta1.load(result.filepath, result.config); + default: + return createDefaultConfig(); + } +} diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index f03c2281..92638618 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -1 +1,2 @@ export * from './config'; +export * from './rediagram'; diff --git a/packages/common/src/rediagram/core.ts b/packages/common/src/rediagram/core.ts new file mode 100644 index 00000000..c0e3e357 --- /dev/null +++ b/packages/common/src/rediagram/core.ts @@ -0,0 +1,75 @@ +import path from 'path'; +import { ensureDir } from 'fs-extra'; +import { Logger } from 'tslog'; +import { ReactElement } from 'react'; +import { renderToDot } from '@ts-graphviz/react'; +import { exportToFile } from '@ts-graphviz/node'; +import { RediagramGlobalConfig, loadConfigfile } from '../config'; +import { RenderOption } from './types'; + +export class RediagramCore { + public static readonly MODULE_NAME = 'rediagram'; + + private static instance?: RediagramCore; + + public logger = new Logger({ + type: 'pretty', + name: 'rediagram', + displayDateTime: false, + displayFilePath: 'hidden', + displayFunctionName: false, + }); + + public static create(): RediagramCore { + if (!this.instance) { + const config = loadConfigfile(); + this.instance = new RediagramCore(config); + } + return this.instance; + } + + public readonly config: Readonly; + + constructor({ ...config }: RediagramGlobalConfig) { + this.config = Object.freeze(config); + + this.logger.info( + 'Config file is', + config.filepath ? `"./${path.relative(process.cwd(), config.filepath)}".` : 'not exist.', + ); + } + + public async render(element: ReactElement, options: RenderOption): Promise { + const dot = renderToDot(element); + const dir = options.dir ?? this.config.output.dir; + const format = options.format ?? this.config.output.format; + const output = path.format({ + dir, + name: options.name, + ext: `.${format}`, + }); + if (dir !== undefined) { + await ensureDir(dir); + } + this.logger.info('Output', path.relative(process.cwd(), output)); + await exportToFile(dot, { + format, + output, + childProcessOptions: { + timeout: this.config.dot.timeout, + }, + }); + } + + public async run(src: string): Promise { + try { + this.logger.info('Runing', src); + const resolved = path.resolve(src); + // eslint-disable-next-line global-require, import/no-dynamic-require + require(resolved); + delete require.cache[resolved]; + } catch (err) { + this.logger.error(err); + } + } +} diff --git a/packages/common/src/rediagram/index.ts b/packages/common/src/rediagram/index.ts new file mode 100644 index 00000000..7627d800 --- /dev/null +++ b/packages/common/src/rediagram/index.ts @@ -0,0 +1,2 @@ +export * from './types'; +export * from './core'; diff --git a/packages/common/src/rediagram/types.ts b/packages/common/src/rediagram/types.ts new file mode 100644 index 00000000..4fc90002 --- /dev/null +++ b/packages/common/src/rediagram/types.ts @@ -0,0 +1,16 @@ +import { Format } from '@ts-graphviz/node'; + +export type RenderOption = { + /** + * Output destination directory. + */ + dir?: string; + /** + * Output file name. + */ + name: string; + /** + * Output file format. + */ + format?: Format; +}; diff --git a/packages/rediagram/src/core.ts b/packages/rediagram/src/core.ts new file mode 100644 index 00000000..424e80d4 --- /dev/null +++ b/packages/rediagram/src/core.ts @@ -0,0 +1,3 @@ +import { RediagramCore } from '@rediagram/common'; + +export const Rediagram = RediagramCore.create(); diff --git a/packages/rediagram/src/formats.ts b/packages/rediagram/src/formats.ts index 5d5eab1e..06734d98 100644 --- a/packages/rediagram/src/formats.ts +++ b/packages/rediagram/src/formats.ts @@ -1,10 +1,7 @@ import { ReactElement } from 'react'; -import { renderToDot } from '@ts-graphviz/react'; -import { ChildProcessOptions, exportToFile, Format } from '@ts-graphviz/node'; -import { CONFIG } from '@rediagram/common'; -import { ensureDir } from 'fs-extra'; import path from 'path'; import caller from 'caller'; +import { Rediagram } from './core'; export type RenderOption = { /** @@ -26,30 +23,6 @@ type InternalRenderOption = RenderOption & { _caller?: string; }; -async function render( - element: ReactElement, - { - name, - dir, - format, - dotOptions, - }: Required & { - format: Format; - dotOptions: ChildProcessOptions; - }, -): Promise { - const dot = renderToDot(element); - const output = path.format({ dir, name, ext: `.${format}` }); - if (dir !== undefined) { - await ensureDir(dir); - } - await exportToFile(dot, { - format, - output, - childProcessOptions: dotOptions, - }); -} - /** * Output PNG image. */ @@ -58,15 +31,16 @@ export async function PNG( element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { - const p = path.parse(_caller); - await render(element, { - format: 'png', - name: name ?? p.name, - dir: dir ?? CONFIG.output.getDir() ?? p.dir, - dotOptions: { - timeout: CONFIG.dot?.getTimeout(), - }, - }); + try { + const p = path.parse(_caller); + await Rediagram.render(element, { + format: 'png', + name: name ?? p.name, + dir: dir ?? Rediagram.config.output.dir ?? p.dir, + }); + } catch (err) { + Rediagram.logger.error(err); + } } /** @@ -77,15 +51,16 @@ export async function SVG( element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { - const p = path.parse(_caller); - await render(element, { - format: 'svg', - name: name ?? p.name, - dir: dir ?? CONFIG.output.getDir() ?? p.dir, - dotOptions: { - timeout: CONFIG.dot?.getTimeout(), - }, - }); + try { + const p = path.parse(_caller); + await Rediagram.render(element, { + format: 'svg', + name: name ?? p.name, + dir: dir ?? Rediagram.config.output.dir ?? p.dir, + }); + } catch (err) { + Rediagram.logger.error(err); + } } /** @@ -96,13 +71,14 @@ export async function PDF( element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { - const p = path.parse(_caller); - await render(element, { - format: 'pdf', - name: name ?? p.name, - dir: dir ?? CONFIG.output.getDir() ?? p.dir, - dotOptions: { - timeout: CONFIG.dot?.getTimeout(), - }, - }); + try { + const p = path.parse(_caller); + await Rediagram.render(element, { + format: 'pdf', + name: name ?? p.name, + dir: dir ?? Rediagram.config.output.dir ?? p.dir, + }); + } catch (err) { + Rediagram.logger.error(err); + } } diff --git a/packages/rediagram/src/index.ts b/packages/rediagram/src/index.ts index a5e03481..fb42ec40 100644 --- a/packages/rediagram/src/index.ts +++ b/packages/rediagram/src/index.ts @@ -2,3 +2,4 @@ export * from './components/Diagram'; export * from './components/TextBox'; export * from './components/GeneralIcon'; export * from './formats'; +export * from './core'; diff --git a/yarn.lock b/yarn.lock index 36a2f370..fa7cee53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2894,6 +2894,13 @@ dependencies: tmp-promise "^3.0.2" +"@ts-graphviz/node@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@ts-graphviz/node/-/node-0.4.0.tgz#08597d80b4834bc7ba25c8e2eb5bc2f165a1b719" + integrity sha512-4lrijHvVTuCIF5g42/jqN4w5BgrDdE1ZR4zUHFU6c9E83EJF5Wv9+YPzjuHHi+jNEmrrdeNR/ZV/CLjIh8Y2pw== + dependencies: + tmp-promise "^3.0.2" + "@ts-graphviz/react@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.7.0.tgz#0064750078dc0f4c1cf2531525a74a588d01f9ac" @@ -2902,6 +2909,16 @@ prop-types "^15.7.2" react-reconciler "^0.25.1" +"@ts-graphviz/react@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.9.0.tgz#d95e6c3ad0f133fe5dbf46b45b0b1543ab4c079f" + integrity sha512-+5TQyy1BpStu9jDc3Wf5rN6m8lyTtou0SbRAUv/epWrzpFpGgm5CtYk5LlawvH5l5lOuptTM9kmVHQb9I3qIOA== + dependencies: + prop-types "^15.7.2" + react-dom "^17.0.2" + react-reconciler "^0.26.2" + ts-graphviz "^0.16.0" + "@tsconfig/docusaurus@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-1.0.2.tgz#400ef146d3e7da2f78bf9749c943d123dce5fd97" @@ -5034,6 +5051,17 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -11283,6 +11311,15 @@ react-dom@^16.13.1, react-dom@^16.8.4: prop-types "^15.6.2" scheduler "^0.19.1" +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + react-error-boundary@^3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b" @@ -11359,6 +11396,15 @@ react-reconciler@^0.25.1: prop-types "^15.6.2" scheduler "^0.19.1" +react-reconciler@^0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.2.tgz#bbad0e2d1309423f76cf3c3309ac6c96e05e9d91" + integrity sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" @@ -12057,6 +12103,14 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -12441,7 +12495,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -13221,6 +13275,11 @@ ts-graphviz@^0.13.1: dependencies: tslib "^2.0.0" +ts-graphviz@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-0.16.0.tgz#7a6e6b5434854bc90ab861e70d5af0d6d20729a7" + integrity sha512-3fTPO+G6bSQNvMh/XQQzyiahVLMMj9kqYO99ivUraNJ3Wp05HZOOVtRhi6w9hq7+laP1MKHjLBtGWqTeb1fcpg== + ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" @@ -13278,6 +13337,13 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tslog@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/tslog/-/tslog-3.2.1.tgz#37df1301211901eb65fd61b9ad7c8554264a7699" + integrity sha512-m8wAtox9wt+h6UDcN1WAQnYwRDOGhMIOp+GAuuufo8T8qKuu726i2W3r47BrA69goVOwgUkp5YwDTvAxTktvPg== + dependencies: + source-map-support "^0.5.19" + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" From f22f9a009500de1983878f3e436d8cf3a800e9d5 Mon Sep 17 00:00:00 2001 From: kamiazya Date: Wed, 25 Aug 2021 18:33:46 +0900 Subject: [PATCH 2/7] chaos: fix dependencies --- docker/package.json | 4 +-- examples/gallery/package.json | 4 +-- packages/aws/package.json | 4 +-- packages/cdk/package.json | 4 +-- packages/cli/package.json | 4 +-- packages/cli/src/rediagramc.ts | 23 ++++++++++--- packages/common/src/index.ts | 1 + packages/common/src/logger.ts | 11 ++++++ packages/common/src/rediagram/core.ts | 25 ++++---------- .../templates/typescript/package.json | 4 +-- packages/firebase/package.json | 4 +-- packages/gcp/package.json | 4 +-- packages/rediagram/package.json | 6 ++-- packages/rediagram/src/formats.ts | 9 +++-- yarn.lock | 34 +------------------ 15 files changed, 64 insertions(+), 77 deletions(-) create mode 100644 packages/common/src/logger.ts diff --git a/docker/package.json b/docker/package.json index 43895911..22c9a791 100644 --- a/docker/package.json +++ b/docker/package.json @@ -21,11 +21,11 @@ "dependencies": { "@rediagram/aws": "^0.4.2", "@rediagram/cli": "^0.1.5", - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "^0.2.5", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/react": "^16.9.41", diff --git a/examples/gallery/package.json b/examples/gallery/package.json index 3ced450c..e93622d3 100644 --- a/examples/gallery/package.json +++ b/examples/gallery/package.json @@ -12,12 +12,12 @@ "@rediagram/cli": "^0.1.5", "@rediagram/firebase": "^0.0.1", "@rediagram/gcp": "^0.3.1", - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "^0.2.5", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/node": "^16.4.5", diff --git a/packages/aws/package.json b/packages/aws/package.json index 90e221b0..dc004356 100644 --- a/packages/aws/package.json +++ b/packages/aws/package.json @@ -31,12 +31,12 @@ "@rediagram/cdk": "^0.3.1" }, "peerDependencies": { - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "*", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/node": "^16.4.5", diff --git a/packages/cdk/package.json b/packages/cdk/package.json index f37115cd..8cb7b7b3 100644 --- a/packages/cdk/package.json +++ b/packages/cdk/package.json @@ -28,10 +28,10 @@ "watch": "tsc --watch" }, "peerDependencies": { - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/prop-types": "^15.7.3", diff --git a/packages/cli/package.json b/packages/cli/package.json index e91b7335..8c2c848d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -32,7 +32,7 @@ "dependencies": { "@rediagram/aws": "^0.4.2", "@rediagram/common": "^0.0.3", - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "@types/node": "^16.4.5", "@types/prop-types": "^15.7.3", "@types/react": "^16.9.35", @@ -45,7 +45,7 @@ "react-dom": "^16.13.1", "rediagram": "^0.2.5", "sucrase": "^3.16.0", - "ts-graphviz": "^0.13.1", + "ts-graphviz": "^0.16.0", "typescript": "^4.0.2" }, "devDependencies": { diff --git a/packages/cli/src/rediagramc.ts b/packages/cli/src/rediagramc.ts index 58d9025f..22f44936 100644 --- a/packages/cli/src/rediagramc.ts +++ b/packages/cli/src/rediagramc.ts @@ -9,10 +9,12 @@ type Options = { watch: boolean; }; -const runRediagram = Rediagram.run.bind(Rediagram); +const NAME = 'rediagramc'; + +const logger = Rediagram.logger.getChildLogger({ name: NAME }); cmd - .name('rediagramc') + .name(NAME) .version(pkg.version) .arguments('[pattarns...]') .option('-w, --watch', 'Watch files for changes and rerun rediagram related to changed files.', false) @@ -23,14 +25,27 @@ cmd ? pattarns : [...Rediagram.config.scope.includes, ...Rediagram.config.scope.excludes.map((p) => `!${p}`)]; if (this.watch) { - chokidar.watch(paths).on('add', runRediagram).on('change', runRediagram); + chokidar + .watch(paths) + .on('add', async (src) => { + logger.info('Added', src); + await Rediagram.run(src); + }) + .on('change', async (src) => { + logger.info('Changed', src); + await Rediagram.run(src); + }); } else { const sources = await glob(paths, { dot: true, extglob: true, onlyFiles: true, }); - sources.forEach(runRediagram); + sources.forEach(async (src) => { + logger.info('Start', src); + await Rediagram.run(src); + logger.info('End', src); + }); } }) .parse(process.argv); diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 92638618..9e25d1c7 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -1,2 +1,3 @@ export * from './config'; export * from './rediagram'; +export { Logger } from './logger'; diff --git a/packages/common/src/logger.ts b/packages/common/src/logger.ts new file mode 100644 index 00000000..ceea4087 --- /dev/null +++ b/packages/common/src/logger.ts @@ -0,0 +1,11 @@ +import { Logger as TSLogLogger } from 'tslog'; + +export type Logger = TSLogLogger; + +export const LOGGER = new TSLogLogger({ + type: 'pretty', + name: 'root', + displayDateTime: false, + displayFilePath: 'hidden', + displayFunctionName: false, +}); diff --git a/packages/common/src/rediagram/core.ts b/packages/common/src/rediagram/core.ts index c0e3e357..0fc10bec 100644 --- a/packages/common/src/rediagram/core.ts +++ b/packages/common/src/rediagram/core.ts @@ -1,10 +1,10 @@ import path from 'path'; import { ensureDir } from 'fs-extra'; -import { Logger } from 'tslog'; import { ReactElement } from 'react'; import { renderToDot } from '@ts-graphviz/react'; import { exportToFile } from '@ts-graphviz/node'; -import { RediagramGlobalConfig, loadConfigfile } from '../config'; +import { loadConfigfile, RediagramGlobalConfig } from '../config'; +import { LOGGER, Logger } from '../logger'; import { RenderOption } from './types'; export class RediagramCore { @@ -12,13 +12,7 @@ export class RediagramCore { private static instance?: RediagramCore; - public logger = new Logger({ - type: 'pretty', - name: 'rediagram', - displayDateTime: false, - displayFilePath: 'hidden', - displayFunctionName: false, - }); + public readonly logger: Logger = LOGGER.getChildLogger({ name: RediagramCore.MODULE_NAME }); public static create(): RediagramCore { if (!this.instance) { @@ -30,16 +24,11 @@ export class RediagramCore { public readonly config: Readonly; - constructor({ ...config }: RediagramGlobalConfig) { - this.config = Object.freeze(config); - - this.logger.info( - 'Config file is', - config.filepath ? `"./${path.relative(process.cwd(), config.filepath)}".` : 'not exist.', - ); + constructor(config: RediagramGlobalConfig) { + this.config = Object.freeze({ ...config }); } - public async render(element: ReactElement, options: RenderOption): Promise { + public async render(element: ReactElement, options: RenderOption): Promise { const dot = renderToDot(element); const dir = options.dir ?? this.config.output.dir; const format = options.format ?? this.config.output.format; @@ -51,7 +40,6 @@ export class RediagramCore { if (dir !== undefined) { await ensureDir(dir); } - this.logger.info('Output', path.relative(process.cwd(), output)); await exportToFile(dot, { format, output, @@ -59,6 +47,7 @@ export class RediagramCore { timeout: this.config.dot.timeout, }, }); + return output; } public async run(src: string): Promise { diff --git a/packages/create-rediagram-project/templates/typescript/package.json b/packages/create-rediagram-project/templates/typescript/package.json index 4d92e4e0..c507f38d 100644 --- a/packages/create-rediagram-project/templates/typescript/package.json +++ b/packages/create-rediagram-project/templates/typescript/package.json @@ -10,11 +10,11 @@ "dependencies": { "@rediagram/aws": "^0.2.4", "@rediagram/gcp": "^0.1.3", - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "react": "^16.14.0", "react-dom": "^16.14.0", "rediagram": "^0.2.2", - "ts-graphviz": "^0.13.2" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@rediagram/cli": "^0.1.0", diff --git a/packages/firebase/package.json b/packages/firebase/package.json index dcc7859d..05f760ad 100644 --- a/packages/firebase/package.json +++ b/packages/firebase/package.json @@ -31,12 +31,12 @@ "@rediagram/cdk": "^0.3.1" }, "peerDependencies": { - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "*", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/node": "^16.4.5", diff --git a/packages/gcp/package.json b/packages/gcp/package.json index af84ed24..a337caf3 100644 --- a/packages/gcp/package.json +++ b/packages/gcp/package.json @@ -31,12 +31,12 @@ "@rediagram/cdk": "^0.3.1" }, "peerDependencies": { - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "*", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/node": "^16.4.5", diff --git a/packages/rediagram/package.json b/packages/rediagram/package.json index 85dff02a..040e3d9a 100644 --- a/packages/rediagram/package.json +++ b/packages/rediagram/package.json @@ -25,11 +25,11 @@ "watch": "tsc --watch" }, "peerDependencies": { - "@ts-graphviz/react": "^0.7.0", + "@ts-graphviz/react": "^0.9.0", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", - "ts-graphviz": "^0.13.1" + "ts-graphviz": "^0.16.0" }, "devDependencies": { "@types/caller": "^1.0.0", @@ -47,7 +47,7 @@ "dependencies": { "@rediagram/cdk": "^0.3.1", "@rediagram/common": "^0.0.3", - "@ts-graphviz/node": "^0.3.0", + "@ts-graphviz/node": "^0.4.0", "caller": "^1.0.1", "fs-extra": "^9.0.1" } diff --git a/packages/rediagram/src/formats.ts b/packages/rediagram/src/formats.ts index 06734d98..55dcb906 100644 --- a/packages/rediagram/src/formats.ts +++ b/packages/rediagram/src/formats.ts @@ -33,11 +33,12 @@ export async function PNG( ): Promise { try { const p = path.parse(_caller); - await Rediagram.render(element, { + const output = await Rediagram.render(element, { format: 'png', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, }); + Rediagram.logger.info('Output', path.relative(process.cwd(), output)); } catch (err) { Rediagram.logger.error(err); } @@ -53,11 +54,12 @@ export async function SVG( ): Promise { try { const p = path.parse(_caller); - await Rediagram.render(element, { + const output = await Rediagram.render(element, { format: 'svg', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, }); + Rediagram.logger.info('Output', path.relative(process.cwd(), output)); } catch (err) { Rediagram.logger.error(err); } @@ -73,11 +75,12 @@ export async function PDF( ): Promise { try { const p = path.parse(_caller); - await Rediagram.render(element, { + const output = await Rediagram.render(element, { format: 'pdf', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, }); + Rediagram.logger.info('Output', path.relative(process.cwd(), output)); } catch (err) { Rediagram.logger.error(err); } diff --git a/yarn.lock b/yarn.lock index fa7cee53..28a5dfbf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2887,13 +2887,6 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== -"@ts-graphviz/node@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@ts-graphviz/node/-/node-0.3.0.tgz#89e77d5331a0438fceeb47b1d8f9ff3199735a04" - integrity sha512-Gsk9FHYTAs4aKzIR5tGOL3FI8WQUlJ3pNEgCSLvEWIEy0jSgllnl4hpFsODy84CIovUWIHPXkCYliCfo1YtePg== - dependencies: - tmp-promise "^3.0.2" - "@ts-graphviz/node@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@ts-graphviz/node/-/node-0.4.0.tgz#08597d80b4834bc7ba25c8e2eb5bc2f165a1b719" @@ -2901,14 +2894,6 @@ dependencies: tmp-promise "^3.0.2" -"@ts-graphviz/react@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.7.0.tgz#0064750078dc0f4c1cf2531525a74a588d01f9ac" - integrity sha512-qcsTulwhUob8V8pvTp2SIEWyWiAYddvIfr3eyohDqZFzg2C1Jz9LCmkoeI1k4DftWsedrf+aWVGiUphyqiz3SQ== - dependencies: - prop-types "^15.7.2" - react-reconciler "^0.25.1" - "@ts-graphviz/react@^0.9.0": version "0.9.0" resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.9.0.tgz#d95e6c3ad0f133fe5dbf46b45b0b1543ab4c079f" @@ -11386,16 +11371,6 @@ react-loadable@^5.5.0: dependencies: prop-types "^15.5.0" -react-reconciler@^0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.25.1.tgz#f9814d59d115e1210762287ce987801529363aaa" - integrity sha512-R5UwsIvRcSs3w8n9k3tBoTtUHdVhu9u84EG7E5M0Jk9F5i6DA1pQzPfUZd6opYWGy56MJOtV3VADzy6DRwYDjw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - react-reconciler@^0.26.2: version "0.26.2" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.26.2.tgz#bbad0e2d1309423f76cf3c3309ac6c96e05e9d91" @@ -13268,13 +13243,6 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -ts-graphviz@^0.13.1: - version "0.13.2" - resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-0.13.2.tgz#b96c680466b427ae8e0d42a45cbf476ce6fc4e27" - integrity sha512-ykQpHPT1RVNzv/ZN/zwawDIFHi8eiEl+H3x3B+ZOQ9eMUaosVMd1ePaf/CA9b15iix48cTa7RcXcWvI/ZgoNKw== - dependencies: - tslib "^2.0.0" - ts-graphviz@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-0.16.0.tgz#7a6e6b5434854bc90ab861e70d5af0d6d20729a7" @@ -13332,7 +13300,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: +tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== From a3f0d4a1bf5cf5b7f5202055e1ac8f26c1b170d4 Mon Sep 17 00:00:00 2001 From: kamiazya Date: Wed, 25 Aug 2021 19:36:33 +0900 Subject: [PATCH 3/7] refactor: improve --- packages/common/src/config/beta1.ts | 4 +- packages/common/src/config/default.ts | 4 +- packages/common/src/config/index.ts | 2 - packages/common/src/config/types.ts | 16 ------- packages/common/src/config/utils.ts | 17 ------- packages/common/src/{rediagram => }/core.ts | 25 +++------- packages/common/src/create-rediagram-core.ts | 15 ++++++ packages/common/src/index.ts | 4 +- packages/common/src/load-config.ts | 15 ++++++ packages/common/src/rediagram/index.ts | 2 - packages/common/src/rediagram/types.ts | 16 ------- .../common/src/{logger.ts => root-logger.ts} | 4 +- packages/common/src/types.ts | 47 +++++++++++++++++++ packages/rediagram/src/core.ts | 4 +- 14 files changed, 92 insertions(+), 83 deletions(-) delete mode 100644 packages/common/src/config/types.ts delete mode 100644 packages/common/src/config/utils.ts rename packages/common/src/{rediagram => }/core.ts (63%) create mode 100644 packages/common/src/create-rediagram-core.ts create mode 100644 packages/common/src/load-config.ts delete mode 100644 packages/common/src/rediagram/index.ts delete mode 100644 packages/common/src/rediagram/types.ts rename packages/common/src/{logger.ts => root-logger.ts} (69%) create mode 100644 packages/common/src/types.ts diff --git a/packages/common/src/config/beta1.ts b/packages/common/src/config/beta1.ts index 361f2f86..ffd1adae 100644 --- a/packages/common/src/config/beta1.ts +++ b/packages/common/src/config/beta1.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-namespace */ import path from 'path'; import { Format } from '@ts-graphviz/node'; -import { RediagramGlobalConfig } from './types'; +import { RediagramConfig } from '../types'; export namespace beta1 { export const version = 'beta1'; @@ -19,7 +19,7 @@ export namespace beta1 { }; } - export function load(filepath: string, data: Config): RediagramGlobalConfig { + export function load(filepath: string, data: Config): RediagramConfig { return { filepath, output: { diff --git a/packages/common/src/config/default.ts b/packages/common/src/config/default.ts index 0af1b108..f4533eaa 100644 --- a/packages/common/src/config/default.ts +++ b/packages/common/src/config/default.ts @@ -1,6 +1,6 @@ -import { RediagramGlobalConfig } from './types'; +import { RediagramConfig } from '../types'; -export function createDefaultConfig(): RediagramGlobalConfig { +export function createDefaultConfig(): RediagramConfig { return { filepath: null, scope: { diff --git a/packages/common/src/config/index.ts b/packages/common/src/config/index.ts index 0851813d..f3c66ae8 100644 --- a/packages/common/src/config/index.ts +++ b/packages/common/src/config/index.ts @@ -1,4 +1,2 @@ export * from './beta1'; export * from './default'; -export * from './types'; -export * from './utils'; diff --git a/packages/common/src/config/types.ts b/packages/common/src/config/types.ts deleted file mode 100644 index 5ff7fd16..00000000 --- a/packages/common/src/config/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Format } from '@ts-graphviz/node'; - -export type RediagramGlobalConfig = { - filepath: string | null; - scope: Readonly<{ - includes: ReadonlyArray; - excludes: ReadonlyArray; - }>; - output: Readonly<{ - dir?: string; - format: Format; - }>; - dot: Readonly<{ - timeout: number; - }>; -}; diff --git a/packages/common/src/config/utils.ts b/packages/common/src/config/utils.ts deleted file mode 100644 index 5d8cba9e..00000000 --- a/packages/common/src/config/utils.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { cosmiconfigSync } from 'cosmiconfig'; -import { RediagramGlobalConfig } from './types'; -import { beta1 } from './beta1'; -import { createDefaultConfig } from './default'; - -const MODULE_NAME = 'rediagram'; - -export function loadConfigfile(): RediagramGlobalConfig { - const { search } = cosmiconfigSync(MODULE_NAME); - const result = search(); - switch (result?.config.version) { - case beta1.version: - return beta1.load(result.filepath, result.config); - default: - return createDefaultConfig(); - } -} diff --git a/packages/common/src/rediagram/core.ts b/packages/common/src/core.ts similarity index 63% rename from packages/common/src/rediagram/core.ts rename to packages/common/src/core.ts index 0fc10bec..f999a3b1 100644 --- a/packages/common/src/rediagram/core.ts +++ b/packages/common/src/core.ts @@ -3,29 +3,16 @@ import { ensureDir } from 'fs-extra'; import { ReactElement } from 'react'; import { renderToDot } from '@ts-graphviz/react'; import { exportToFile } from '@ts-graphviz/node'; -import { loadConfigfile, RediagramGlobalConfig } from '../config'; -import { LOGGER, Logger } from '../logger'; -import { RenderOption } from './types'; +import { RediagramConfig, Logger, RenderOption, RediagramCore } from './types'; -export class RediagramCore { - public static readonly MODULE_NAME = 'rediagram'; +export class Core implements RediagramCore { + public readonly logger: Logger; - private static instance?: RediagramCore; + public readonly config: Readonly; - public readonly logger: Logger = LOGGER.getChildLogger({ name: RediagramCore.MODULE_NAME }); - - public static create(): RediagramCore { - if (!this.instance) { - const config = loadConfigfile(); - this.instance = new RediagramCore(config); - } - return this.instance; - } - - public readonly config: Readonly; - - constructor(config: RediagramGlobalConfig) { + constructor(config: RediagramConfig, logger: Logger) { this.config = Object.freeze({ ...config }); + this.logger = logger; } public async render(element: ReactElement, options: RenderOption): Promise { diff --git a/packages/common/src/create-rediagram-core.ts b/packages/common/src/create-rediagram-core.ts new file mode 100644 index 00000000..317372ab --- /dev/null +++ b/packages/common/src/create-rediagram-core.ts @@ -0,0 +1,15 @@ +import { RediagramCore } from './types'; +import { Core } from './core'; +import { ROOT_LOGGER } from './root-logger'; +import { loadConfig } from './load-config'; + +const MODULE_NAME = 'rediagram'; + +/** + * Load the config file and create an instance of RediagramCore. + */ +export function createRediagramCore(): RediagramCore { + const logger = ROOT_LOGGER.getChildLogger({ name: MODULE_NAME }); + const config = loadConfig(MODULE_NAME); + return new Core(config, logger); +} diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 9e25d1c7..caea84db 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -1,3 +1,3 @@ +export * from './types'; export * from './config'; -export * from './rediagram'; -export { Logger } from './logger'; +export * from './create-rediagram-core'; diff --git a/packages/common/src/load-config.ts b/packages/common/src/load-config.ts new file mode 100644 index 00000000..6ca62d72 --- /dev/null +++ b/packages/common/src/load-config.ts @@ -0,0 +1,15 @@ +import { cosmiconfigSync } from 'cosmiconfig'; +import { RediagramConfig } from './types'; +import { beta1 } from './config/beta1'; +import { createDefaultConfig } from './config/default'; + +export function loadConfig(name: string): RediagramConfig { + const { search } = cosmiconfigSync(name); + const result = search(); + switch (result?.config.version) { + case beta1.version: + return beta1.load(result.filepath, result.config); + default: + return createDefaultConfig(); + } +} diff --git a/packages/common/src/rediagram/index.ts b/packages/common/src/rediagram/index.ts deleted file mode 100644 index 7627d800..00000000 --- a/packages/common/src/rediagram/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './types'; -export * from './core'; diff --git a/packages/common/src/rediagram/types.ts b/packages/common/src/rediagram/types.ts deleted file mode 100644 index 4fc90002..00000000 --- a/packages/common/src/rediagram/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Format } from '@ts-graphviz/node'; - -export type RenderOption = { - /** - * Output destination directory. - */ - dir?: string; - /** - * Output file name. - */ - name: string; - /** - * Output file format. - */ - format?: Format; -}; diff --git a/packages/common/src/logger.ts b/packages/common/src/root-logger.ts similarity index 69% rename from packages/common/src/logger.ts rename to packages/common/src/root-logger.ts index ceea4087..5dfd606f 100644 --- a/packages/common/src/logger.ts +++ b/packages/common/src/root-logger.ts @@ -1,8 +1,6 @@ import { Logger as TSLogLogger } from 'tslog'; -export type Logger = TSLogLogger; - -export const LOGGER = new TSLogLogger({ +export const ROOT_LOGGER = new TSLogLogger({ type: 'pretty', name: 'root', displayDateTime: false, diff --git a/packages/common/src/types.ts b/packages/common/src/types.ts new file mode 100644 index 00000000..76a1c979 --- /dev/null +++ b/packages/common/src/types.ts @@ -0,0 +1,47 @@ +import { ReactElement } from 'react'; +import { Format } from '@ts-graphviz/node'; +import { Logger as TSLogLogger } from 'tslog'; + +export type Logger = TSLogLogger; + +export type RediagramConfig = { + filepath: string | null; + scope: Readonly<{ + includes: ReadonlyArray; + excludes: ReadonlyArray; + }>; + output: Readonly<{ + dir?: string; + format: Format; + }>; + dot: Readonly<{ + timeout: number; + }>; +}; + +export interface RediagramPluginContext { + logger: Logger; + config: RediagramConfig; +} + +export type RenderOption = { + /** + * Output destination directory. + */ + dir?: string; + /** + * Output file name. + */ + name: string; + /** + * Output file format. + */ + format?: Format; +}; + +export interface RediagramCore { + config: Readonly; + logger: Logger; + render(element: ReactElement, options: RenderOption): Promise; + run(src: string): Promise; +} diff --git a/packages/rediagram/src/core.ts b/packages/rediagram/src/core.ts index 424e80d4..4c7ee22b 100644 --- a/packages/rediagram/src/core.ts +++ b/packages/rediagram/src/core.ts @@ -1,3 +1,3 @@ -import { RediagramCore } from '@rediagram/common'; +import { createRediagramCore } from '@rediagram/common'; -export const Rediagram = RediagramCore.create(); +export const Rediagram = createRediagramCore(); From 80da33453af72311d1db20442acdbc4d297ef074 Mon Sep 17 00:00:00 2001 From: Yuki Yamazaki <35218186+kamiazya@users.noreply.github.com> Date: Fri, 1 Oct 2021 15:41:07 +0000 Subject: [PATCH 4/7] refactor: refactor architecture and details --- .eslintrc.json | 1 + docker/package.json | 2 +- .../AppEngineAndCloudEndpoints.rediagram.png | Bin 28821 -> 25400 bytes ...hefAutomateArchitectureOnAWS.rediagram.png | Bin 34201 -> 37456 bytes .../img/ContentManagement.rediagram.png | Bin 72326 -> 70704 bytes .../gallery/img/GitToS3WebHooks.rediagram.png | Bin 53595 -> 50924 bytes .../HighPerformanceComputing.rediagram.png | Bin 43134 -> 42200 bytes examples/gallery/img/MyInfra.rediagram.png | Bin 40842 -> 45623 bytes examples/gallery/img/firebase.rediagram.png | Bin 22951 -> 22474 bytes examples/gallery/package.json | 4 +- package.json | 1 - packages/aws/package.json | 7 +- packages/aws/rollup.config.js | 4 +- packages/aws/src/assets.ts | 6 +- packages/cdk/package.json | 7 +- packages/cdk/rollup.config.js | 2 +- packages/cli/bin/rediagramc.js | 4 +- packages/cli/package.json | 7 +- packages/cli/rollup.config.js | 28 +- packages/cli/src/pkg.ts | 10 - packages/cli/src/rediagramc.ts | 6 +- packages/cli/tsconfig.json | 2 +- packages/common/package.json | 10 +- packages/common/rollup.config.js | 14 +- packages/common/src/config/beta1.ts | 12 +- packages/common/src/config/default.ts | 13 +- packages/common/src/core.ts | 50 +- packages/common/src/create-rediagram-core.ts | 13 +- packages/common/src/plugin-manager.ts | 88 ++++ packages/common/src/plugins/dot-plugin.ts | 27 ++ packages/common/src/plugins/image-plugin.ts | 63 +++ packages/common/src/types.ts | 71 ++- .../create-rediagram-project/package.json | 2 + .../create-rediagram-project/rollup.config.js | 9 +- .../src/assert-args.ts | 2 +- .../create-rediagram-project/src/command.ts | 11 +- packages/create-rediagram-project/src/pkg.ts | 11 - .../templates/typescript/package.json | 3 +- packages/firebase/package.json | 7 +- packages/firebase/rollup.config.js | 4 +- packages/firebase/src/assets.ts | 6 +- packages/gcp/package.json | 7 +- packages/gcp/rollup.config.js | 4 +- packages/gcp/src/assets.ts | 6 +- packages/rediagram/package.json | 7 +- packages/rediagram/rollup.config.js | 5 +- packages/rediagram/src/assets.ts | 6 +- packages/rediagram/src/components/Diagram.tsx | 7 +- packages/rediagram/src/formats.ts | 21 +- packages/tsconfig/tsconfig.json | 2 +- tsconfig.json | 3 +- yarn.lock | 445 +++++++++++++++--- 52 files changed, 806 insertions(+), 214 deletions(-) delete mode 100644 packages/cli/src/pkg.ts create mode 100644 packages/common/src/plugin-manager.ts create mode 100644 packages/common/src/plugins/dot-plugin.ts create mode 100644 packages/common/src/plugins/image-plugin.ts delete mode 100644 packages/create-rediagram-project/src/pkg.ts diff --git a/.eslintrc.json b/.eslintrc.json index 6a19dc3d..8d46978f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -36,6 +36,7 @@ ], "rules": { "no-use-before-define": "off", + "no-useless-constructor": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-use-before-define": "warn", "prettier/prettier": "error", diff --git a/docker/package.json b/docker/package.json index 22c9a791..df63fe5c 100644 --- a/docker/package.json +++ b/docker/package.json @@ -21,7 +21,7 @@ "dependencies": { "@rediagram/aws": "^0.4.2", "@rediagram/cli": "^0.1.5", - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "^0.2.5", diff --git a/examples/gallery/img/AppEngineAndCloudEndpoints.rediagram.png b/examples/gallery/img/AppEngineAndCloudEndpoints.rediagram.png index 0e9827a670a05b6b043dfeb8da088fa652c24177..8f8d0d32ad9e3368b7ec24648daaf0aa4e9d0096 100644 GIT binary patch literal 25400 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∓WUbSBnm+o%>{!^#Dy(g#45)O+3?TlmLaP%0)+ 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 VH{Ww&-{1CDzmZm!Dv~hp{U6YGd@}$5 diff --git a/examples/gallery/img/ChefAutomateArchitectureOnAWS.rediagram.png b/examples/gallery/img/ChefAutomateArchitectureOnAWS.rediagram.png index c913271b82bc3fdb7e9e8b4ced0f5353fc755f3e..43637e5d1f6479a496e24ccc79f9cf264d59e267 100644 GIT binary patch literal 37456 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

tXE_t8`P`nBUAWaPE`S4hH)xblgcU_Cba>p#o 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 diff --git a/examples/gallery/img/ContentManagement.rediagram.png b/examples/gallery/img/ContentManagement.rediagram.png index fd7e0d20591e464aeb81247b8e33e7fb73f5c8f6..c94ac04e4feb5c208aec7d0c2c85a4fae5c029e9 100644 GIT binary patch literal 70704 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

RbOMa~1m;G-behM#0~xGOS4|OB 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 z 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 NRnk<*I0IzbQ-X~xh?B6t+(7K&08h$t=e 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

= FC

& { + renderer: string; }; +export type RRC

= RediagramRootComponent

; + +export interface RediagramRenderer { + (element: ReactElement): Promise; +} + +export interface RediagramExporter { + (svg: string, option: Required): Promise; +} + +// TODO +export interface RediagramPlugin { + renderers?: { + [name: string]: RediagramRenderer; + }; + exporters?: { + [name: string]: RediagramExporter; + }; +} + +export interface RediagramPluginContext { + logger: Logger; + option: T; +} + +export interface RediagramPluginModule { + name: string; + setup(context: RediagramPluginContext): RediagramPlugin; +} + +export interface RediagramPluginManager { + create(name: string, context: RediagramPluginContext, option: T): RediagramPlugin; +} export interface RediagramCore { config: Readonly; logger: Logger; - render(element: ReactElement, options: RenderOption): Promise; + render(element: ReactElement, options: ExportOption): Promise; + export(svg: string, options: ExportOption): Promise; + process(element: ReactElement, options: ExportOption): Promise; run(src: string): Promise; } diff --git a/packages/create-rediagram-project/package.json b/packages/create-rediagram-project/package.json index 180cea7a..393d3c8e 100644 --- a/packages/create-rediagram-project/package.json +++ b/packages/create-rediagram-project/package.json @@ -4,6 +4,7 @@ "version": "0.2.2", "author": "kamiazya ", "description": "Starter kit for rediagram.", + "type": "module", "bin": { "create-rediagram-project": "bin/create-rediagram-project.js" }, @@ -49,6 +50,7 @@ "rimraf": "^3.0.2", "rollup": "^2.55.0", "rollup-plugin-typescript2": "^0.30.0", + "rollup-plugin-version-injector": "^1.3.3", "typescript": "^4.0.2" } } diff --git a/packages/create-rediagram-project/rollup.config.js b/packages/create-rediagram-project/rollup.config.js index e85bbf19..9c37c2af 100644 --- a/packages/create-rediagram-project/rollup.config.js +++ b/packages/create-rediagram-project/rollup.config.js @@ -1,10 +1,11 @@ import typescript from 'rollup-plugin-typescript2'; +import versionInjector from 'rollup-plugin-version-injector'; export default { input: './src/main.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/main.js', }, ], @@ -12,14 +13,14 @@ export default { 'chalk', 'commander', 'fs-extra', - 'fs', 'ncp', - 'path', 'replacestream', 'cross-spawn', 'dedent', 'validate-npm-package-name', 'which', + 'node:url', + 'node:path', ], - plugins: [typescript()], + plugins: [typescript(), versionInjector()], }; diff --git a/packages/create-rediagram-project/src/assert-args.ts b/packages/create-rediagram-project/src/assert-args.ts index 124c5b3f..66a0c1fb 100644 --- a/packages/create-rediagram-project/src/assert-args.ts +++ b/packages/create-rediagram-project/src/assert-args.ts @@ -1,5 +1,5 @@ import { CommanderError } from 'commander'; -import path from 'path'; +import path from 'node:path'; import fs from 'fs-extra'; import validate from 'validate-npm-package-name'; diff --git a/packages/create-rediagram-project/src/command.ts b/packages/create-rediagram-project/src/command.ts index 13178b45..74bd04ae 100644 --- a/packages/create-rediagram-project/src/command.ts +++ b/packages/create-rediagram-project/src/command.ts @@ -1,22 +1,25 @@ /* eslint-disable @typescript-eslint/no-unused-vars, func-names, no-console */ +import url from 'node:url'; +import path from 'node:path'; import { createCommand } from 'commander'; import fs from 'fs-extra'; import chalk from 'chalk'; import { ncp } from 'ncp'; -import path from 'path'; import which from 'which'; import replacestream from 'replacestream'; import spawn from 'cross-spawn'; import dedent from 'dedent'; -import pkg from './pkg'; import { assertArgs } from './assert-args'; +// eslint-disable-next-line no-underscore-dangle +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); + type Options = { packageManager: string; }; -export const command = createCommand(pkg.name) - .version(pkg.version) +export const command = createCommand('create-rediagram-project') + .version('[VI]{version}[/VI]') .arguments('') .option('-p, --package-manager ', 'select a package manager, yarn or npm.', 'yarn') .action(function (name: string, { packageManager }: Options) { diff --git a/packages/create-rediagram-project/src/pkg.ts b/packages/create-rediagram-project/src/pkg.ts deleted file mode 100644 index cd1419ef..00000000 --- a/packages/create-rediagram-project/src/pkg.ts +++ /dev/null @@ -1,11 +0,0 @@ -import path from 'path'; -import fs from 'fs'; - -type PKG = { - name: string; - version: string; -}; - -const pkg: PKG = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf-8')); - -export default pkg; diff --git a/packages/create-rediagram-project/templates/typescript/package.json b/packages/create-rediagram-project/templates/typescript/package.json index c507f38d..90293ad3 100644 --- a/packages/create-rediagram-project/templates/typescript/package.json +++ b/packages/create-rediagram-project/templates/typescript/package.json @@ -1,7 +1,6 @@ { "name": "{{name}}", "version": "0.0.0", - "main": "index.js", "private": true, "scripts": { "start": "rediagramc", @@ -10,7 +9,7 @@ "dependencies": { "@rediagram/aws": "^0.2.4", "@rediagram/gcp": "^0.1.3", - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "react": "^16.14.0", "react-dom": "^16.14.0", "rediagram": "^0.2.2", diff --git a/packages/firebase/package.json b/packages/firebase/package.json index 05f760ad..1bc2a885 100644 --- a/packages/firebase/package.json +++ b/packages/firebase/package.json @@ -1,7 +1,10 @@ { "name": "@rediagram/firebase", "version": "0.0.1", - "main": "lib/index.js", + "type": "module", + "exports": { + "import": "./lib/index.js" + }, "types": "lib/index.d.ts", "license": "MIT", "description": "Components for drawing Firebase diagrams.", @@ -31,7 +34,7 @@ "@rediagram/cdk": "^0.3.1" }, "peerDependencies": { - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", diff --git a/packages/firebase/rollup.config.js b/packages/firebase/rollup.config.js index c1b45cd8..e041aa3f 100644 --- a/packages/firebase/rollup.config.js +++ b/packages/firebase/rollup.config.js @@ -8,11 +8,11 @@ const options = [ input: './src/index.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/index.js', }, ], - external: ['@rediagram/cdk', 'react', '@ts-graphviz/react', 'prop-types', 'path'], + external: ['@rediagram/cdk', 'react', '@ts-graphviz/react', 'prop-types', 'node:path', 'node:url'], plugins: [typescript()], }, { diff --git a/packages/firebase/src/assets.ts b/packages/firebase/src/assets.ts index 73dfbcca..984c6837 100644 --- a/packages/firebase/src/assets.ts +++ b/packages/firebase/src/assets.ts @@ -1,4 +1,8 @@ -import path from 'path'; +import path from 'node:path'; +import url from 'node:url'; + +// eslint-disable-next-line no-underscore-dangle +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); export function resolveAsset(...paths: string[]): string { return path.resolve(__dirname, '../assets', ...paths); diff --git a/packages/gcp/package.json b/packages/gcp/package.json index a337caf3..f682ac67 100644 --- a/packages/gcp/package.json +++ b/packages/gcp/package.json @@ -1,7 +1,10 @@ { "name": "@rediagram/gcp", "version": "0.3.1", - "main": "lib/index.js", + "type": "module", + "exports": { + "import": "./lib/index.js" + }, "types": "lib/index.d.ts", "license": "MIT", "description": "Components for drawing GCP diagrams.", @@ -31,7 +34,7 @@ "@rediagram/cdk": "^0.3.1" }, "peerDependencies": { - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", diff --git a/packages/gcp/rollup.config.js b/packages/gcp/rollup.config.js index c1b45cd8..e041aa3f 100644 --- a/packages/gcp/rollup.config.js +++ b/packages/gcp/rollup.config.js @@ -8,11 +8,11 @@ const options = [ input: './src/index.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/index.js', }, ], - external: ['@rediagram/cdk', 'react', '@ts-graphviz/react', 'prop-types', 'path'], + external: ['@rediagram/cdk', 'react', '@ts-graphviz/react', 'prop-types', 'node:path', 'node:url'], plugins: [typescript()], }, { diff --git a/packages/gcp/src/assets.ts b/packages/gcp/src/assets.ts index 73dfbcca..984c6837 100644 --- a/packages/gcp/src/assets.ts +++ b/packages/gcp/src/assets.ts @@ -1,4 +1,8 @@ -import path from 'path'; +import path from 'node:path'; +import url from 'node:url'; + +// eslint-disable-next-line no-underscore-dangle +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); export function resolveAsset(...paths: string[]): string { return path.resolve(__dirname, '../assets', ...paths); diff --git a/packages/rediagram/package.json b/packages/rediagram/package.json index 040e3d9a..2849de7a 100644 --- a/packages/rediagram/package.json +++ b/packages/rediagram/package.json @@ -1,7 +1,10 @@ { "name": "rediagram", "version": "0.2.5", - "main": "lib/index.js", + "type": "module", + "exports": { + "import": "./lib/index.js" + }, "types": "lib/index.d.ts", "author": "kamiazya ", "description": "Prototyping system architectures by using React.", @@ -25,7 +28,7 @@ "watch": "tsc --watch" }, "peerDependencies": { - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", diff --git a/packages/rediagram/rollup.config.js b/packages/rediagram/rollup.config.js index 15eaa4d4..dc27edea 100644 --- a/packages/rediagram/rollup.config.js +++ b/packages/rediagram/rollup.config.js @@ -8,7 +8,7 @@ const options = [ input: './src/index.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/index.js', }, ], @@ -17,12 +17,13 @@ const options = [ 'ts-graphviz', '@ts-graphviz/node', 'fs-extra', - 'path', 'caller', '@rediagram/common', '@ts-graphviz/react', 'react', 'prop-types', + 'node:path', + 'node:url', ], plugins: [typescript()], }, diff --git a/packages/rediagram/src/assets.ts b/packages/rediagram/src/assets.ts index 73dfbcca..984c6837 100644 --- a/packages/rediagram/src/assets.ts +++ b/packages/rediagram/src/assets.ts @@ -1,4 +1,8 @@ -import path from 'path'; +import path from 'node:path'; +import url from 'node:url'; + +// eslint-disable-next-line no-underscore-dangle +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); export function resolveAsset(...paths: string[]): string { return path.resolve(__dirname, '../assets', ...paths); diff --git a/packages/rediagram/src/components/Diagram.tsx b/packages/rediagram/src/components/Diagram.tsx index 79c445a1..696bad87 100644 --- a/packages/rediagram/src/components/Diagram.tsx +++ b/packages/rediagram/src/components/Diagram.tsx @@ -1,7 +1,8 @@ -import React, { FC, ReactElement } from 'react'; +import React, { ReactElement } from 'react'; import { Digraph } from '@ts-graphviz/react'; import { attribute } from 'ts-graphviz'; import t from 'prop-types'; +import { RRC } from '@rediagram/common'; export type DiagramProps = { title?: ReactElement | string; @@ -9,7 +10,7 @@ export type DiagramProps = { rankdir?: 'TB' | 'BT' | 'RL' | 'LR'; }; -export const Diagram: FC = ({ title, children, dpi, rankdir }) => { +export const Diagram: RRC = ({ title, children, dpi, rankdir }) => { return ( = ({ title, children, dpi, rankdir }) => ); }; +Diagram.renderer = 'dot'; + Diagram.propTypes = { // eslint-disable-next-line react/require-default-props title: t.oneOfType([t.string.isRequired, t.element.isRequired]), diff --git a/packages/rediagram/src/formats.ts b/packages/rediagram/src/formats.ts index 55dcb906..462cbc41 100644 --- a/packages/rediagram/src/formats.ts +++ b/packages/rediagram/src/formats.ts @@ -1,6 +1,7 @@ import { ReactElement } from 'react'; -import path from 'path'; +import path from 'node:path'; import caller from 'caller'; +import { RediagramRootComponent } from '@rediagram/common'; import { Rediagram } from './core'; export type RenderOption = { @@ -26,14 +27,14 @@ type InternalRenderOption = RenderOption & { /** * Output PNG image. */ -export function PNG(element: ReactElement, options?: RenderOption): Promise; +export function PNG(element: ReactElement, options?: RenderOption): Promise; export async function PNG( - element: ReactElement, + element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { try { const p = path.parse(_caller); - const output = await Rediagram.render(element, { + const output = await Rediagram.process(element, { format: 'png', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, @@ -47,14 +48,14 @@ export async function PNG( /** * Output SVG file. */ -export function SVG(element: ReactElement, options?: RenderOption): Promise; +export function SVG(element: ReactElement, options?: RenderOption): Promise; export async function SVG( - element: ReactElement, + element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { try { const p = path.parse(_caller); - const output = await Rediagram.render(element, { + const output = await Rediagram.process(element, { format: 'svg', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, @@ -68,14 +69,14 @@ export async function SVG( /** * Output PDF file. */ -export function PDF(element: ReactElement, options?: RenderOption): Promise; +export function PDF(element: ReactElement, options?: RenderOption): Promise; export async function PDF( - element: ReactElement, + element: ReactElement, { name, dir, _caller = caller() }: InternalRenderOption = {}, ): Promise { try { const p = path.parse(_caller); - const output = await Rediagram.render(element, { + const output = await Rediagram.process(element, { format: 'pdf', name: name ?? p.name, dir: dir ?? Rediagram.config.output.dir ?? p.dir, diff --git a/packages/tsconfig/tsconfig.json b/packages/tsconfig/tsconfig.json index fe04cbef..78317946 100644 --- a/packages/tsconfig/tsconfig.json +++ b/packages/tsconfig/tsconfig.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "rediagram", "compilerOptions": { - "jsx": "react", + "jsx": "react-jsx", "strict": true, "resolveJsonModule": true, "moduleResolution": "node", diff --git a/tsconfig.json b/tsconfig.json index 7632a99b..1831b3c3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { - "target": "ES2015", + "target": "ESNext", + "module": "ESNext", "jsx": "react", "strict": true, "moduleResolution": "node", diff --git a/yarn.lock b/yarn.lock index c8e52d62..9a9fe4e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2894,10 +2894,10 @@ dependencies: tmp-promise "^3.0.2" -"@ts-graphviz/react@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.9.0.tgz#d95e6c3ad0f133fe5dbf46b45b0b1543ab4c079f" - integrity sha512-+5TQyy1BpStu9jDc3Wf5rN6m8lyTtou0SbRAUv/epWrzpFpGgm5CtYk5LlawvH5l5lOuptTM9kmVHQb9I3qIOA== +"@ts-graphviz/react@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@ts-graphviz/react/-/react-0.9.1.tgz#3e03543ebff2f2263fdc21bb10d4ff3b146cc810" + integrity sha512-Off14BKFXXhFXSnOoVA2hQEnFThPTMZWgIHLZ3SI8l//LZSBFNCkXraeWOPFk08r+/d9nQwaPByy2xzeQ0WQRg== dependencies: prop-types "^15.7.2" react-dom "^17.0.2" @@ -3212,6 +3212,13 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/sharp@^0.29.2": + version "0.29.2" + resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.29.2.tgz#b4e932e982e258d1013236c8b4bcc14f9883c9a3" + integrity sha512-tIbMvtPa8kMyFMKNhpsPT1HO3CgXLuiCAA8bxHAGAZLyALpYvYc4hUu3pu0+3oExQA5LwvHrWp+OilgXCYVQgg== + dependencies: + "@types/node" "*" + "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -3674,11 +3681,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -4082,6 +4084,11 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -4134,6 +4141,15 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@^3.7.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -4267,6 +4283,14 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -4699,11 +4723,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/color/-/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" + integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA== + dependencies: + color-convert "^2.0.1" + color-string "^1.6.0" + colord@^2.0.1: version "2.4.0" resolved "https://registry.yarnpkg.com/colord/-/colord-2.4.0.tgz#21a7b969ded0f7131bbf38fc64fc038c3b592de5" @@ -4749,7 +4789,7 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.0, commander@^4.1.1: +commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== @@ -5324,6 +5364,11 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== +dateformat@^4.2.1: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -5380,6 +5425,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -5407,6 +5459,14 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deep-rename-keys@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz#ede78537d7a66a2be61517e2af956d7f58a3f1d8" + integrity sha1-7eeFN9emaivmFRfir5Vtf1ij8dg= + dependencies: + kind-of "^3.0.2" + rename-keys "^1.1.2" + deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -5544,6 +5604,11 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -5824,7 +5889,7 @@ encoding@^0.1.12: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -5921,6 +5986,114 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild-android-arm64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.2.tgz#7f00f620d1fc3fb2d6b5b8a6a80b1bdd15d4e6c6" + integrity sha512-Eh2paXUWYqf5JgikdkC0LnhtjSC8tGAz/L2kJRlMC0o3DzOBIxcmT2fdzBerdhW4roY0bOExfcO6deI1qsxI/A== + +esbuild-darwin-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.2.tgz#e844c7ea708ca791d172300009db27ae4229390d" + integrity sha512-jqp6uXHIIAWZ8kxRqFjxyMmIE1cuSbINellwwigOgk44eLg74ls82oqjY72MbDAowPivQkOU/fF7tsyaGQf5Zg== + +esbuild-darwin-arm64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.2.tgz#2bc42bc24a3a9779fe5569d5f2ab4c39bd3483b7" + integrity sha512-bD4oAyPZdzOWEA/JoX0sAitOhjJRwhomhWMeyRyowtlVQhQleG2ijRUKTvkq4CAvSobrW5EnZxjvHNKJ5L7zJg== + +esbuild-freebsd-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.2.tgz#f2f20c45cd3998bbb8dff1f249cb38aa459c73ad" + integrity sha512-fFJ0yc3lZyfwca+F5OPN/s+izozWryUQpN8aUMIdUkOa7UKX0h3xXrKnkDgdOo8vy3d1A6zHH0/4f2VJfEzLCg== + +esbuild-freebsd-arm64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.2.tgz#ae364988459110f51e9f37773dfb7cc10931c971" + integrity sha512-DWBZauEfjmqdfWxIacI+KBEim3ulOjtvK+WVm1bX67XlfyUVIkD915OIfT2EBhQUWmv+Z0tZZwskSMNj5DKojw== + +esbuild-linux-32@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.2.tgz#e95aa1f16037ca7e7313fd1a0dca296719b39b1b" + integrity sha512-Gt2rNqqRCRh1QQC2d83KP0iWIXWQYpns7l2+41a1n0PQxXkQ5AarpjjL9mUzdXtcZauNXbUvWwBKAuBTCW+XQg== + +esbuild-linux-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.2.tgz#4b4b314daff70f94411487801641687f771a7528" + integrity sha512-yT0D5Xly8oGHuqq975k1XUyULHzk3fN/ZlTY+awlU+nCFsYPZ43NE5msGpxlNQu8i6KOXQEke5GXN3y5d+Zd4g== + +esbuild-linux-arm64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.2.tgz#170ba8807c1a5e44e98cbe66d333a355ed26933a" + integrity sha512-qwXL+3NDCWiC8RMKBBETpuOWdC+pUAUS+pwg9jJmapYblLdVKkyRtwF/ogj06TdYs6riSSNikW8HK/Xs0HHbbQ== + +esbuild-linux-arm@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.2.tgz#50731067c280dc77a60526e99a23260a38b41868" + integrity sha512-KXeyotqj9jbvCjbSpwnxDE8E8jKoBgrgbJpOvvY5Zz7Pp2fAwu/94vWQtE/jPEJndY4C4MSs+ryJLFWzmLOa4w== + +esbuild-linux-mips64le@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.2.tgz#030945ccde601f2ce1b70f3aa22240128047be05" + integrity sha512-sx8eheRX2XC2ppNAsbQm8/VUcU8XPYGpJK0BEyRefqHONz6u5Ib2guUdOz2Wh4YlbA7oOd482lHjprXSTwUcrQ== + +esbuild-linux-ppc64le@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.2.tgz#1a028df8caa5e0423d93217b9b4515d879007d07" + integrity sha512-y8iZ3qy2TIAKKsZ6xSopCztHOtGW9oiYDl22vQ0UIoVWjnfRKrbSzX7Y2F94y32hSvRWle6OhAIC+UpS5nQmIA== + +esbuild-node-loader@kamiazya/esbuild-node-loader#fix-load-with-query: + version "0.4.1" + resolved "https://codeload.github.com/kamiazya/esbuild-node-loader/tar.gz/bc911ccb5f44e9a45406a0009a55b2f4ceab5920" + dependencies: + esbuild "^0.13.2" + +esbuild-openbsd-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.2.tgz#13bbcfc37806b68116e5669e03782e501c5c0720" + integrity sha512-g6AYrjBeV9OK624bw0KQ1TjHJQSW+X1Yicyd1NvDWqSFpMqKAjw7EUX4tA87mOFqv8BflPGr4f43ySgNvSVzIw== + +esbuild-sunos-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.2.tgz#e23cfc6222527940ca6da0a592be0de05ab6e1ad" + integrity sha512-hIXvFIyrqwFd6v62XSra0ctCUXDS9Tu5D6QYbvnbhEoBmvD/TmEJRYRH48/+xmRifKJLzu6aegcrjAsDmaww7g== + +esbuild-windows-32@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.2.tgz#d45f1480c6ee933065a8e9cb9849ef0d70aeb7e7" + integrity sha512-Y767LG0NFkw0sPoDVOTKC5gaj4vURjjWfSCCDV5awpXXxBKOF2zsIp3aia4KvVoivoSSeRPk3emDd0OPHuPrKg== + +esbuild-windows-64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.2.tgz#c2e78f863e3f071f3e114afd9cd84222926cf2b3" + integrity sha512-01b59kVJUMasctn6lzswC0drchr7zO75QtF22o5w0nlOw0Zorw0loY/8i5choFuWc30gXJId9qBSc1zPvt7uEw== + +esbuild-windows-arm64@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.2.tgz#15dc550c07c0ec078ca704e1d31cf84e6d4ad8ed" + integrity sha512-HxyY604ytmh8NkPYyS1TdIB/bFS7DWd1hP90e8Ovo/elEdN5I13h0tyIatDYZkXKS0Ztk+9T/3h6K0fI1a/4tQ== + +esbuild@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.2.tgz#f7d9ee4d102601097b0b424f3322cd25351870c5" + integrity sha512-/tpIqo45hyRREGqh7hsIut8GwY1X2n9IhKbIwRIXUO6IohzG3/RarSGX7dT2eNvYzIbQmelpX+ZyuIphE5u+Bw== + optionalDependencies: + esbuild-android-arm64 "0.13.2" + esbuild-darwin-64 "0.13.2" + esbuild-darwin-arm64 "0.13.2" + esbuild-freebsd-64 "0.13.2" + esbuild-freebsd-arm64 "0.13.2" + esbuild-linux-32 "0.13.2" + esbuild-linux-64 "0.13.2" + esbuild-linux-arm "0.13.2" + esbuild-linux-arm64 "0.13.2" + esbuild-linux-mips64le "0.13.2" + esbuild-linux-ppc64le "0.13.2" + esbuild-openbsd-64 "0.13.2" + esbuild-sunos-64 "0.13.2" + esbuild-windows-32 "0.13.2" + esbuild-windows-64 "0.13.2" + esbuild-windows-arm64 "0.13.2" + escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -6220,6 +6393,11 @@ eval@^0.1.4: dependencies: require-like ">= 0.1.1" +eventemitter3@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= + eventemitter3@^4.0.0, eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -6288,6 +6466,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect@^27.0.6: version "27.0.6" resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" @@ -6675,6 +6858,11 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -6883,6 +7071,11 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + github-slugger@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" @@ -6917,18 +7110,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -7521,6 +7702,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-walk@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" @@ -7739,6 +7925,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -8002,7 +8193,7 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -9469,6 +9660,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -9512,7 +9708,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -9602,6 +9798,11 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp-infer-owner@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" @@ -9682,15 +9883,6 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - nan@^2.12.1: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" @@ -9718,6 +9910,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -9751,6 +9948,18 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== + dependencies: + semver "^5.4.1" + +node-addon-api@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87" + integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q== + node-emoji@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" @@ -9980,7 +10189,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npmlog@^4.1.2: +npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -10122,6 +10331,14 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +omit-deep@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/omit-deep/-/omit-deep-0.3.0.tgz#21c8af3499bcadd29651a232cbcacbc52445ebec" + integrity sha1-IcivNJm8rdKWUaIyy8rLxSRF6+w= + dependencies: + is-plain-object "^2.0.1" + unset-value "^0.1.1" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -10955,6 +11172,25 @@ postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5: nanoid "^3.1.23" source-map-js "^0.6.2" +prebuild-install@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -11236,7 +11472,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -11534,7 +11770,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -11777,6 +12013,11 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= +rename-keys@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rename-keys/-/rename-keys-1.2.0.tgz#be602fb0b750476b513ebe85ba4465d03254f0a3" + integrity sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg== + renderkid@^2.0.6: version "2.0.7" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" @@ -11994,6 +12235,15 @@ rollup-plugin-typescript2@^0.30.0: resolve "1.20.0" tslib "2.1.0" +rollup-plugin-version-injector@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-version-injector/-/rollup-plugin-version-injector-1.3.3.tgz#df1f8d371bc127592c29aeda6914745db4013a48" + integrity sha512-+Rrf0xIFHkwFGuMfphVlAOtd9FlhHFh3vrDwamJ6+YR3IxebRHGVT879qwWzZ1CpWMCLlngb2MmHW5wC5EJqvg== + dependencies: + chalk "^4.1.0" + dateformat "^4.2.1" + lodash "^4.17.20" + rollup@^2.55.0: version "2.55.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.55.1.tgz#66a444648e2fb603d8e329e77a61c608a6510fda" @@ -12262,6 +12512,20 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +sharp@^0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.1.tgz#f60b50f24f399464a24187c86bd2da41aae50b85" + integrity sha512-DpgdAny9TuS+oWCQ7MRS8XyY9x6q1+yW3a5wNx0J3HrGuB/Jot/8WcT+lElHY9iJu2pwtegSGxqMaqFiMhs4rQ== + dependencies: + color "^4.0.1" + detect-libc "^1.0.3" + node-addon-api "^4.1.0" + prebuild-install "^6.1.4" + semver "^7.3.5" + simple-get "^3.1.0" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -12314,6 +12578,27 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3, simple-get@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + sirv@^1.0.7: version "1.0.12" resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" @@ -12842,18 +13127,6 @@ stylehacks@^5.0.1: browserslist "^4.16.0" postcss-selector-parser "^6.0.4" -sucrase@^3.16.0: - version "3.20.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.20.0.tgz#a80e865830e27d66a912c938491d474164b06205" - integrity sha512-Rsp+BX7DRuCleJvBAHN7gQ3ddk7U0rJev19XlIBF6dAq9vX4Tr5mHk4E7+ig/I7BM3DLYotCmm20lfBElT2XtQ== - dependencies: - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -12927,6 +13200,15 @@ svgo@^2.3.0: csso "^4.2.0" stable "^0.1.8" +svgson@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/svgson/-/svgson-5.2.1.tgz#7481fb1af4a58be542a6bd2020c168c6b71381cb" + integrity sha512-nbM6QuyZiKzQ0Uo51VDta93YJAr96ikyT40PsgJRrzynOGsOlnmJ6zAK5hUFyE5gnxcg7yuOPUWbUlmV9K0+Dg== + dependencies: + deep-rename-keys "^0.2.1" + omit-deep "0.3.0" + xml-reader "2.4.3" + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -12954,6 +13236,27 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^4.4.12: version "4.4.15" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.15.tgz#3caced4f39ebd46ddda4d6203d48493a919697f8" @@ -13052,20 +13355,6 @@ text-table@0.2.0, text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - throat@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" @@ -13248,11 +13537,6 @@ ts-graphviz@^0.16.0: resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-0.16.0.tgz#7a6e6b5434854bc90ab861e70d5af0d6d20729a7" integrity sha512-3fTPO+G6bSQNvMh/XQQzyiahVLMMj9kqYO99ivUraNJ3Wp05HZOOVtRhi6w9hq7+laP1MKHjLBtGWqTeb1fcpg== -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - ts-jest@^27.0.4: version "27.0.4" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.4.tgz#df49683535831560ccb58f94c023d831b1b80df0" @@ -13618,6 +13902,14 @@ unquote@~1.1.1: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= +unset-value@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-0.1.2.tgz#506810b867f27c2a5a6e9b04833631f6de58d310" + integrity sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -14248,11 +14540,26 @@ xml-js@^1.6.11: dependencies: sax "^1.2.4" +xml-lexer@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xml-lexer/-/xml-lexer-0.2.2.tgz#518193a4aa334d58fc7d248b549079b89907e046" + integrity sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY= + dependencies: + eventemitter3 "^2.0.0" + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml-reader@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/xml-reader/-/xml-reader-2.4.3.tgz#9f810caf7c425a5aafb848b1c45103c9e71d7530" + integrity sha1-n4EMr3xCWlqvuEixxFEDyecddTA= + dependencies: + eventemitter3 "^2.0.0" + xml-lexer "^0.2.2" + xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" From 858b4e3bca03b570d992aaab81a2484553f9be6f Mon Sep 17 00:00:00 2001 From: Yuki Yamazaki <35218186+kamiazya@users.noreply.github.com> Date: Fri, 1 Oct 2021 15:57:50 +0000 Subject: [PATCH 5/7] fix: import plugin by dynamic import --- packages/common/src/create-rediagram-core.ts | 5 ++--- packages/common/src/plugin-manager.ts | 13 ++++++------- .../bin/create-rediagram-project.js | 2 +- packages/rediagram/src/core.ts | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/common/src/create-rediagram-core.ts b/packages/common/src/create-rediagram-core.ts index 1770e383..5d293905 100644 --- a/packages/common/src/create-rediagram-core.ts +++ b/packages/common/src/create-rediagram-core.ts @@ -11,15 +11,14 @@ const MODULE_NAME = 'rediagram'; /** * Load the config file and create an instance of RediagramCore. */ -export function createRediagramCore(): RediagramCore { +export async function createRediagramCore(): Promise { const logger = ROOT_LOGGER.getChildLogger({ name: MODULE_NAME }); const config = loadConfig(MODULE_NAME); const plugins = PluginManager.createWithPresetModules(logger.getChildLogger({ name: 'rediagram/PluginManager' }), [ DotPluginModule, ImagePluginModule, ]); - plugins.init(DotPluginModule.name, config.options.dot); - plugins.init(ImagePluginModule.name); + await Promise.all([plugins.init(DotPluginModule.name, config.options.dot), plugins.init(ImagePluginModule.name)]); const core = new Core(config, logger, plugins); return core; diff --git a/packages/common/src/plugin-manager.ts b/packages/common/src/plugin-manager.ts index 0ecbb8e5..0197f84c 100644 --- a/packages/common/src/plugin-manager.ts +++ b/packages/common/src/plugin-manager.ts @@ -34,24 +34,23 @@ export class PluginManager { this.preloads.set(pluginModule.name, pluginModule); } - private resolvePlugin(nameOrKey: string): RediagramPluginModule { + private async importPlugin(nameOrKey: string): Promise { let pluginModule = this.preloads.get(nameOrKey); if (pluginModule) { return pluginModule; } - // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires, global-require - pluginModule = require(nameOrKey); + pluginModule = await import(nameOrKey); PluginManager.assertsPluginModule(pluginModule); return pluginModule; } - public createPlugin(name: string, option: T): RediagramPlugin { - const pluginModule = this.resolvePlugin(name); + public async createPlugin(name: string, option: T): Promise { + const pluginModule = await this.importPlugin(name); return pluginModule.setup({ option: option ?? {}, logger: this.logger.getChildLogger({ name }) }); } - public init(name: string, option?: Record): void { - this.load(this.createPlugin(name, option)); + public async init(name: string, option?: Record): Promise { + this.load(await this.createPlugin(name, option)); } public load(plugin: RediagramPlugin): void { diff --git a/packages/create-rediagram-project/bin/create-rediagram-project.js b/packages/create-rediagram-project/bin/create-rediagram-project.js index 60355a4b..9ad11927 100755 --- a/packages/create-rediagram-project/bin/create-rediagram-project.js +++ b/packages/create-rediagram-project/bin/create-rediagram-project.js @@ -1,2 +1,2 @@ #!/usr/bin/env node -require('../lib/main'); +import '../lib/main.js'; diff --git a/packages/rediagram/src/core.ts b/packages/rediagram/src/core.ts index 4c7ee22b..241731d3 100644 --- a/packages/rediagram/src/core.ts +++ b/packages/rediagram/src/core.ts @@ -1,3 +1,3 @@ import { createRediagramCore } from '@rediagram/common'; -export const Rediagram = createRediagramCore(); +export const Rediagram = await createRediagramCore(); From f6729ba04a63994866816c66470f8b6b9d85b327 Mon Sep 17 00:00:00 2001 From: Yuki Yamazaki <35218186+kamiazya@users.noreply.github.com> Date: Fri, 1 Oct 2021 16:43:48 +0000 Subject: [PATCH 6/7] feat: add transformer --- packages/common/package.json | 2 ++ packages/common/src/core.ts | 14 ++++++-- packages/common/src/create-rediagram-core.ts | 11 +++++- packages/common/src/plugin-manager.ts | 22 +++++++++++- packages/common/src/plugins/dot-plugin.ts | 3 +- packages/common/src/plugins/image-plugin.ts | 32 +---------------- .../common/src/plugins/internal-plugin.ts | 35 +++++++++++++++++++ packages/common/src/plugins/svg-plugin.ts | 24 +++++++++++++ packages/common/src/types.ts | 10 ++++++ yarn.lock | 34 ++++++++++++++++-- 10 files changed, 149 insertions(+), 38 deletions(-) create mode 100644 packages/common/src/plugins/internal-plugin.ts create mode 100644 packages/common/src/plugins/svg-plugin.ts diff --git a/packages/common/package.json b/packages/common/package.json index 19dea355..70ab6e8c 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -36,11 +36,13 @@ "cosmiconfig": "^7.0.1", "fs-extra": "^10.0.0", "sharp": "^0.29.1", + "svgo": "^2.7.0", "svgson": "^5.2.1", "tslog": "^3.2.1" }, "devDependencies": { "@types/sharp": "^0.29.2", + "@types/svgo": "^2.4.2", "rollup": "^2.55.0", "rollup-plugin-delete": "^2.0.0", "rollup-plugin-dts": "^3.0.2", diff --git a/packages/common/src/core.ts b/packages/common/src/core.ts index a01c457a..696f4452 100644 --- a/packages/common/src/core.ts +++ b/packages/common/src/core.ts @@ -1,6 +1,7 @@ import path from 'node:path'; import { ensureDir } from 'fs-extra'; import { ReactElement } from 'react'; +import { parse, stringify } from 'svgson'; import { RediagramConfig, Logger, ExportOption, RediagramCore, RediagramRootComponent } from './types'; import { PluginManager } from './plugin-manager'; @@ -17,9 +18,18 @@ export class Core implements RediagramCore { this.plugins = plugins; } - public render(element: ReactElement): Promise { + public async render(element: ReactElement): Promise { const render = this.plugins.getRenderer(element.type.renderer); - return render(element); + const svg = await render(element); + const ast = await parse(svg); + // eslint-disable-next-line no-restricted-syntax + for (const [name, transform] of this.plugins.getTransformers()) { + this.logger.debug(`transformer "${name}": start`); + // eslint-disable-next-line no-await-in-loop + await transform(ast); + this.logger.debug(`transformer "${name}": end`); + } + return stringify(ast); } public async export(svg: string, option: ExportOption): Promise { diff --git a/packages/common/src/create-rediagram-core.ts b/packages/common/src/create-rediagram-core.ts index 5d293905..15f24128 100644 --- a/packages/common/src/create-rediagram-core.ts +++ b/packages/common/src/create-rediagram-core.ts @@ -5,6 +5,8 @@ import { loadConfig } from './load-config'; import { PluginManager } from './plugin-manager'; import { DotPluginModule } from './plugins/dot-plugin'; import { ImagePluginModule } from './plugins/image-plugin'; +import { SVGPluginModule } from './plugins/svg-plugin'; +import { InternalPluginModule } from './plugins/internal-plugin'; const MODULE_NAME = 'rediagram'; @@ -17,8 +19,15 @@ export async function createRediagramCore(): Promise { const plugins = PluginManager.createWithPresetModules(logger.getChildLogger({ name: 'rediagram/PluginManager' }), [ DotPluginModule, ImagePluginModule, + SVGPluginModule, + InternalPluginModule, + ]); + await Promise.all([ + plugins.init(DotPluginModule.name, config.options.dot), + plugins.init(ImagePluginModule.name), + plugins.init(SVGPluginModule.name), + plugins.init(InternalPluginModule.name), ]); - await Promise.all([plugins.init(DotPluginModule.name, config.options.dot), plugins.init(ImagePluginModule.name)]); const core = new Core(config, logger, plugins); return core; diff --git a/packages/common/src/plugin-manager.ts b/packages/common/src/plugin-manager.ts index 0197f84c..ff44f033 100644 --- a/packages/common/src/plugin-manager.ts +++ b/packages/common/src/plugin-manager.ts @@ -1,4 +1,11 @@ -import { Logger, RediagramExporter, RediagramPlugin, RediagramPluginModule, RediagramRenderer } from './types'; +import { + Logger, + RediagramExporter, + RediagramPlugin, + RediagramPluginModule, + RediagramRenderer, + RediagramTransformer, +} from './types'; export class PluginManager { private static assertsPluginModule(obj: any): asserts obj is RediagramPluginModule { @@ -23,6 +30,8 @@ export class PluginManager { private preloads = new Map(); + private transformers = new Map(); + private renderers = new Map(); private exporters = new Map(); @@ -67,6 +76,13 @@ export class PluginManager { this.exporters.set(name, exporter); }); } + + if (plugin.transformers) { + Object.entries(plugin.transformers).forEach(([name, transformer]) => { + this.logger.debug(`"${name}" seted to transformers`); + this.transformers.set(name, transformer); + }); + } } public getRenderer(name: string): RediagramRenderer { @@ -84,4 +100,8 @@ export class PluginManager { } return exporter; } + + public getTransformers(): IterableIterator<[string, RediagramTransformer]> { + return this.transformers.entries(); + } } diff --git a/packages/common/src/plugins/dot-plugin.ts b/packages/common/src/plugins/dot-plugin.ts index 5b0bca2d..58906874 100644 --- a/packages/common/src/plugins/dot-plugin.ts +++ b/packages/common/src/plugins/dot-plugin.ts @@ -12,7 +12,8 @@ export const DotPluginModule: RediagramPluginModule = { return { renderers: { async dot(element) { - const buf = await exportToBuffer(renderToDot(element), { + const dot = renderToDot(element); + const buf = await exportToBuffer(dot, { format: 'svg', suppressWarnings: true, childProcessOptions: { diff --git a/packages/common/src/plugins/image-plugin.ts b/packages/common/src/plugins/image-plugin.ts index 8b37899b..e87696b2 100644 --- a/packages/common/src/plugins/image-plugin.ts +++ b/packages/common/src/plugins/image-plugin.ts @@ -1,45 +1,15 @@ -import fs from 'node:fs'; import path from 'node:path'; import sharp from 'sharp'; -import { INode, parse, stringify } from 'svgson'; import { RediagramExporter, RediagramPluginModule } from '../types'; -function encode(data: Buffer, mediaType: string) { - const dataBase64 = Buffer.isBuffer(data) ? data.toString('base64') : Buffer.from(data).toString('base64'); - const dataImgBase64 = `data:${mediaType};base64,${dataBase64}`; - - return dataImgBase64; -} - -function emmbedImage(node: INode): void { - if (node.type === 'element' && node.name === 'image') { - const imagePath = node.attributes['xlink:href']; - if (imagePath) { - const imgFormat = path.extname(imagePath).slice(1); - const image = fs.readFileSync(imagePath, { flag: 'r' }); - const imageSrc = encode(image, `image/${imgFormat}`); - // eslint-disable-next-line no-param-reassign - node.attributes['xlink:href'] = imageSrc; - } - } - node.children.forEach(emmbedImage); -} - function toFormat(type: keyof sharp.FormatEnum): RediagramExporter { return async (svg, option) => { - const ast = await parse(svg, { - transformNode(node) { - emmbedImage(node); - return node; - }, - }); - const output = path.format({ dir: option.dir, name: option.name, ext: `.${option.format}`, }); - await sharp(Buffer.from(stringify(ast)), { + await sharp(Buffer.from(svg), { density: 96, }) .toFormat(type) diff --git a/packages/common/src/plugins/internal-plugin.ts b/packages/common/src/plugins/internal-plugin.ts new file mode 100644 index 00000000..90f7f9a5 --- /dev/null +++ b/packages/common/src/plugins/internal-plugin.ts @@ -0,0 +1,35 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { RediagramPluginModule, SVGNode } from '../types'; + +function encode(data: Buffer, mediaType: string) { + const dataBase64 = Buffer.isBuffer(data) ? data.toString('base64') : Buffer.from(data).toString('base64'); + const dataImgBase64 = `data:${mediaType};base64,${dataBase64}`; + + return dataImgBase64; +} + +async function emmbedImage(node: SVGNode): Promise { + if (node.type === 'element' && node.name === 'image') { + const imagePath = node.attributes['xlink:href']; + if (imagePath) { + const imgFormat = path.extname(imagePath).slice(1); + const image = fs.readFileSync(imagePath, { flag: 'r' }); + const imageSrc = encode(image, `image/${imgFormat}`); + // eslint-disable-next-line no-param-reassign + node.attributes['xlink:href'] = imageSrc; + } + } + node.children.forEach(emmbedImage); +} + +export const InternalPluginModule: RediagramPluginModule = { + name: 'internal', + setup() { + return { + transformers: { + emmbedImage, + }, + }; + }, +}; diff --git a/packages/common/src/plugins/svg-plugin.ts b/packages/common/src/plugins/svg-plugin.ts new file mode 100644 index 00000000..ab706fc6 --- /dev/null +++ b/packages/common/src/plugins/svg-plugin.ts @@ -0,0 +1,24 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { optimize } from 'svgo'; +import { ExportOption, RediagramPluginModule } from '../types'; + +export const SVGPluginModule: RediagramPluginModule = { + name: 'svg', + setup() { + return { + exporters: { + async svg(svg: string, option: Required): Promise { + const output = path.format({ + dir: option.dir, + name: option.name, + ext: '.svg', + }); + const { data } = optimize(svg); + await fs.promises.writeFile(output, data); + return output; + }, + }, + }; + }, +}; diff --git a/packages/common/src/types.ts b/packages/common/src/types.ts index 1debf151..81a20e36 100644 --- a/packages/common/src/types.ts +++ b/packages/common/src/types.ts @@ -1,9 +1,12 @@ /* eslint-disable @typescript-eslint/ban-types */ import { ReactElement, FC } from 'react'; +import { INode } from 'svgson'; import { Logger as TSLogLogger } from 'tslog'; export type Logger = TSLogLogger; +export type SVGNode = INode; + export type RediagramConfig = { filepath: string | null; output: Readonly<{ @@ -46,6 +49,10 @@ export interface RediagramRenderer { (element: ReactElement): Promise; } +export interface RediagramTransformer { + (node: SVGNode): Promise; +} + export interface RediagramExporter { (svg: string, option: Required): Promise; } @@ -58,6 +65,9 @@ export interface RediagramPlugin { exporters?: { [name: string]: RediagramExporter; }; + transformers?: { + [name: string]: RediagramTransformer; + }; } export interface RediagramPluginContext { diff --git a/yarn.lock b/yarn.lock index 9a9fe4e3..14de6bec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2887,6 +2887,11 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@ts-graphviz/node@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@ts-graphviz/node/-/node-0.4.0.tgz#08597d80b4834bc7ba25c8e2eb5bc2f165a1b719" @@ -3224,6 +3229,13 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/svgo@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/svgo/-/svgo-2.4.2.tgz#545f1e838a883d5e6006a458e07dddf47ca504ca" + integrity sha512-z/S0Ot40/oKEVmJnf9aS6Nk7nqH14KpAjAwR1qVGG08lZmH0LkNu7OHW1791tkHtsNW6sQl/OoWTfwWbosNArA== + dependencies: + "@types/node" "*" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -4804,7 +4816,7 @@ commander@^6.1.0, commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.1.0: +commander@^7.1.0, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -5214,7 +5226,7 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -9888,6 +9900,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nanocolors@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" + integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== + nanoid@^3.1.23: version "3.1.23" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" @@ -13200,6 +13217,19 @@ svgo@^2.3.0: csso "^4.2.0" stable "^0.1.8" +svgo@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.7.0.tgz#e164cded22f4408fe4978f082be80159caea1e2d" + integrity sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + nanocolors "^0.1.12" + stable "^0.1.8" + svgson@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/svgson/-/svgson-5.2.1.tgz#7481fb1af4a58be542a6bd2020c168c6b71381cb" From 7e8481896672f43d58f80df0fde5851dda0c4d9c Mon Sep 17 00:00:00 2001 From: Yuki Yamazaki <35218186+kamiazya@users.noreply.github.com> Date: Sat, 18 Dec 2021 06:49:34 +0000 Subject: [PATCH 7/7] fix: esbuild-node-loader version --- packages/cli/package.json | 2 +- yarn.lock | 219 ++++++++++++++++++++------------------ 2 files changed, 114 insertions(+), 107 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index e9baed1a..bb4ef4d5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,7 +40,7 @@ "@types/react-dom": "^16.9.8", "chokidar": "^3.4.3", "commander": "^6.1.0", - "esbuild-node-loader": "kamiazya/esbuild-node-loader#fix-load-with-query", + "esbuild-node-loader": "^0.6.3", "fast-glob": "^3.2.4", "prop-types": "^15.7.2", "react": "^16.13.1", diff --git a/yarn.lock b/yarn.lock index 14de6bec..fbbc2387 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5998,113 +5998,120 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-arm64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.2.tgz#7f00f620d1fc3fb2d6b5b8a6a80b1bdd15d4e6c6" - integrity sha512-Eh2paXUWYqf5JgikdkC0LnhtjSC8tGAz/L2kJRlMC0o3DzOBIxcmT2fdzBerdhW4roY0bOExfcO6deI1qsxI/A== - -esbuild-darwin-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.2.tgz#e844c7ea708ca791d172300009db27ae4229390d" - integrity sha512-jqp6uXHIIAWZ8kxRqFjxyMmIE1cuSbINellwwigOgk44eLg74ls82oqjY72MbDAowPivQkOU/fF7tsyaGQf5Zg== - -esbuild-darwin-arm64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.2.tgz#2bc42bc24a3a9779fe5569d5f2ab4c39bd3483b7" - integrity sha512-bD4oAyPZdzOWEA/JoX0sAitOhjJRwhomhWMeyRyowtlVQhQleG2ijRUKTvkq4CAvSobrW5EnZxjvHNKJ5L7zJg== - -esbuild-freebsd-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.2.tgz#f2f20c45cd3998bbb8dff1f249cb38aa459c73ad" - integrity sha512-fFJ0yc3lZyfwca+F5OPN/s+izozWryUQpN8aUMIdUkOa7UKX0h3xXrKnkDgdOo8vy3d1A6zHH0/4f2VJfEzLCg== - -esbuild-freebsd-arm64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.2.tgz#ae364988459110f51e9f37773dfb7cc10931c971" - integrity sha512-DWBZauEfjmqdfWxIacI+KBEim3ulOjtvK+WVm1bX67XlfyUVIkD915OIfT2EBhQUWmv+Z0tZZwskSMNj5DKojw== - -esbuild-linux-32@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.2.tgz#e95aa1f16037ca7e7313fd1a0dca296719b39b1b" - integrity sha512-Gt2rNqqRCRh1QQC2d83KP0iWIXWQYpns7l2+41a1n0PQxXkQ5AarpjjL9mUzdXtcZauNXbUvWwBKAuBTCW+XQg== - -esbuild-linux-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.2.tgz#4b4b314daff70f94411487801641687f771a7528" - integrity sha512-yT0D5Xly8oGHuqq975k1XUyULHzk3fN/ZlTY+awlU+nCFsYPZ43NE5msGpxlNQu8i6KOXQEke5GXN3y5d+Zd4g== - -esbuild-linux-arm64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.2.tgz#170ba8807c1a5e44e98cbe66d333a355ed26933a" - integrity sha512-qwXL+3NDCWiC8RMKBBETpuOWdC+pUAUS+pwg9jJmapYblLdVKkyRtwF/ogj06TdYs6riSSNikW8HK/Xs0HHbbQ== - -esbuild-linux-arm@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.2.tgz#50731067c280dc77a60526e99a23260a38b41868" - integrity sha512-KXeyotqj9jbvCjbSpwnxDE8E8jKoBgrgbJpOvvY5Zz7Pp2fAwu/94vWQtE/jPEJndY4C4MSs+ryJLFWzmLOa4w== - -esbuild-linux-mips64le@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.2.tgz#030945ccde601f2ce1b70f3aa22240128047be05" - integrity sha512-sx8eheRX2XC2ppNAsbQm8/VUcU8XPYGpJK0BEyRefqHONz6u5Ib2guUdOz2Wh4YlbA7oOd482lHjprXSTwUcrQ== - -esbuild-linux-ppc64le@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.2.tgz#1a028df8caa5e0423d93217b9b4515d879007d07" - integrity sha512-y8iZ3qy2TIAKKsZ6xSopCztHOtGW9oiYDl22vQ0UIoVWjnfRKrbSzX7Y2F94y32hSvRWle6OhAIC+UpS5nQmIA== - -esbuild-node-loader@kamiazya/esbuild-node-loader#fix-load-with-query: - version "0.4.1" - resolved "https://codeload.github.com/kamiazya/esbuild-node-loader/tar.gz/bc911ccb5f44e9a45406a0009a55b2f4ceab5920" - dependencies: - esbuild "^0.13.2" - -esbuild-openbsd-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.2.tgz#13bbcfc37806b68116e5669e03782e501c5c0720" - integrity sha512-g6AYrjBeV9OK624bw0KQ1TjHJQSW+X1Yicyd1NvDWqSFpMqKAjw7EUX4tA87mOFqv8BflPGr4f43ySgNvSVzIw== - -esbuild-sunos-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.2.tgz#e23cfc6222527940ca6da0a592be0de05ab6e1ad" - integrity sha512-hIXvFIyrqwFd6v62XSra0ctCUXDS9Tu5D6QYbvnbhEoBmvD/TmEJRYRH48/+xmRifKJLzu6aegcrjAsDmaww7g== - -esbuild-windows-32@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.2.tgz#d45f1480c6ee933065a8e9cb9849ef0d70aeb7e7" - integrity sha512-Y767LG0NFkw0sPoDVOTKC5gaj4vURjjWfSCCDV5awpXXxBKOF2zsIp3aia4KvVoivoSSeRPk3emDd0OPHuPrKg== - -esbuild-windows-64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.2.tgz#c2e78f863e3f071f3e114afd9cd84222926cf2b3" - integrity sha512-01b59kVJUMasctn6lzswC0drchr7zO75QtF22o5w0nlOw0Zorw0loY/8i5choFuWc30gXJId9qBSc1zPvt7uEw== - -esbuild-windows-arm64@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.2.tgz#15dc550c07c0ec078ca704e1d31cf84e6d4ad8ed" - integrity sha512-HxyY604ytmh8NkPYyS1TdIB/bFS7DWd1hP90e8Ovo/elEdN5I13h0tyIatDYZkXKS0Ztk+9T/3h6K0fI1a/4tQ== - -esbuild@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.2.tgz#f7d9ee4d102601097b0b424f3322cd25351870c5" - integrity sha512-/tpIqo45hyRREGqh7hsIut8GwY1X2n9IhKbIwRIXUO6IohzG3/RarSGX7dT2eNvYzIbQmelpX+ZyuIphE5u+Bw== +esbuild-android-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" + integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== + +esbuild-darwin-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" + integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== + +esbuild-darwin-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" + integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== + +esbuild-freebsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" + integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== + +esbuild-freebsd-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" + integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== + +esbuild-linux-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" + integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== + +esbuild-linux-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" + integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== + +esbuild-linux-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" + integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== + +esbuild-linux-arm@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" + integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== + +esbuild-linux-mips64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" + integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== + +esbuild-linux-ppc64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" + integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== + +esbuild-netbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" + integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== + +esbuild-node-loader@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/esbuild-node-loader/-/esbuild-node-loader-0.6.3.tgz#3b90012f8bc2fcbb2ef76a659482c2c99840c5e8" + integrity sha512-Bf6o8SiMMh5+r20jsjAThNOtzo3t8Ye4Qdzz+twWHnxu28SdkGUr5ahq8iX0qbd+I9ge8sLNX7oQoNW1YzHlqA== + dependencies: + esbuild "^0.13.12" + +esbuild-openbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" + integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== + +esbuild-sunos-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" + integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== + +esbuild-windows-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" + integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== + +esbuild-windows-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" + integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== + +esbuild-windows-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" + integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== + +esbuild@^0.13.12: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" + integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== optionalDependencies: - esbuild-android-arm64 "0.13.2" - esbuild-darwin-64 "0.13.2" - esbuild-darwin-arm64 "0.13.2" - esbuild-freebsd-64 "0.13.2" - esbuild-freebsd-arm64 "0.13.2" - esbuild-linux-32 "0.13.2" - esbuild-linux-64 "0.13.2" - esbuild-linux-arm "0.13.2" - esbuild-linux-arm64 "0.13.2" - esbuild-linux-mips64le "0.13.2" - esbuild-linux-ppc64le "0.13.2" - esbuild-openbsd-64 "0.13.2" - esbuild-sunos-64 "0.13.2" - esbuild-windows-32 "0.13.2" - esbuild-windows-64 "0.13.2" - esbuild-windows-arm64 "0.13.2" + esbuild-android-arm64 "0.13.15" + esbuild-darwin-64 "0.13.15" + esbuild-darwin-arm64 "0.13.15" + esbuild-freebsd-64 "0.13.15" + esbuild-freebsd-arm64 "0.13.15" + esbuild-linux-32 "0.13.15" + esbuild-linux-64 "0.13.15" + esbuild-linux-arm "0.13.15" + esbuild-linux-arm64 "0.13.15" + esbuild-linux-mips64le "0.13.15" + esbuild-linux-ppc64le "0.13.15" + esbuild-netbsd-64 "0.13.15" + esbuild-openbsd-64 "0.13.15" + esbuild-sunos-64 "0.13.15" + esbuild-windows-32 "0.13.15" + esbuild-windows-64 "0.13.15" + esbuild-windows-arm64 "0.13.15" escalade@^3.0.2, escalade@^3.1.1: version "3.1.1"

(IMvuomn75+@RVzA>iFQ)>^ME#298?h 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 J%Q~loCIB%j<6r;) literal 43134 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 diff --git a/examples/gallery/img/MyInfra.rediagram.png b/examples/gallery/img/MyInfra.rediagram.png index 0b4a7acfbc201b31bda535fe70142d549e74b489..524103659895c57ad7674ac6c965aff15e1a006b 100644 GIT binary patch literal 45623 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 literal 40842 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�YIMg?l~AO>dAN>|-?~ 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 diff --git a/examples/gallery/img/firebase.rediagram.png b/examples/gallery/img/firebase.rediagram.png index d02c0c941e295c1790cf7e94864e91495f55b0d0..3e4c56c484344ac134f74062273b6b27d5da8db0 100644 GIT binary patch literal 22474 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 literal 22951 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", "description": "Component Development Kit for rediagram library.", @@ -28,7 +31,7 @@ "watch": "tsc --watch" }, "peerDependencies": { - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "prop-types": "^15.7.2", "react": "^16.13.1", "ts-graphviz": "^0.16.0" diff --git a/packages/cdk/rollup.config.js b/packages/cdk/rollup.config.js index 86499bba..e6594125 100644 --- a/packages/cdk/rollup.config.js +++ b/packages/cdk/rollup.config.js @@ -8,7 +8,7 @@ const options = [ input: './src/index.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/index.js', }, ], diff --git a/packages/cli/bin/rediagramc.js b/packages/cli/bin/rediagramc.js index 36d89278..91f2045f 100755 --- a/packages/cli/bin/rediagramc.js +++ b/packages/cli/bin/rediagramc.js @@ -1,2 +1,2 @@ -#!/usr/bin/env node -require('../lib/rediagramc'); +#!/usr/bin/env -S node --experimental-loader esbuild-node-loader +import '../lib/rediagramc.js'; diff --git a/packages/cli/package.json b/packages/cli/package.json index 8c2c848d..e9baed1a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -5,6 +5,7 @@ "description": "CLI for rediagram.", "author": "kamiazya ", "homepage": "https://github.com/kamiazya/rediagram", + "type": "module", "repository": { "type": "git", "url": "https://github.com/kamiazya/rediagram.git", @@ -32,19 +33,19 @@ "dependencies": { "@rediagram/aws": "^0.4.2", "@rediagram/common": "^0.0.3", - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "@types/node": "^16.4.5", "@types/prop-types": "^15.7.3", "@types/react": "^16.9.35", "@types/react-dom": "^16.9.8", "chokidar": "^3.4.3", "commander": "^6.1.0", + "esbuild-node-loader": "kamiazya/esbuild-node-loader#fix-load-with-query", "fast-glob": "^3.2.4", "prop-types": "^15.7.2", "react": "^16.13.1", "react-dom": "^16.13.1", "rediagram": "^0.2.5", - "sucrase": "^3.16.0", "ts-graphviz": "^0.16.0", "typescript": "^4.0.2" }, @@ -52,6 +53,6 @@ "rimraf": "^3.0.2", "rollup": "^2.55.0", "rollup-plugin-typescript2": "^0.30.0", - "ts-node": "^9.0.0" + "rollup-plugin-version-injector": "^1.3.3" } } diff --git a/packages/cli/rollup.config.js b/packages/cli/rollup.config.js index 8654aaf9..54b69b89 100644 --- a/packages/cli/rollup.config.js +++ b/packages/cli/rollup.config.js @@ -1,13 +1,19 @@ import typescript from 'rollup-plugin-typescript2'; +import versionInjector from 'rollup-plugin-version-injector'; -export default { - input: './src/rediagramc.ts', - output: [ - { - format: 'cjs', - file: './lib/rediagramc.js', - }, - ], - external: ['commander', 'fast-glob', 'path', 'fs', 'sucrase/dist/register', 'rediagram', 'chokidar'], - plugins: [typescript()], -}; +/** @type {import('rollup').RollupOptions[]} */ +const options = [ + { + input: './src/rediagramc.ts', + output: [ + { + format: 'module', + file: './lib/rediagramc.js', + }, + ], + external: ['commander', 'fast-glob', 'path', 'fs', 'rediagram', 'chokidar'], + plugins: [typescript(), versionInjector()], + }, +]; + +export default options; diff --git a/packages/cli/src/pkg.ts b/packages/cli/src/pkg.ts deleted file mode 100644 index 0f5c58b7..00000000 --- a/packages/cli/src/pkg.ts +++ /dev/null @@ -1,10 +0,0 @@ -import path from 'path'; -import fs from 'fs'; - -type PKG = { - version: string; -}; - -const pkg: PKG = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf-8')); - -export default pkg; diff --git a/packages/cli/src/rediagramc.ts b/packages/cli/src/rediagramc.ts index 22f44936..445ae1bb 100644 --- a/packages/cli/src/rediagramc.ts +++ b/packages/cli/src/rediagramc.ts @@ -2,8 +2,6 @@ import cmd from 'commander'; import glob from 'fast-glob'; import chokidar from 'chokidar'; import { Rediagram } from 'rediagram'; -import { registerAll } from 'sucrase/dist/register'; -import pkg from './pkg'; type Options = { watch: boolean; @@ -15,11 +13,10 @@ const logger = Rediagram.logger.getChildLogger({ name: NAME }); cmd .name(NAME) - .version(pkg.version) + .version('[VI]{version}[/VI]') .arguments('[pattarns...]') .option('-w, --watch', 'Watch files for changes and rerun rediagram related to changed files.', false) .action(async function rediagramc(this: Options, pattarns: string[]): Promise { - registerAll(); const paths = pattarns.length >= 1 ? pattarns @@ -44,7 +41,6 @@ cmd sources.forEach(async (src) => { logger.info('Start', src); await Rediagram.run(src); - logger.info('End', src); }); } }) diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 2737e15b..339f3fe9 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "lib", "rootDir": "src", - "declaration": false + "declaration": true }, "include": [ "src/**/*.ts", diff --git a/packages/common/package.json b/packages/common/package.json index 6c462a48..19dea355 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,7 +1,10 @@ { "name": "@rediagram/common", "version": "0.0.3", - "main": "lib/index.js", + "type": "module", + "exports": { + "import": "./lib/index.js" + }, "types": "lib/index.d.ts", "author": "kamiazya ", "description": "Common config and utility for rediagram.", @@ -29,12 +32,15 @@ }, "dependencies": { "@ts-graphviz/node": "^0.4.0", - "@ts-graphviz/react": "^0.9.0", + "@ts-graphviz/react": "^0.9.1", "cosmiconfig": "^7.0.1", "fs-extra": "^10.0.0", + "sharp": "^0.29.1", + "svgson": "^5.2.1", "tslog": "^3.2.1" }, "devDependencies": { + "@types/sharp": "^0.29.2", "rollup": "^2.55.0", "rollup-plugin-delete": "^2.0.0", "rollup-plugin-dts": "^3.0.2", diff --git a/packages/common/rollup.config.js b/packages/common/rollup.config.js index 8c5e8c99..7fb9d4e3 100644 --- a/packages/common/rollup.config.js +++ b/packages/common/rollup.config.js @@ -8,11 +8,21 @@ const options = [ input: './src/index.ts', output: [ { - format: 'cjs', + format: 'module', file: './lib/index.js', }, ], - external: ['path', 'cosmiconfig', 'fs-extra', 'tslog', '@ts-graphviz/react', '@ts-graphviz/node'], + external: [ + 'path', + 'cosmiconfig', + 'fs-extra', + 'tslog', + 'sharp', + '@ts-graphviz/react', + '@ts-graphviz/node', + 'node:path', + 'rehype', + ], plugins: [typescript()], }, { diff --git a/packages/common/src/config/beta1.ts b/packages/common/src/config/beta1.ts index ffd1adae..4b9f0182 100644 --- a/packages/common/src/config/beta1.ts +++ b/packages/common/src/config/beta1.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-namespace */ -import path from 'path'; +import path from 'node:path'; import { Format } from '@ts-graphviz/node'; import { RediagramConfig } from '../types'; @@ -17,6 +17,7 @@ export namespace beta1 { dot?: { timeout?: number; }; + plugins?: { name: string; [key: string]: unknown }[]; } export function load(filepath: string, data: Config): RediagramConfig { @@ -26,13 +27,16 @@ export namespace beta1 { dir: path.resolve(path.dirname(filepath), data.output?.dir ?? '.'), format: data.output?.type ?? 'png', }, + options: { + dot: data.dot ?? {}, + }, scope: { includes: data.includes ?? ['**/*.rediagram.{jsx,tsx}'], excludes: data.excludes ?? ['**/node_modules/**/*'], }, - dot: { - timeout: data.dot?.timeout ?? 10_000, - }, + // dot: { + // timeout: data.dot?.timeout ?? 10_000, + // }, }; } } diff --git a/packages/common/src/config/default.ts b/packages/common/src/config/default.ts index f4533eaa..26c92ee6 100644 --- a/packages/common/src/config/default.ts +++ b/packages/common/src/config/default.ts @@ -3,15 +3,16 @@ import { RediagramConfig } from '../types'; export function createDefaultConfig(): RediagramConfig { return { filepath: null, - scope: { - includes: ['**/*.rediagram.{jsx,tsx}'], - excludes: ['**/node_modules/**/*'], - }, output: { format: 'png', }, - dot: { - timeout: 10_000, + options: {}, + scope: { + includes: ['**/*.rediagram.{jsx,tsx}'], + excludes: ['**/node_modules/**/*'], }, + // dot: { + // timeout: 10_000, + // }, }; } diff --git a/packages/common/src/core.ts b/packages/common/src/core.ts index f999a3b1..a01c457a 100644 --- a/packages/common/src/core.ts +++ b/packages/common/src/core.ts @@ -1,49 +1,63 @@ -import path from 'path'; +import path from 'node:path'; import { ensureDir } from 'fs-extra'; import { ReactElement } from 'react'; -import { renderToDot } from '@ts-graphviz/react'; -import { exportToFile } from '@ts-graphviz/node'; -import { RediagramConfig, Logger, RenderOption, RediagramCore } from './types'; +import { RediagramConfig, Logger, ExportOption, RediagramCore, RediagramRootComponent } from './types'; +import { PluginManager } from './plugin-manager'; export class Core implements RediagramCore { + private plugins: PluginManager; + public readonly logger: Logger; public readonly config: Readonly; - constructor(config: RediagramConfig, logger: Logger) { + constructor(config: RediagramConfig, logger: Logger, plugins: PluginManager) { this.config = Object.freeze({ ...config }); this.logger = logger; + this.plugins = plugins; + } + + public render(element: ReactElement): Promise { + const render = this.plugins.getRenderer(element.type.renderer); + return render(element); } - public async render(element: ReactElement, options: RenderOption): Promise { - const dot = renderToDot(element); - const dir = options.dir ?? this.config.output.dir; - const format = options.format ?? this.config.output.format; + public async export(svg: string, option: ExportOption): Promise { + const dir = + option.dir ?? + this.config.output.dir ?? + (this.config.filepath ? path.dirname(this.config.filepath) : process.cwd()); + const format = option.format ?? this.config.output.format; const output = path.format({ dir, - name: options.name, + name: option.name, ext: `.${format}`, }); if (dir !== undefined) { await ensureDir(dir); } - await exportToFile(dot, { + const exportFunc = this.plugins.getExporter(format); + await exportFunc(svg, { + dir, + name: option.name, format, - output, - childProcessOptions: { - timeout: this.config.dot.timeout, - }, }); return output; } + public async process(element: ReactElement, options: ExportOption): Promise { + const svg = await this.render(element); + const output = await this.export(svg, options); + return output; + } + public async run(src: string): Promise { try { this.logger.info('Runing', src); const resolved = path.resolve(src); - // eslint-disable-next-line global-require, import/no-dynamic-require - require(resolved); - delete require.cache[resolved]; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + await import(`${resolved}?${Date.now()}`); } catch (err) { this.logger.error(err); } diff --git a/packages/common/src/create-rediagram-core.ts b/packages/common/src/create-rediagram-core.ts index 317372ab..1770e383 100644 --- a/packages/common/src/create-rediagram-core.ts +++ b/packages/common/src/create-rediagram-core.ts @@ -2,6 +2,9 @@ import { RediagramCore } from './types'; import { Core } from './core'; import { ROOT_LOGGER } from './root-logger'; import { loadConfig } from './load-config'; +import { PluginManager } from './plugin-manager'; +import { DotPluginModule } from './plugins/dot-plugin'; +import { ImagePluginModule } from './plugins/image-plugin'; const MODULE_NAME = 'rediagram'; @@ -11,5 +14,13 @@ const MODULE_NAME = 'rediagram'; export function createRediagramCore(): RediagramCore { const logger = ROOT_LOGGER.getChildLogger({ name: MODULE_NAME }); const config = loadConfig(MODULE_NAME); - return new Core(config, logger); + const plugins = PluginManager.createWithPresetModules(logger.getChildLogger({ name: 'rediagram/PluginManager' }), [ + DotPluginModule, + ImagePluginModule, + ]); + plugins.init(DotPluginModule.name, config.options.dot); + plugins.init(ImagePluginModule.name); + + const core = new Core(config, logger, plugins); + return core; } diff --git a/packages/common/src/plugin-manager.ts b/packages/common/src/plugin-manager.ts new file mode 100644 index 00000000..0ecbb8e5 --- /dev/null +++ b/packages/common/src/plugin-manager.ts @@ -0,0 +1,88 @@ +import { Logger, RediagramExporter, RediagramPlugin, RediagramPluginModule, RediagramRenderer } from './types'; + +export class PluginManager { + private static assertsPluginModule(obj: any): asserts obj is RediagramPluginModule { + if (typeof obj.name !== 'string') { + throw new Error('name is reqired'); + } + if (obj.name.length === 0) { + throw new Error('name must be more then 1 charactor'); + } + if (typeof obj.setup !== 'function') { + throw new Error('setup function is reqired'); + } + } + + public static createWithPresetModules(logger: Logger, pluginModules: RediagramPluginModule[]): PluginManager { + const plugins = new PluginManager(logger); + pluginModules.forEach((pluginModule) => { + plugins.loadPreset(pluginModule); + }); + return plugins; + } + + private preloads = new Map(); + + private renderers = new Map(); + + private exporters = new Map(); + + constructor(private readonly logger: Logger) {} + + public loadPreset(pluginModule: RediagramPluginModule): void { + this.logger.debug(`"${pluginModule.name}" seted to preloads`); + this.preloads.set(pluginModule.name, pluginModule); + } + + private resolvePlugin(nameOrKey: string): RediagramPluginModule { + let pluginModule = this.preloads.get(nameOrKey); + if (pluginModule) { + return pluginModule; + } + // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires, global-require + pluginModule = require(nameOrKey); + PluginManager.assertsPluginModule(pluginModule); + return pluginModule; + } + + public createPlugin(name: string, option: T): RediagramPlugin { + const pluginModule = this.resolvePlugin(name); + return pluginModule.setup({ option: option ?? {}, logger: this.logger.getChildLogger({ name }) }); + } + + public init(name: string, option?: Record): void { + this.load(this.createPlugin(name, option)); + } + + public load(plugin: RediagramPlugin): void { + if (plugin.renderers) { + Object.entries(plugin.renderers).forEach(([name, renderer]) => { + this.logger.debug(`"${name}" seted to renderers`); + this.renderers.set(name, renderer); + }); + } + + if (plugin.exporters) { + Object.entries(plugin.exporters).forEach(([name, exporter]) => { + this.logger.debug(`"${name}" seted to exporters`); + this.exporters.set(name, exporter); + }); + } + } + + public getRenderer(name: string): RediagramRenderer { + const func = this.renderers.get(name); + if (!func) { + throw new Error(`"${name}" renderer not found.`); + } + return func; + } + + public getExporter(name: string): RediagramExporter { + const exporter = this.exporters.get(name); + if (!exporter) { + throw new Error(`"${name}" exporter not found.`); + } + return exporter; + } +} diff --git a/packages/common/src/plugins/dot-plugin.ts b/packages/common/src/plugins/dot-plugin.ts new file mode 100644 index 00000000..5b0bca2d --- /dev/null +++ b/packages/common/src/plugins/dot-plugin.ts @@ -0,0 +1,27 @@ +import { exportToBuffer } from '@ts-graphviz/node'; +import { renderToDot } from '@ts-graphviz/react'; +import { RediagramPlugin, RediagramPluginModule } from '../types'; + +interface DotPluginOption { + timeout?: number; +} + +export const DotPluginModule: RediagramPluginModule = { + name: 'dot', + setup({ option: { timeout = 10_000 } }): RediagramPlugin { + return { + renderers: { + async dot(element) { + const buf = await exportToBuffer(renderToDot(element), { + format: 'svg', + suppressWarnings: true, + childProcessOptions: { + timeout, + }, + }); + return buf.toString('utf-8'); + }, + }, + }; + }, +}; diff --git a/packages/common/src/plugins/image-plugin.ts b/packages/common/src/plugins/image-plugin.ts new file mode 100644 index 00000000..8b37899b --- /dev/null +++ b/packages/common/src/plugins/image-plugin.ts @@ -0,0 +1,63 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import sharp from 'sharp'; +import { INode, parse, stringify } from 'svgson'; +import { RediagramExporter, RediagramPluginModule } from '../types'; + +function encode(data: Buffer, mediaType: string) { + const dataBase64 = Buffer.isBuffer(data) ? data.toString('base64') : Buffer.from(data).toString('base64'); + const dataImgBase64 = `data:${mediaType};base64,${dataBase64}`; + + return dataImgBase64; +} + +function emmbedImage(node: INode): void { + if (node.type === 'element' && node.name === 'image') { + const imagePath = node.attributes['xlink:href']; + if (imagePath) { + const imgFormat = path.extname(imagePath).slice(1); + const image = fs.readFileSync(imagePath, { flag: 'r' }); + const imageSrc = encode(image, `image/${imgFormat}`); + // eslint-disable-next-line no-param-reassign + node.attributes['xlink:href'] = imageSrc; + } + } + node.children.forEach(emmbedImage); +} + +function toFormat(type: keyof sharp.FormatEnum): RediagramExporter { + return async (svg, option) => { + const ast = await parse(svg, { + transformNode(node) { + emmbedImage(node); + return node; + }, + }); + + const output = path.format({ + dir: option.dir, + name: option.name, + ext: `.${option.format}`, + }); + await sharp(Buffer.from(stringify(ast)), { + density: 96, + }) + .toFormat(type) + .toFile(output); + return output; + }; +} + +export const ImagePluginModule: RediagramPluginModule = { + name: 'image', + setup() { + return { + exporters: { + png: toFormat('png'), + jpg: toFormat('jpg'), + jpeg: toFormat('jpeg'), + webp: toFormat('webp'), + }, + }; + }, +}; diff --git a/packages/common/src/types.ts b/packages/common/src/types.ts index 76a1c979..1debf151 100644 --- a/packages/common/src/types.ts +++ b/packages/common/src/types.ts @@ -1,30 +1,28 @@ -import { ReactElement } from 'react'; -import { Format } from '@ts-graphviz/node'; +/* eslint-disable @typescript-eslint/ban-types */ +import { ReactElement, FC } from 'react'; import { Logger as TSLogLogger } from 'tslog'; export type Logger = TSLogLogger; export type RediagramConfig = { filepath: string | null; - scope: Readonly<{ - includes: ReadonlyArray; - excludes: ReadonlyArray; - }>; output: Readonly<{ dir?: string; - format: Format; + format: string; }>; - dot: Readonly<{ - timeout: number; + options: { + [name: string]: Record; + }; + scope: Readonly<{ + includes: ReadonlyArray; + excludes: ReadonlyArray; }>; + // dot: Readonly<{ + // timeout: number; + // }>; }; -export interface RediagramPluginContext { - logger: Logger; - config: RediagramConfig; -} - -export type RenderOption = { +export interface ExportOption { /** * Output destination directory. */ @@ -36,12 +34,51 @@ export type RenderOption = { /** * Output file format. */ - format?: Format; + format?: string; +} + +export type RediagramRootComponent