Merge pull request #66 from microsoft/task/turbo

Use Turborepo
This commit is contained in:
Chris Trevino 2022-05-23 14:24:30 -07:00 коммит произвёл GitHub
Родитель 90e407bbb7 41a6cb72be
Коммит 5304d82df8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
47 изменённых файлов: 2070 добавлений и 823 удалений

Просмотреть файл

@ -10,13 +10,5 @@
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
},
"overrides": [
{
"files": ["packages/webapp/**"],
"rules": {
"import/extensions": "off"
}
}
]
}
}

1
.gitignore поставляемый
Просмотреть файл

@ -6,6 +6,7 @@ packages/*/lib/
packages/*/dist/
packages/*/build/
packages/*/docsTemp/
packages/*/.turbo/
# testing
/coverage

8
.yarn/versions/14e34997.yml поставляемый Normal file
Просмотреть файл

@ -0,0 +1,8 @@
declined:
- "@thematic/color"
- "@thematic/core"
- "@thematic/d3"
- "@thematic/fluent"
- "@thematic/react"
- "@thematic/vega"
- "@thematic/webapp"

Просмотреть файл

@ -5,19 +5,14 @@
"scripts": {
"preinstall": "npx only-allow yarn",
"postinstall": "husky install",
"clean": "yarn workspaces foreach -pv run clean",
"bundle": "yarn workspaces foreach -pv run bundle",
"build": "yarn workspaces foreach -pivt run build",
"start": "yarn workspaces foreach -piv run start",
"publish": "yarn workspaces foreach --exclude '@thematic/root' -pv npm publish --tolerate-republish --access public",
"version": "yarn workspaces foreach --exclude '@thematic/root' -iv version -d",
"lint": "essex lint --fix --strict",
"clean": "turbo run clean",
"build": "turbo run build",
"bundle": "turbo run bundle",
"lint": "turbo run lint",
"test": "turbo run test",
"publish": "turbo run release",
"prettify": "essex prettify",
"test": "yarn jest",
"jest": "NODE_OPTIONS=--experimental-vm-modules yarn node $(yarn bin jest) --runInBand",
"jest_coverage": "yarn jest --coverage",
"git-is-clean": "essex git-is-clean",
"ci": "run-s lint build bundle jest_coverage git-is-clean",
"ci": "turbo run ci && essex git-is-clean",
"release": "run-s clean build publish"
},
"workspaces": {
@ -26,12 +21,12 @@
]
},
"devDependencies": {
"@essex/eslint-config": "^20.3.4",
"@essex/jest-config": "^21.0.10",
"@essex/eslint-config": "^20.3.5",
"@essex/jest-config": "^21.0.11",
"@essex/prettier-config": "^18.0.2",
"@essex/scripts": "^22.0.1",
"@types/jest": "^27.5.0",
"@types/node": "^17.0.31",
"@essex/scripts": "^22.0.3",
"@types/jest": "^27.5.1",
"@types/node": "^17.0.35",
"eslint": "^8.14.0",
"husky": "^7.0.4",
"jest": "^28.0.3",
@ -40,6 +35,7 @@
"react": "^18.1.0",
"react-dom": "^18.1.0",
"regenerator-runtime": "^0.13.9",
"turbo": "^1.2.11",
"typescript": "^4.6.4"
},
"prettier": "@essex/prettier-config",

14
packages/color/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -0,0 +1,7 @@
/*!
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
import { configure } from '@essex/jest-config'
const configuration = configure()
export default configuration

Просмотреть файл

@ -16,7 +16,9 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --docs"
"build": "essex build --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"lint": "essex lint --fix"
},
"dependencies": {
"chroma-js": "^2.4.2",
@ -24,11 +26,13 @@
"hsluv": "^0.1.0"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/jest-config": "^21.0.11",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@types/chroma-js": "^2.1.3",
"@types/jest": "^27.5.0",
"@types/node": "^17.0.31"
"@types/jest": "^27.5.1",
"@types/node": "^17.0.35"
},
"peerDependencies": {
"@types/chroma-js": "*",

14
packages/core/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -0,0 +1,7 @@
/*!
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
import { configure } from '@essex/jest-config'
const configuration = configure()
export default configuration

Просмотреть файл

@ -16,7 +16,10 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --skipExportCheck --docs"
"build": "essex build --skipExportCheck --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"test": "NODE_OPTIONS=--experimental-vm-modules yarn node $(yarn bin jest) --runInBand",
"lint": "essex lint --fix"
},
"dependencies": {
"@thematic/color": "workspace:^",
@ -25,13 +28,16 @@
"murmurhash-js": "^1.0.0"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/jest-config": "^21.0.11",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@types/d3-scale": "^4.0.2",
"@types/jest": "^27.5.0",
"@types/jest": "^27.5.1",
"@types/lodash-es": "^4.17.6",
"@types/murmurhash-js": "^1.0.3",
"@types/node": "^17.0.31",
"@types/node": "^17.0.35",
"jest": "^28.1.0",
"npm-run-all": "^4.1.5"
},
"peerDependencies": {

14
packages/d3/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -16,7 +16,9 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --skipExportCheck --docs"
"build": "essex build --skipExportCheck --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"lint": "essex lint --fix"
},
"dependencies": {
"@thematic/core": "workspace:^",
@ -24,11 +26,12 @@
"d3-selection": "^3.0.0"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@types/d3-axis": "^3.0.1",
"@types/d3-selection": "^3.0.2",
"@types/node": "^17.0.31"
"@types/node": "^17.0.35"
},
"peerDependencies": {
"@types/d3-axis": ">= 1",

14
packages/fluent/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -0,0 +1,7 @@
/*!
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
import { configure } from '@essex/jest-config'
const configuration = configure()
export default configuration

Просмотреть файл

@ -16,7 +16,10 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --skipExportCheck --docs"
"build": "essex build --skipExportCheck --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"test": "NODE_OPTIONS=--experimental-vm-modules yarn node $(yarn bin jest) --runInBand",
"lint": "essex lint --fix"
},
"dependencies": {
"@thematic/color": "workspace:^",
@ -25,15 +28,18 @@
"d3-scale": "^4.0.2"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/jest-config": "^21.0.11",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@fluentui/font-icons-mdl2": "^8.3.2",
"@fluentui/react": "^8.67.2",
"@fluentui/font-icons-mdl2": "^8.4.0",
"@fluentui/react": "^8.68.4",
"@types/chroma-js": "^2.1.3",
"@types/d3-scale": "^4.0.2",
"@types/node": "^17.0.31",
"@types/react": "^18.0.8",
"@types/node": "^17.0.35",
"@types/react": "^18.0.9",
"chroma-js": "^2.4.2",
"jest": "^28.1.0",
"react": "^18.1.0"
},
"peerDependencies": {

14
packages/react/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -16,17 +16,20 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --skipExportCheck --docs"
"build": "essex build --skipExportCheck --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"lint": "essex lint --fix"
},
"dependencies": {
"@thematic/color": "workspace:^",
"@thematic/core": "workspace:^"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@types/node": "^17.0.31",
"@types/react": "^18.0.8",
"@types/node": "^17.0.35",
"@types/react": "^18.0.9",
"react": "^18.1.0"
},
"peerDependencies": {

14
packages/vega/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0
}
}

Просмотреть файл

@ -0,0 +1,7 @@
/*!
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
import { configure } from '@essex/jest-config'
const configuration = configure()
export default configuration

Просмотреть файл

@ -16,15 +16,21 @@
},
"scripts": {
"clean": "essex clean",
"build": "essex build --skipExportCheck --docs"
"build": "essex build --skipExportCheck --docs",
"release": "yarn npm publish --tolerate-republish --access public",
"test": "NODE_OPTIONS=--experimental-vm-modules yarn node $(yarn bin jest) --runInBand",
"lint": "essex lint --fix"
},
"dependencies": {
"@thematic/core": "workspace:^"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/jest-config": "^21.0.11",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@types/node": "^17.0.31",
"@types/node": "^17.0.35",
"jest": "^28.1.0",
"vega": "4.4.0"
},
"peerDependencies": {

27
packages/webapp/.eslintrc Normal file
Просмотреть файл

@ -0,0 +1,27 @@
{
"extends": "@essex/eslint-config",
"rules": {
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-non-null-assertion": 0,
// TODO: re-neable
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-return": 0,
"@essex/extensions": [
"error",
[
{
"files": ["**/*.{ts,tsx,mts,js,jsx,mjs}"],
"ignorePackages": true,
"relativeModulePrefixes": ["./"],
"expectedExtensions": [".js", ".css", ".json"],
"disallowedExtensions": []
}
]
]
}
}

Просмотреть файл

@ -9,7 +9,8 @@
"clean": "essex clean",
"build": "tsc -b . && essex bundle",
"start": "essex serve",
"start:webapp": "yarn start"
"start:webapp": "yarn start",
"lint": "essex lint --fix"
},
"repository": {
"type": "git",
@ -17,8 +18,8 @@
"directory": "packages/webapp"
},
"dependencies": {
"@fluentui/font-icons-mdl2": "^8.3.2",
"@fluentui/react": "^8.67.2",
"@fluentui/font-icons-mdl2": "^8.4.0",
"@fluentui/react": "^8.68.4",
"@thematic/color": "workspace:^",
"@thematic/core": "workspace:^",
"@thematic/d3": "workspace:^",
@ -34,15 +35,16 @@
"vega": "4.4.0"
},
"devDependencies": {
"@essex/scripts": "^22.0.1",
"@essex/eslint-config": "^20.3.5",
"@essex/scripts": "^22.0.3",
"@essex/tsconfig-base": "^1.0.2",
"@essex/webpack-config": "^21.0.2",
"@essex/webpack-config": "^21.0.3",
"@types/d3-axis": "^3.0.1",
"@types/d3-scale": "^4.0.2",
"@types/d3-selection": "^3.0.2",
"@types/node": "^17.0.31",
"@types/react": "^18.0.8",
"@types/react-dom": "^18.0.3",
"@types/node": "^17.0.35",
"@types/react": "^18.0.9",
"@types/react-dom": "^18.0.5",
"typescript": "^4.6.4"
},
"browserslist": [

Просмотреть файл

@ -5,7 +5,7 @@
import type { FC } from 'react'
import { MainPage } from '../pages/MainPage/index.js'
import { DataContext } from './DataContext'
import { DataContext } from './DataContext.js'
import { StyleContext } from './StyleContext.js'
export const App: FC = () => {

Просмотреть файл

@ -7,7 +7,7 @@ import { ApplicationStyles } from '@thematic/react'
import type { FC, ReactNode } from 'react'
import { memo } from 'react'
import { useTheme } from '../state'
import { useTheme } from '../state/index.js'
export const StyleContext: FC<{
children?: ReactNode

Просмотреть файл

@ -4,7 +4,7 @@
*/
import { createRoot } from 'react-dom/client'
import { App } from './App'
import { App } from './App/index.js'
function mount(): void {
try {

Просмотреть файл

@ -7,9 +7,10 @@ import './MainPage.css'
import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { ControlPanel } from './components/ControlPanel/ControlPanel'
import { ThemeEditor } from './components/ThemeEditor/ThemeEditor'
import { ThemeViewer } from './components/ThemeViewer/ThemeViewer'
import { ControlPanel } from './components/ControlPanel/ControlPanel.js'
import { ThemeEditor } from './components/ThemeEditor/ThemeEditor.js'
import { ThemeViewer } from './components/ThemeViewer/ThemeViewer.js'
export const MainPage: FC = () => {
const theme = useThematic()
return (

Просмотреть файл

@ -12,7 +12,7 @@ import { ColorPickerButton } from '@thematic/fluent'
import type { FC } from 'react'
import { useCallback, useMemo } from 'react'
import { EnumDropdown } from '../../../../components/EnumDropdown'
import { EnumDropdown } from '../../../../components/EnumDropdown.js'
export interface ControlPanelProps {
themes: ThemeListing[]

Просмотреть файл

@ -12,8 +12,8 @@ import {
useSetTheme,
useThemeInfo,
useThemes,
} from '../../../../state'
import { ControlPanel as ControlPanelBase } from './ControlPanel.base'
} from '../../../../state/index.js'
import { ControlPanel as ControlPanelBase } from './ControlPanel.base.js'
export const ControlPanel = () => {
const [drawNodes, setDrawNodes] = useDrawNodes()

Просмотреть файл

@ -8,10 +8,10 @@ import { mark2style, useThematic } from '@thematic/react'
import type { FC } from 'react'
import { Fragment, useMemo } from 'react'
import { ApplicationPalette } from './ApplicationPalette'
import { ColorBand } from './ColorBand'
import { ColorStrip } from './ColorStrip'
import { Contrast } from './Contrast'
import { ApplicationPalette } from './ApplicationPalette.js'
import { ColorBand } from './ColorBand.js'
import { ColorStrip } from './ColorStrip.js'
import { Contrast } from './Contrast.js'
// this is the same number we use under the hood when constructing the continuous scales,
// so it makes sense to use here and potentially allow the gradation bands to be visible,

Просмотреть файл

@ -7,14 +7,14 @@ import './ThemeEditor.css'
import { Pivot, PivotItem } from '@fluentui/react'
import type { FC } from 'react'
import { ColorPicker } from './panes/ColorPickerPane'
import { FluentPane } from './panes/FluentPane'
import { GimpPane } from './panes/GimpPane'
import { JSONPane } from './panes/JSONPane'
import { MarkGrid } from './panes/MarksPane'
import { OfficePane } from './panes/OfficePane'
import { PowerBIPane } from './panes/PowerBIPane'
import { ThemeColors } from './ThemeColors'
import { ColorPicker } from './panes/ColorPickerPane/index.js'
import { FluentPane } from './panes/FluentPane.js'
import { GimpPane } from './panes/GimpPane.js'
import { JSONPane } from './panes/JSONPane.js'
import { MarkGrid } from './panes/MarksPane/index.js'
import { OfficePane } from './panes/OfficePane.js'
import { PowerBIPane } from './panes/PowerBIPane.js'
import { ThemeColors } from './ThemeColors/index.js'
export interface ThemeEditorProps {
scaleItemCount: number

Просмотреть файл

@ -2,8 +2,8 @@
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
import { useScaleItemCount } from '../../../../state'
import { ThemeEditor as ThemeEditorBase } from './ThemeEditor.base'
import { useScaleItemCount } from '../../../../state/index.js'
import { ThemeEditor as ThemeEditorBase } from './ThemeEditor.base.js'
export const ThemeEditor = () => {
const [scaleItemCount] = useScaleItemCount()

Просмотреть файл

@ -7,8 +7,8 @@ import './ColorPicker.css'
import type { Theme } from '@thematic/core'
import type { FC } from 'react'
import { useSetTheme } from '../../../../../../state'
import { ColorSelection } from './ColorSelection'
import { useSetTheme } from '../../../../../../state/index.js'
import { ColorSelection } from './ColorSelection.js'
export interface ColorPickerProps {
themeLoaded: (theme: Theme) => void

Просмотреть файл

@ -7,8 +7,8 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import { DownloadLink } from '../../../../../components/DownloadLink'
import { FluentPalette } from './FluentPalette'
import { DownloadLink } from '../../../../../components/DownloadLink.js'
import { FluentPalette } from './FluentPalette.js'
/**
* This component hosts the Fluent Theme slots in the style of Thematic.

Просмотреть файл

@ -8,7 +8,7 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import { DownloadLink } from '../../../../../components/DownloadLink'
import { DownloadLink } from '../../../../../components/DownloadLink.js'
// the deep nesting of the component requires several layers of size adjustment
const styles = {
root: {

Просмотреть файл

@ -6,9 +6,9 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import { DownloadLink } from '../../../../../components/DownloadLink'
import { JSONEditor } from '../../../../../components/JSONEditor'
import { useScaleItemCount } from '../../../../../state'
import { DownloadLink } from '../../../../../components/DownloadLink.js'
import { JSONEditor } from '../../../../../components/JSONEditor.js'
import { useScaleItemCount } from '../../../../../state/index.js'
export interface JSONPaneProps {
scaleItemCount?: number

Просмотреть файл

@ -7,7 +7,13 @@ import { mark2style, useThematic } from '@thematic/react'
import type { CSSProperties, FC } from 'react'
import { useMemo } from 'react'
import { Arc, Circle, Line, Rect, Text } from '../../../../../../components/svg'
import {
Arc,
Circle,
Line,
Rect,
Text,
} from '../../../../../../components/svg/index.js'
export interface GridCellProps {
name: ThemeElementType

Просмотреть файл

@ -10,8 +10,8 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useCallback, useMemo, useState } from 'react'
import { EnumButtonBar } from '../../../../../../components/EnumButtonBar'
import { GridCell } from './GridCell'
import { EnumButtonBar } from '../../../../../../components/EnumButtonBar.js'
import { GridCell } from './GridCell.js'
const SIZE = 30

Просмотреть файл

@ -8,8 +8,8 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import { DownloadLink } from '../../../../../components/DownloadLink'
import { OfficePalette } from './OfficePalette'
import { DownloadLink } from '../../../../../components/DownloadLink.js'
import { OfficePalette } from './OfficePalette.js'
export const OfficePane: FC = () => {
const theme = useThematic()

Просмотреть файл

@ -8,8 +8,8 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import { DownloadLink } from '../../../../../components/DownloadLink'
import { PowerBIPalette } from './PowerBIPalette'
import { DownloadLink } from '../../../../../components/DownloadLink.js'
import { PowerBIPalette } from './PowerBIPalette.js'
export const PowerBIPane: FC = () => {
const theme = useThematic()

Просмотреть файл

@ -15,7 +15,7 @@ import { useThematic } from '@thematic/react'
import type { FC } from 'react'
import { useCallback, useMemo, useState } from 'react'
import { useSetTheme } from '../../../../../state'
import { useSetTheme } from '../../../../../state/index.js'
export interface FluentControlsComponentProps {
themeLoaded: (theme: Theme) => void

Просмотреть файл

@ -8,11 +8,11 @@ import { Pivot, PivotItem } from '@fluentui/react'
import type { FC } from 'react'
import { useMemo } from 'react'
import type { Graph } from '../../../../types'
import { D3Chart } from './charts/D3'
import { charts, VegaChart } from './charts/Vega'
import { FluentControls } from './FluentControls'
import { D3Graph } from './graphs/D3'
import type { Graph } from '../../../../types.js'
import { D3Chart } from './charts/D3/index.js'
import { charts, VegaChart } from './charts/Vega/index.js'
import { FluentControls } from './FluentControls/index.js'
import { D3Graph } from './graphs/D3/index.js'
export interface ThemeViewerProps {
graph: Graph

Просмотреть файл

@ -7,8 +7,8 @@ import {
useDrawLinks,
useDrawNodes,
useGraph,
} from '../../../../state'
import { ThemeViewer as ThemeViewerBase } from './ThemeViewer.base'
} from '../../../../state/index.js'
import { ThemeViewer as ThemeViewerBase } from './ThemeViewer.base.js'
export const ThemeViewer = () => {
const [drawNodes] = useDrawNodes()

Просмотреть файл

@ -23,8 +23,8 @@ import {
useState,
} from 'react'
import type { Edge, Graph, Node } from '../../../../../../types'
import { bounds } from '../../../../../../util/graph'
import type { Edge, Graph, Node } from '../../../../../../types.js'
import { bounds } from '../../../../../../util/graph.js'
export interface GraphProps {
graph: Graph

Просмотреть файл

@ -4,8 +4,8 @@
*/
import { atom, useRecoilState } from 'recoil'
import { graph } from '../data'
import type { Graph } from '../types'
import { graph } from '../data/index.js'
import type { Graph } from '../types.js'
const graphState = atom<Graph>({
key: 'graph',

Просмотреть файл

@ -2,6 +2,6 @@
* Copyright (c) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE file in the project.
*/
export * from './data'
export * from './theme'
export * from './ui'
export * from './data.js'
export * from './theme.js'
export * from './ui.js'

34
turbo.json Normal file
Просмотреть файл

@ -0,0 +1,34 @@
{
"$schema": "https://turborepo.org/schema.json",
"baseBranch": "origin/main",
"pipeline": {
"clean": {
"outputs": ["dist/**", "docsTemp/**"]
},
"build": {
"dependsOn": [],
"outputs": ["dist/**", "docsTemp/**"]
},
"release": {
"outputs": []
},
"test": {
"dependsOn": [],
"outputs": []
},
"lint": {
"dependsOn": [],
"outputs": []
},
"bundle": {
"dependsOn": [],
"outputs": ["dist/**", "build/**"]
},
"ci": {
"dependsOn": ["build", "lint", "test", "bundle"]
},
"dev": {
"cache": false
}
}
}

2464
yarn.lock

Разница между файлами не показана из-за своего большого размера Загрузить разницу