From 3c2c26c11e961647f90dfaec3a30926c4fb5aa31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gwena=C3=ABl=20Gallon?= Date: Sat, 30 Jul 2022 09:27:54 +0200 Subject: [PATCH] Fix: workflow failure with missing lint command and added lint for apps/examples (#866) * Add turbo run lint * Add lint to all apps and examples * Update eslint with monorepo configuration see: https://typescript-eslint.io/docs/linting/typed-linting/monorepos#one-tsconfigjson-per-package-and-an-optional-one-in-the-root * Remove unused rules * Exclude @tldraw/www from global eslint config * Remove duplicated eslint * Fix eslint prefer-const errors * Fix eslint no-unused-vars warning * Update package.json * Fix eslint no-unused-vars warning * bump eslint@^8.20.0 * Correct "Fix eslint no-unused-vars warning" This reverts commit 0158a2585af84b623f2c5581412252c8471375ae. --- .eslintrc | 11 ++- apps/electron/package.json | 3 +- apps/electron/src/main/createMenu.ts | 2 +- apps/electron/src/main/createWindow.ts | 2 - apps/electron/src/main/main.ts | 1 - apps/new-tab-extension/package.json | 3 +- apps/vscode/editor/package.json | 3 +- apps/vscode/extension/package.json | 3 +- .../extension/src/TldrawEditorProvider.ts | 1 - .../extension/src/TldrawWebviewManager.ts | 1 - apps/www/.eslintrc.json | 1 + examples/core-example-advanced/package.json | 3 +- .../src/components/TitleLinks.tsx | 1 - .../src/components/Toolbar.tsx | 2 +- .../state/actions/bindings/deleteBindings.ts | 2 +- .../state/actions/bindings/updateBindings.ts | 2 +- .../actions/bindings/updateBoundShapes.ts | 1 - .../src/state/actions/camera/zoomIn.ts | 1 - .../src/state/actions/camera/zoomOut.ts | 1 - .../src/state/actions/camera/zoomToFit.ts | 1 - .../state/actions/camera/zoomToSelection.ts | 1 - .../src/state/actions/data/loadNewDocument.ts | 2 +- .../src/state/actions/erase/eraseShapes.ts | 1 - .../state/actions/handles/translateHandle.ts | 1 - .../setTransformPerformanceMode.ts | 1 - .../setTranslatePerformanceMode.ts | 1 - .../state/actions/selection/updateBrush.ts | 1 - .../state/actions/shapes/createArrowShape.ts | 3 +- .../state/actions/shapes/createBoxShape.ts | 1 - .../state/actions/shapes/createPencilShape.ts | 1 - .../src/state/actions/shapes/createShapes.ts | 2 +- .../state/actions/shapes/extendPencilShape.ts | 4 +- .../src/state/actions/shapes/updateShapes.ts | 2 +- .../actions/transform/resizeSelectedShapes.ts | 5 +- .../actions/transform/rotateSelectedShapes.ts | 1 - examples/core-example/package.json | 3 +- examples/tldraw-example/package.json | 3 +- examples/tldraw-example/src/develop.tsx | 10 +-- package.json | 5 +- packages/core/package.json | 1 - packages/tldraw/package.json | 1 - turbo.json | 1 - yarn.lock | 81 ++++++++++++++++++- 43 files changed, 116 insertions(+), 61 deletions(-) diff --git a/.eslintrc b/.eslintrc index c15ae363a..b15bb1915 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,6 +1,14 @@ { "root": true, "parser": "@typescript-eslint/parser", + "parserOptions": { + "tsconfigRootDir": "__dirname", + "project": [ + "./apps/*/tsconfig.json", + "./apps/vscode/*/tsconfig.json", + "./packages/*/tsconfig.json" + ] + }, "plugins": ["@typescript-eslint", "jest"], "extends": [ "eslint:recommended", @@ -17,9 +25,6 @@ "files": ["*.ts", "*.tsx"], "rules": { "@typescript-eslint/explicit-module-boundary-types": [0], - "no-non-null-assertion": "off", - "no-fallthrough": "off", - "@typescript-eslint/no-fallthrough": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/ban-ts-comment": "off", diff --git a/apps/electron/package.json b/apps/electron/package.json index 5f33aa3b6..948d619de 100644 --- a/apps/electron/package.json +++ b/apps/electron/package.json @@ -15,7 +15,8 @@ "start:electron": "yarn dev", "build:apps": "yarn build:electron", "build:electron": "electron-esbuild build", - "package": "electron-builder" + "package": "electron-builder", + "lint": "eslint src/ --ext .ts,.tsx" }, "devDependencies": { "@tldraw/tldraw": "^1.16.0", diff --git a/apps/electron/src/main/createMenu.ts b/apps/electron/src/main/createMenu.ts index d72800ca0..c84b37203 100644 --- a/apps/electron/src/main/createMenu.ts +++ b/apps/electron/src/main/createMenu.ts @@ -1,4 +1,4 @@ -import { shell, app, Menu, MenuItemConstructorOptions } from 'electron' +import { shell, Menu, MenuItemConstructorOptions } from 'electron' import type { Message } from 'src/types' export async function createMenu(send: (message: Message) => Promise) { diff --git a/apps/electron/src/main/createWindow.ts b/apps/electron/src/main/createWindow.ts index 774ef0841..44a771bfb 100644 --- a/apps/electron/src/main/createWindow.ts +++ b/apps/electron/src/main/createWindow.ts @@ -1,6 +1,4 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import path from 'path' -import { format } from 'url' import { BrowserWindow } from 'electron' import { is } from 'electron-util' diff --git a/apps/electron/src/main/main.ts b/apps/electron/src/main/main.ts index cc9a55881..265b6fbc8 100644 --- a/apps/electron/src/main/main.ts +++ b/apps/electron/src/main/main.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { app, BrowserWindow } from 'electron' import { is } from 'electron-util' import type { Message } from 'src/types' diff --git a/apps/new-tab-extension/package.json b/apps/new-tab-extension/package.json index 1f1a9a1d9..c0c6b72cf 100644 --- a/apps/new-tab-extension/package.json +++ b/apps/new-tab-extension/package.json @@ -13,7 +13,8 @@ "dev:extension": "vite --host", "build:extension": "yarn build", "build": "tsc && vite build", - "preview": "vite preview" + "preview": "vite preview", + "lint": "eslint src/ --ext .ts,.tsx" }, "dependencies": { "@tldraw/tldraw": "*", diff --git a/apps/vscode/editor/package.json b/apps/vscode/editor/package.json index f31d3e552..cbb2fd23f 100644 --- a/apps/vscode/editor/package.json +++ b/apps/vscode/editor/package.json @@ -13,7 +13,8 @@ "scripts": { "start:vscode": "node scripts/dev.mjs -w", "build": "node scripts/build.mjs", - "build:apps": "yarn build" + "build:apps": "yarn build", + "lint": "eslint src/ --ext .ts,.tsx" }, "devDependencies": { "@tldraw/tldraw": "*", diff --git a/apps/vscode/extension/package.json b/apps/vscode/extension/package.json index 69586e568..abd05ce9f 100644 --- a/apps/vscode/extension/package.json +++ b/apps/vscode/extension/package.json @@ -118,13 +118,12 @@ "web": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=.", "package": "cd ../editor && yarn build && cd ../extension && node scripts/build && node scripts/package", "publish": "yarn package && vsce publish", - "lint": "eslint src --ext ts" + "lint": "eslint src/ --ext ts" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", "assert": "^2.0.0", - "eslint": "^8.8.0", "mocha": "^9.1.1", "process": "^0.11.10", "ts-loader": "^9.2.5", diff --git a/apps/vscode/extension/src/TldrawEditorProvider.ts b/apps/vscode/extension/src/TldrawEditorProvider.ts index 3a50aa6ba..e799ea60c 100644 --- a/apps/vscode/extension/src/TldrawEditorProvider.ts +++ b/apps/vscode/extension/src/TldrawEditorProvider.ts @@ -1,5 +1,4 @@ import * as vscode from 'vscode' -import * as path from 'path' import { TldrawWebviewManager } from './TldrawWebviewManager' /** diff --git a/apps/vscode/extension/src/TldrawWebviewManager.ts b/apps/vscode/extension/src/TldrawWebviewManager.ts index 2ecf71c72..8ad6cbdd8 100644 --- a/apps/vscode/extension/src/TldrawWebviewManager.ts +++ b/apps/vscode/extension/src/TldrawWebviewManager.ts @@ -1,7 +1,6 @@ import * as vscode from 'vscode' import { TDFile } from '@tldraw/tldraw' import { MessageFromWebview, MessageFromExtension } from './types' -import * as path from 'path' /** * When a new editor is opened, an instance of this class will diff --git a/apps/www/.eslintrc.json b/apps/www/.eslintrc.json index 13015d6e2..86fc6a6fe 100644 --- a/apps/www/.eslintrc.json +++ b/apps/www/.eslintrc.json @@ -1,4 +1,5 @@ { + "root": true, "extends": "next/core-web-vitals", "rules": { "@typescript-eslint/no-explicit-any": "off" diff --git a/examples/core-example-advanced/package.json b/examples/core-example-advanced/package.json index b0d98fcbf..6c55d4309 100644 --- a/examples/core-example-advanced/package.json +++ b/examples/core-example-advanced/package.json @@ -12,7 +12,8 @@ "scripts": { "build:core": "yarn build", "start:core": "node scripts/dev.mjs -w", - "build": "node scripts/build.mjs" + "build": "node scripts/build.mjs", + "lint": "eslint src/ --ext .ts,.tsx" }, "files": [], "devDependencies": { diff --git a/examples/core-example-advanced/src/components/TitleLinks.tsx b/examples/core-example-advanced/src/components/TitleLinks.tsx index 3c362efdb..ce2cdcf2b 100644 --- a/examples/core-example-advanced/src/components/TitleLinks.tsx +++ b/examples/core-example-advanced/src/components/TitleLinks.tsx @@ -1,5 +1,4 @@ import * as React from 'react' -import { GitHub } from 'react-feather' import styled from 'stitches.config' export function TitleLinks() { diff --git a/examples/core-example-advanced/src/components/Toolbar.tsx b/examples/core-example-advanced/src/components/Toolbar.tsx index b6e652a51..c0bea878d 100644 --- a/examples/core-example-advanced/src/components/Toolbar.tsx +++ b/examples/core-example-advanced/src/components/Toolbar.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { ArrowUpRight, Edit2, MousePointer, PenTool, Square, X } from 'react-feather' +import { ArrowUpRight, Edit2, MousePointer, Square, X } from 'react-feather' import { machine } from 'state/machine' import styled from 'stitches.config' diff --git a/examples/core-example-advanced/src/state/actions/bindings/deleteBindings.ts b/examples/core-example-advanced/src/state/actions/bindings/deleteBindings.ts index d01c65aec..bee78d772 100644 --- a/examples/core-example-advanced/src/state/actions/bindings/deleteBindings.ts +++ b/examples/core-example-advanced/src/state/actions/bindings/deleteBindings.ts @@ -2,7 +2,7 @@ import type { Action } from 'state/constants' export const deleteBindings: Action = (data, payload: { ids: string[] }) => { try { - payload.ids.forEach((id, i) => { + payload.ids.forEach((id) => { delete data.page.bindings[id] }) } catch (e: any) { diff --git a/examples/core-example-advanced/src/state/actions/bindings/updateBindings.ts b/examples/core-example-advanced/src/state/actions/bindings/updateBindings.ts index bb60965f2..6734e9640 100644 --- a/examples/core-example-advanced/src/state/actions/bindings/updateBindings.ts +++ b/examples/core-example-advanced/src/state/actions/bindings/updateBindings.ts @@ -6,7 +6,7 @@ export const updateBindings: Action = ( payload: { bindings: (Partial & Pick)[] } ) => { try { - payload.bindings.forEach((partial, i) => { + payload.bindings.forEach((partial) => { Object.assign(data.page.bindings[partial.id], partial) }) } catch (e: any) { diff --git a/examples/core-example-advanced/src/state/actions/bindings/updateBoundShapes.ts b/examples/core-example-advanced/src/state/actions/bindings/updateBoundShapes.ts index 980bf9fb7..4efa8076e 100644 --- a/examples/core-example-advanced/src/state/actions/bindings/updateBoundShapes.ts +++ b/examples/core-example-advanced/src/state/actions/bindings/updateBoundShapes.ts @@ -1,5 +1,4 @@ import { TLBinding, Utils } from '@tldraw/core' -import { intersectLineSegmentBounds } from '@tldraw/intersect' import Vec from '@tldraw/vec' import type { ArrowShape } from 'shapes/arrow' import type { Action } from 'state/constants' diff --git a/examples/core-example-advanced/src/state/actions/camera/zoomIn.ts b/examples/core-example-advanced/src/state/actions/camera/zoomIn.ts index 53599ad85..05b3d9c98 100644 --- a/examples/core-example-advanced/src/state/actions/camera/zoomIn.ts +++ b/examples/core-example-advanced/src/state/actions/camera/zoomIn.ts @@ -1,5 +1,4 @@ import type { Action } from 'state/constants' -import { Utils } from '@tldraw/core' import Vec from '@tldraw/vec' import { mutables } from 'state/mutables' diff --git a/examples/core-example-advanced/src/state/actions/camera/zoomOut.ts b/examples/core-example-advanced/src/state/actions/camera/zoomOut.ts index 922f8266f..e0d8d6732 100644 --- a/examples/core-example-advanced/src/state/actions/camera/zoomOut.ts +++ b/examples/core-example-advanced/src/state/actions/camera/zoomOut.ts @@ -1,5 +1,4 @@ import type { Action } from 'state/constants' -import { Utils } from '@tldraw/core' import Vec from '@tldraw/vec' import { mutables } from 'state/mutables' diff --git a/examples/core-example-advanced/src/state/actions/camera/zoomToFit.ts b/examples/core-example-advanced/src/state/actions/camera/zoomToFit.ts index 527ade8bb..f725b00f3 100644 --- a/examples/core-example-advanced/src/state/actions/camera/zoomToFit.ts +++ b/examples/core-example-advanced/src/state/actions/camera/zoomToFit.ts @@ -3,7 +3,6 @@ import { Utils } from '@tldraw/core' import Vec from '@tldraw/vec' import { mutables } from 'state/mutables' import { getShapeUtils } from 'shapes' -import { getZoomFitCamera } from 'state/helpers' export const zoomToFit: Action = (data) => { const { camera } = data.pageState diff --git a/examples/core-example-advanced/src/state/actions/camera/zoomToSelection.ts b/examples/core-example-advanced/src/state/actions/camera/zoomToSelection.ts index c5c4ba8da..e4c53052a 100644 --- a/examples/core-example-advanced/src/state/actions/camera/zoomToSelection.ts +++ b/examples/core-example-advanced/src/state/actions/camera/zoomToSelection.ts @@ -2,7 +2,6 @@ import { Action, FIT_TO_SCREEN_PADDING } from 'state/constants' import { Utils } from '@tldraw/core' import { mutables } from 'state/mutables' import { getShapeUtils } from 'shapes' -import { getZoomFitCamera } from 'state/helpers' import Vec from '@tldraw/vec' export const zoomToSelection: Action = (data) => { diff --git a/examples/core-example-advanced/src/state/actions/data/loadNewDocument.ts b/examples/core-example-advanced/src/state/actions/data/loadNewDocument.ts index 085f0bc77..4e57bc200 100644 --- a/examples/core-example-advanced/src/state/actions/data/loadNewDocument.ts +++ b/examples/core-example-advanced/src/state/actions/data/loadNewDocument.ts @@ -1,6 +1,6 @@ import { current } from 'immer' import { nanoid } from 'nanoid' -import type { Action, AppData, AppDocument } from 'state/constants' +import type { Action, AppData } from 'state/constants' import { mutables } from 'state/mutables' export const loadNewDocument: Action = (data) => { diff --git a/examples/core-example-advanced/src/state/actions/erase/eraseShapes.ts b/examples/core-example-advanced/src/state/actions/erase/eraseShapes.ts index a58ac6bbf..8aec3e8da 100644 --- a/examples/core-example-advanced/src/state/actions/erase/eraseShapes.ts +++ b/examples/core-example-advanced/src/state/actions/erase/eraseShapes.ts @@ -1,6 +1,5 @@ import type { TLPointerInfo } from '@tldraw/core' import type { Action } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { getShapeUtils } from 'shapes' import { mutables } from 'state/mutables' diff --git a/examples/core-example-advanced/src/state/actions/handles/translateHandle.ts b/examples/core-example-advanced/src/state/actions/handles/translateHandle.ts index 33e459575..49420d7d4 100644 --- a/examples/core-example-advanced/src/state/actions/handles/translateHandle.ts +++ b/examples/core-example-advanced/src/state/actions/handles/translateHandle.ts @@ -1,5 +1,4 @@ import type { Action, CustomBinding } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { getShapeUtils, Shape } from 'shapes' import { mutables } from 'state/mutables' import { nanoid } from 'nanoid' diff --git a/examples/core-example-advanced/src/state/actions/performance/setTransformPerformanceMode.ts b/examples/core-example-advanced/src/state/actions/performance/setTransformPerformanceMode.ts index c88d71cf8..ae378e96c 100644 --- a/examples/core-example-advanced/src/state/actions/performance/setTransformPerformanceMode.ts +++ b/examples/core-example-advanced/src/state/actions/performance/setTransformPerformanceMode.ts @@ -1,4 +1,3 @@ -import { TLPerformanceMode } from '@tldraw/core' import type { Action } from 'state/constants' export const setTransformPerformanceMode: Action = (data) => { diff --git a/examples/core-example-advanced/src/state/actions/performance/setTranslatePerformanceMode.ts b/examples/core-example-advanced/src/state/actions/performance/setTranslatePerformanceMode.ts index f5becb75c..f06f660a1 100644 --- a/examples/core-example-advanced/src/state/actions/performance/setTranslatePerformanceMode.ts +++ b/examples/core-example-advanced/src/state/actions/performance/setTranslatePerformanceMode.ts @@ -1,4 +1,3 @@ -import { TLPerformanceMode } from '@tldraw/core' import type { Action } from 'state/constants' export const setTranslatePerformanceMode: Action = (data) => { diff --git a/examples/core-example-advanced/src/state/actions/selection/updateBrush.ts b/examples/core-example-advanced/src/state/actions/selection/updateBrush.ts index cc999ad7e..47ad79a36 100644 --- a/examples/core-example-advanced/src/state/actions/selection/updateBrush.ts +++ b/examples/core-example-advanced/src/state/actions/selection/updateBrush.ts @@ -1,7 +1,6 @@ import type { Action } from 'state/constants' import { TLPointerInfo, Utils } from '@tldraw/core' import { mutables } from '../../mutables' -import { getPagePoint } from 'state/helpers' import { getShapeUtils } from 'shapes' export const updateBrush: Action = (data, payload: TLPointerInfo) => { diff --git a/examples/core-example-advanced/src/state/actions/shapes/createArrowShape.ts b/examples/core-example-advanced/src/state/actions/shapes/createArrowShape.ts index de6f1fecd..b4c26b57d 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/createArrowShape.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/createArrowShape.ts @@ -1,8 +1,7 @@ import { nanoid } from 'nanoid' import Vec from '@tldraw/vec' -import { TLBinding, TLPointerInfo, Utils } from '@tldraw/core' +import { TLPointerInfo, Utils } from '@tldraw/core' import { getShapeUtils, Shape, shapeUtils } from 'shapes' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' import type { Action, CustomBinding } from 'state/constants' diff --git a/examples/core-example-advanced/src/state/actions/shapes/createBoxShape.ts b/examples/core-example-advanced/src/state/actions/shapes/createBoxShape.ts index 99fd56198..ee079304a 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/createBoxShape.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/createBoxShape.ts @@ -1,7 +1,6 @@ import { TLBoundsCorner, TLPointerInfo } from '@tldraw/core' import { shapeUtils } from 'shapes' import type { Action } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' export const createBoxShape: Action = (data, payload: TLPointerInfo) => { diff --git a/examples/core-example-advanced/src/state/actions/shapes/createPencilShape.ts b/examples/core-example-advanced/src/state/actions/shapes/createPencilShape.ts index 4640a669c..0b022816c 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/createPencilShape.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/createPencilShape.ts @@ -1,7 +1,6 @@ import type { TLPointerInfo } from '@tldraw/core' import type { Action } from 'state/constants' import { shapeUtils } from 'shapes' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' export const createPencilShape: Action = (data, payload: TLPointerInfo) => { diff --git a/examples/core-example-advanced/src/state/actions/shapes/createShapes.ts b/examples/core-example-advanced/src/state/actions/shapes/createShapes.ts index 502e03110..21fa738ef 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/createShapes.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/createShapes.ts @@ -1,5 +1,5 @@ import { nanoid } from 'nanoid' -import { getShapeUtils, Shape, shapeUtils } from 'shapes' +import { getShapeUtils, Shape } from 'shapes' import type { Action } from 'state/constants' export const createShapes: Action = ( diff --git a/examples/core-example-advanced/src/state/actions/shapes/extendPencilShape.ts b/examples/core-example-advanced/src/state/actions/shapes/extendPencilShape.ts index 11ae5a551..162bf3956 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/extendPencilShape.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/extendPencilShape.ts @@ -1,8 +1,6 @@ -import { TLBoundsCorner, TLPointerInfo, Utils } from '@tldraw/core' +import { TLPointerInfo, Utils } from '@tldraw/core' import Vec from '@tldraw/vec' -import { shapeUtils } from 'shapes' import type { Action } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' export const extendPencilShape: Action = (data, payload: TLPointerInfo) => { diff --git a/examples/core-example-advanced/src/state/actions/shapes/updateShapes.ts b/examples/core-example-advanced/src/state/actions/shapes/updateShapes.ts index ace8e6481..0e2995933 100644 --- a/examples/core-example-advanced/src/state/actions/shapes/updateShapes.ts +++ b/examples/core-example-advanced/src/state/actions/shapes/updateShapes.ts @@ -6,7 +6,7 @@ export const updateShapes: Action = ( payload: { shapes: (Partial & Pick)[] } ) => { try { - payload.shapes.forEach((partial, i) => { + payload.shapes.forEach((partial) => { Object.assign(data.page.shapes[partial.id], partial) }) } catch (e: any) { diff --git a/examples/core-example-advanced/src/state/actions/transform/resizeSelectedShapes.ts b/examples/core-example-advanced/src/state/actions/transform/resizeSelectedShapes.ts index 794af1422..febcb6839 100644 --- a/examples/core-example-advanced/src/state/actions/transform/resizeSelectedShapes.ts +++ b/examples/core-example-advanced/src/state/actions/transform/resizeSelectedShapes.ts @@ -2,7 +2,6 @@ import { TLBoundsCorner, TLBoundsEdge, TLPointerInfo, Utils } from '@tldraw/core import Vec from '@tldraw/vec' import { getShapeUtils } from 'shapes' import type { Action } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' export const resizeSelectedShapes: Action = (data, payload: TLPointerInfo) => { @@ -16,13 +15,13 @@ export const resizeSelectedShapes: Action = (data, payload: TLPointerInfo) => { ) let rotation = 0 - let delta = Vec.sub(mutables.currentPoint, initialPoint) + const delta = Vec.sub(mutables.currentPoint, initialPoint) if (selectedIds.length === 1) { rotation = snapshot.page.shapes[selectedIds[0]].rotation || 0 } - let nextCommonBounds = Utils.getTransformedBoundingBox( + const nextCommonBounds = Utils.getTransformedBoundingBox( initialCommonBounds, pointedBoundsHandleId as TLBoundsCorner | TLBoundsEdge, delta, diff --git a/examples/core-example-advanced/src/state/actions/transform/rotateSelectedShapes.ts b/examples/core-example-advanced/src/state/actions/transform/rotateSelectedShapes.ts index 687a9f4f8..f8bd76cf0 100644 --- a/examples/core-example-advanced/src/state/actions/transform/rotateSelectedShapes.ts +++ b/examples/core-example-advanced/src/state/actions/transform/rotateSelectedShapes.ts @@ -3,7 +3,6 @@ import Vec from '@tldraw/vec' import { getShapeUtils } from 'shapes' import type { ArrowShape } from 'shapes/arrow' import type { Action } from 'state/constants' -import { getPagePoint } from 'state/helpers' import { mutables } from 'state/mutables' export const rotateSelectedShapes: Action = (data, payload: TLPointerInfo) => { diff --git a/examples/core-example/package.json b/examples/core-example/package.json index ca6c89b2e..9927bc78d 100644 --- a/examples/core-example/package.json +++ b/examples/core-example/package.json @@ -11,7 +11,8 @@ "private": true, "scripts": { "start:core": "node scripts/dev.mjs -w", - "build": "node scripts/build.mjs" + "build": "node scripts/build.mjs", + "lint": "eslint src/ --ext .ts,.tsx" }, "files": [], "devDependencies": { diff --git a/examples/tldraw-example/package.json b/examples/tldraw-example/package.json index 00f68102b..e27e0241c 100644 --- a/examples/tldraw-example/package.json +++ b/examples/tldraw-example/package.json @@ -12,7 +12,8 @@ ], "scripts": { "start": "node scripts/dev.mjs -w", - "build": "node scripts/build.mjs" + "build": "node scripts/build.mjs", + "lint": "eslint src/ --ext .ts,.tsx" }, "devDependencies": { "@liveblocks/client": "^0.17.0-beta2", diff --git a/examples/tldraw-example/src/develop.tsx b/examples/tldraw-example/src/develop.tsx index 9ab629b6d..2db5c4e08 100644 --- a/examples/tldraw-example/src/develop.tsx +++ b/examples/tldraw-example/src/develop.tsx @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import * as React from 'react' -import { TDShapeType, Tldraw, TldrawApp, useFileSystem } from '@tldraw/tldraw' +import { Tldraw, TldrawApp, useFileSystem } from '@tldraw/tldraw' declare const window: Window & { app: TldrawApp } @@ -21,14 +21,6 @@ export default function Develop() { // }) }, []) - const handleSignOut = React.useCallback(() => { - // noop - }, []) - - const handleSignIn = React.useCallback(() => { - // noop - }, []) - const handlePersist = React.useCallback(() => { // noop }, []) diff --git a/package.json b/package.json index 81a13cc38..2c2337625 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,9 @@ "test": "turbo run test --stream", "test:ci": "turbo run test:ci --stream", "test:watch": "turbo run test:watch --stream", - "postinstall": "husky install", + "lint": "turbo run lint", "clean": "turbo run clean", + "postinstall": "husky install", "pre-commit": "lint-staged", "pre-push": "yarn test" }, @@ -48,7 +49,7 @@ "@types/vscode": "^1.63.2", "@typescript-eslint/eslint-plugin": "^5.17.0", "@typescript-eslint/parser": "^5.17.0", - "eslint": "^8.8.0", + "eslint": "^8.20.0", "eslint-plugin-jest": "^26.6.0", "fake-indexeddb": "^3.1.7", "husky": "^7.0.4", diff --git a/packages/core/package.json b/packages/core/package.json index b6b4fd202..19534afe1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -58,7 +58,6 @@ "@types/react-dom": "^18.0.5", "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", - "eslint": "^8.8.0", "@tldraw/lfg": "latest", "mobx": "^6.3.8", "react": "^18.1.0", diff --git a/packages/tldraw/package.json b/packages/tldraw/package.json index 165725c79..aa8698f2c 100644 --- a/packages/tldraw/package.json +++ b/packages/tldraw/package.json @@ -74,7 +74,6 @@ "@types/react-dom": "^18.0.5", "@typescript-eslint/eslint-plugin": "^5.10.2", "@typescript-eslint/parser": "^5.10.2", - "eslint": "^8.8.0", "mobx": "^6.3.8", "react": "^18.1.0", "react-dom": "^18.1.0", diff --git a/turbo.json b/turbo.json index fece14bd1..85e5bfc0b 100644 --- a/turbo.json +++ b/turbo.json @@ -52,7 +52,6 @@ "outputs": ["coverage/**"] }, "lint": { - "dependsOn": ["build"], "outputs": [] }, "clean": { diff --git a/yarn.lock b/yarn.lock index de1f6cb2e..5b06968cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1409,6 +1409,21 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.2" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@firebase/analytics-compat@0.1.6": version "0.1.6" resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.1.6.tgz#a5a8c909c67128d89c0aaa1c87699d1c5e873746" @@ -3934,7 +3949,7 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -3954,6 +3969,11 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.7.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -6489,6 +6509,47 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint@^8.20.0: + version "8.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" + integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== + dependencies: + "@eslint/eslintrc" "^1.3.0" + "@humanwhocodes/config-array" "^0.9.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.2" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + eslint@^8.8.0: version "8.9.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.9.0.tgz#a2a8227a99599adc4342fd9b854cb8d8d6412fdb" @@ -6539,6 +6600,15 @@ espree@^9.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^3.3.0" +espree@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" + integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== + dependencies: + acorn "^8.7.1" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -7125,6 +7195,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^13.15.0: + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + dependencies: + type-fest "^0.20.2" + globals@^13.6.0, globals@^13.9.0: version "13.12.1" resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" @@ -8994,7 +9071,7 @@ minimatch@4.2.1: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==