Skip to content

Commit 22e6e7d

Browse files
authored
chore: Add eslint import ordering to CI (#931)
### Change list - Adds [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) for deterministic import ordering - Checks in any auto-fixed changes Closes #929
1 parent b7cce91 commit 22e6e7d

File tree

20 files changed

+261
-41
lines changed

20 files changed

+261
-41
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.vscode
12
*.mov
23
.mypy_cache
34
*.html

eslint.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import pluginJs from "@eslint/js";
33
import tseslint from "typescript-eslint";
44
import pluginReact from "eslint-plugin-react";
55
import eslintConfigPrettier from "eslint-config-prettier";
6+
import pluginImport from "eslint-plugin-import";
67

78
export default [
89
{ files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"] },
@@ -17,5 +18,27 @@ export default [
1718
},
1819
},
1920
},
21+
// **Import sorting config**
22+
{
23+
plugins: {
24+
import: pluginImport,
25+
},
26+
rules: {
27+
"import/order": [
28+
"error",
29+
{
30+
groups: [
31+
"builtin",
32+
"external",
33+
"internal",
34+
["parent", "sibling", "index"],
35+
],
36+
"newlines-between": "always",
37+
alphabetize: { order: "asc", caseInsensitive: true },
38+
},
39+
],
40+
"import/newline-after-import": "error",
41+
},
42+
},
2043
eslintConfigPrettier,
2144
];

package-lock.json

Lines changed: 182 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
"maplibre-gl": "^5.9.0",
2323
"memoize-one": "^6.0.0",
2424
"parquet-wasm": "0.7.1",
25+
"react": "^19.2.0",
2526
"react-dom": "^19.2.0",
2627
"react-map-gl": "^8.1.0",
27-
"react": "^19.2.0",
2828
"uuid": "^13.0.0",
2929
"xstate": "^5.22.0"
3030
},
@@ -35,26 +35,27 @@
3535
"@jupyter-widgets/base": "^6.0.10",
3636
"@playwright/test": "^1.55.1",
3737
"@statelyai/inspect": "^0.4.0",
38+
"@types/lodash": "^4.17.13",
3839
"@types/lodash.debounce": "^4.0.9",
3940
"@types/lodash.throttle": "^4.1.9",
40-
"@types/lodash": "^4.17.13",
4141
"@types/react": "^19.1.1",
4242
"@types/uuid": "^10.0.0",
4343
"autoprefixer": "^10.4.20",
4444
"dotenv": "^17.2.2",
4545
"esbuild": "^0.25.10",
46+
"eslint": "^9.36.0",
4647
"eslint-config-prettier": "^10.1.8",
48+
"eslint-plugin-import": "^2.32.0",
4749
"eslint-plugin-react": "^7.37.2",
48-
"eslint": "^9.36.0",
4950
"globals": "^16.4.0",
5051
"nodemon": "^3.1.7",
52+
"postcss": "^8.4.49",
5153
"postcss-modules": "^6.0.1",
5254
"postcss-preset-env": "^10.1.1",
53-
"postcss": "^8.4.49",
5455
"prettier": "^3.4.1",
5556
"tailwindcss": "^3.4.15",
56-
"typescript-eslint": "^8.16.0",
5757
"typescript": "^5.7.2",
58+
"typescript-eslint": "^8.16.0",
5859
"vitest": "^2.1.6"
5960
},
6061
"overrides": {
@@ -77,6 +78,7 @@
7778
"prettier:check": "prettier './src/**/*.{ts,tsx,css}' --check",
7879
"prettier": "prettier './src/**/*.{ts,tsx,css}' --write",
7980
"lint": "eslint src",
81+
"lint-fix": "eslint src --fix",
8082
"test": "vitest run",
8183
"pretest:e2e": "npm run build",
8284
"test:e2e": "playwright test",

src/accessor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import * as arrow from "apache-arrow";
2-
import { parseParquetBuffers } from "./parquet.js";
32
import { useState, useEffect } from "react";
43

4+
import { parseParquetBuffers } from "./parquet.js";
5+
56
type AccessorRaw = DataView[] | unknown;
67

78
export function useTableBufferState(

src/actions/fly-to.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { FlyToMessage } from "../types";
21
import { FlyToInterpolator, MapViewState } from "@deck.gl/core";
2+
3+
import { FlyToMessage } from "../types";
34
import { isDefined } from "../util";
45

56
export function flyTo(

src/index.tsx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
import * as React from "react";
2-
import { useEffect, useCallback, useState, useRef } from "react";
3-
import { createRender, useModelState, useModel } from "@anywidget/react";
1+
import { createRender, useModel, useModelState } from "@anywidget/react";
42
import type { Initialize, Render } from "@anywidget/types";
53
import { MapViewState, PickingInfo, type Layer } from "@deck.gl/core";
6-
import { BaseLayerModel, initializeLayer } from "./model/index.js";
4+
import { DeckGLRef } from "@deck.gl/react";
75
import type { IWidgetManager, WidgetModel } from "@jupyter-widgets/base";
8-
import { initParquetWasm } from "./parquet.js";
9-
import { isDefined, loadChildModels } from "./util.js";
6+
import { NextUIProvider } from "@nextui-org/react";
7+
import throttle from "lodash.throttle";
8+
import * as React from "react";
9+
import { useCallback, useEffect, useRef, useState } from "react";
1010
import { v4 as uuidv4 } from "uuid";
11-
import { Message } from "./types.js";
11+
1212
import { flyTo } from "./actions/fly-to.js";
13+
import { BaseLayerModel, initializeLayer } from "./model/index.js";
14+
import { initParquetWasm } from "./parquet.js";
15+
import DeckFirstRenderer from "./renderers/deck-first.js";
16+
import OverlayRenderer from "./renderers/overlay.js";
17+
import { MapRendererProps } from "./renderers/types.js";
18+
import SidePanel from "./sidepanel/index";
1319
import { useViewStateDebounced } from "./state";
14-
20+
import Toolbar from "./toolbar.js";
21+
import { getTooltip } from "./tooltip/index.js";
22+
import { Message } from "./types.js";
23+
import { isDefined, loadChildModels } from "./util.js";
1524
import { MachineContext, MachineProvider } from "./xstate";
1625
import * as selectors from "./xstate/selectors";
1726

18-
import "./globals.css";
1927
import "maplibre-gl/dist/maplibre-gl.css";
20-
import { NextUIProvider } from "@nextui-org/react";
21-
import Toolbar from "./toolbar.js";
22-
import throttle from "lodash.throttle";
23-
import SidePanel from "./sidepanel/index";
24-
import { getTooltip } from "./tooltip/index.js";
25-
import { DeckGLRef } from "@deck.gl/react";
26-
import OverlayRenderer from "./renderers/overlay.js";
27-
import { MapRendererProps } from "./renderers/types.js";
28-
import DeckFirstRenderer from "./renderers/deck-first.js";
28+
import "./globals.css";
2929

3030
await initParquetWasm();
3131

0 commit comments

Comments
 (0)