Skip to content

Commit

Permalink
Add linting rule to sort imports (#3220)
Browse files Browse the repository at this point in the history
* Add linting rule to sort imports

* remove spacing between import groups

* changeset

* changeset

* prettier config fine tuning

* forbid use of deprecated imports

* tidy
  • Loading branch information
matthieusieben authored Feb 5, 2025
1 parent 53a577f commit 61dc0d6
Show file tree
Hide file tree
Showing 818 changed files with 3,563 additions and 2,717 deletions.
41 changes: 41 additions & 0 deletions .changeset/fair-tigers-thank.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
"@atproto-labs/rollup-plugin-bundle-manifest": patch
"@atproto/oauth-client-browser-example": patch
"@atproto-labs/handle-resolver-node": patch
"@atproto-labs/simple-store-memory": patch
"@atproto-labs/identity-resolver": patch
"@atproto/oauth-client-browser": patch
"@atproto-labs/handle-resolver": patch
"@atproto/oauth-client-node": patch
"@atproto-labs/did-resolver": patch
"@atproto-labs/simple-store": patch
"@atproto/oauth-provider": patch
"@atproto-labs/fetch-node": patch
"@atproto/jwk-webcrypto": patch
"@atproto/oauth-client": patch
"@atproto/oauth-types": patch
"@atproto-labs/fetch": patch
"@atproto/jwk-jose": patch
"@atproto/xrpc-server": patch
"@atproto/common-web": patch
"@atproto/jwk": patch
"@atproto/identity": patch
"@atproto/dev-env": patch
"@atproto/lex-cli": patch
"@atproto/lexicon": patch
"@atproto/common": patch
"@atproto/crypto": patch
"@atproto/syntax": patch
"@atproto/bsync": patch
"@atproto/ozone": patch
"@atproto/bsky": patch
"@atproto/repo": patch
"@atproto/sync": patch
"@atproto/xrpc": patch
"@atproto/api": patch
"@atproto/aws": patch
"@atproto/did": patch
"@atproto/pds": patch
---

Apply new linting rules regarding import order
22 changes: 22 additions & 0 deletions .changeset/mighty-actors-complain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
"@atproto-labs/rollup-plugin-bundle-manifest": patch
"@atproto-labs/handle-resolver-node": patch
"@atproto/oauth-client-node": patch
"@atproto/oauth-provider": patch
"@atproto-labs/fetch-node": patch
"@atproto/xrpc-server": patch
"@atproto/identity": patch
"@atproto/dev-env": patch
"@atproto/lex-cli": patch
"@atproto/common": patch
"@atproto/crypto": patch
"@atproto/bsync": patch
"@atproto/ozone": patch
"@atproto/bsky": patch
"@atproto/repo": patch
"@atproto/sync": patch
"@atproto/aws": patch
"@atproto/pds": patch
---

Update NodeJS engine requirement to >=18.7.0
5 changes: 5 additions & 0 deletions .changeset/olive-teachers-yawn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@atproto/oauth-types": patch
---

Support environments not providing URL.canParse
67 changes: 59 additions & 8 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,24 +1,48 @@
{
"root": true,
// parse TypeScript files
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser
"parser": "@typescript-eslint/parser",
// configure eslint using options described at
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/base",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"prettier"
"plugin:import/recommended",
"plugin:import/typescript"
],
"plugins": ["n"],
"ignorePatterns": ["dist", "node_modules"],
"rules": {
"no-var": "error",
"prefer-const": "warn",
"no-misleading-character-class": "warn",
"eqeqeq": ["error", "always", { "null": "ignore" }],
"n/global-require": "error",
"n/no-extraneous-import": "error",
"n/prefer-node-protocol": "error",
"import/extensions": ["off", "ignorePackages"],
"import/export": "off",
"import/namespace": "off",
"import/no-deprecated": "error",
"import/no-absolute-path": "error",
"import/no-dynamic-require": "error",
"import/no-self-import": "error",
"import/order": [
"error",
{
"named": true,
"distinctGroup": true,
"alphabetize": { "order": "asc" },
"newlines-between": "never",
"groups": [
"builtin",
"external",
"internal",
"parent",
["index", "sibling"],
"object"
]
}
],
"@typescript-eslint/no-unused-vars": [
"warn",
{ "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }
Expand All @@ -43,6 +67,33 @@
"rules": {
"@typescript-eslint/no-var-requires": "off"
}
},
{
"files": ["**/*.test.ts", "**/tests/**/*.ts"],
"rules": {
"n/no-extraneous-import": [
"error",
{ "allowModules": ["@atproto/dev-env"] }
]
}
}
],
"settings": {
"node": { "version": ">=18.7.0" },
"import/internal-regex": "^@atproto(?:-labs)?/",
"import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
"import/resolver": {
"typescript": {
"project": [
"tsconfig.json",
"packages/oauth/*/tsconfig.json",
"packages/internal/*/tsconfig.json",
"packages/*/tsconfig.json"
]
},
"node": {
"extensions": [".js", ".jsx", ".json"]
}
}
]
}
}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ yarn-error.log
packages/**/dist
.idea
packages/*/coverage
.vscode/
test.sqlite
.DS_Store
*.log
*.tsbuildinfo
.*.env
.env.*
.env
\#*\#
*~
Expand Down
6 changes: 1 addition & 5 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
node_modules
interop-test-files
__snapshots__
dist
build
.nyc_output
coverage
pnpm-lock.yaml
.pnpm*
.changeset
*.d.ts
packages/bsky/src/data-plane/gen
CHANGELOG.md
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@
"options": {
"singleQuote": false
}
},
{
"files": [".eslintrc"],
"options": {
"parser": "json",
"trailingComma": "none"
}
}
]
}
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"typescript.tsdk": "node_modules/typescript/lib",
"files.associations": {
"**/tsconfig/*.json": "jsonc"
}
}
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": "MIT",
"private": true,
"engines": {
"node": "18"
"node": ">=18.7.0"
},
"packageManager": "[email protected]",
"scripts": {
Expand Down Expand Up @@ -43,6 +43,9 @@
"dotenv": "^16.0.3",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-n": "^17.15.0",
"eslint-plugin-prettier": "^5.1.3",
"jest": "^28.1.2",
"node-gyp": "^9.3.1",
Expand Down
9 changes: 0 additions & 9 deletions packages/api/bench/agent.bench.ts

This file was deleted.

13 changes: 4 additions & 9 deletions packages/api/src/agent.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import AwaitLock from 'await-lock'
import { TID } from '@atproto/common-web'
import { AtUri, ensureValidDid } from '@atproto/syntax'
import {
buildFetchHandler,
BuildFetchHandlerOptions,
FetchHandler,
XrpcClient,
} from '@atproto/xrpc'
import AwaitLock from 'await-lock'
import { FetchHandler, XrpcClient, buildFetchHandler } from '@atproto/xrpc'
import {
AppBskyActorDefs,
AppBskyActorProfile,
Expand Down Expand Up @@ -38,14 +33,14 @@ import {
BskyThreadViewPreference,
} from './types'
import {
asDid,
Did,
asDid,
getSavedFeedType,
isDid,
sanitizeMutedWordValue,
savedFeedsToUriArrays,
validateSavedFeed,
validateNux,
validateSavedFeed,
} from './util'

const FEED_VIEW_PREF_DEFAULTS = {
Expand Down
6 changes: 3 additions & 3 deletions packages/api/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { lexicons as internalLexicons } from './client/lexicons'
export { AtUri } from '@atproto/syntax'
export {
BlobRef,
jsonStringToLex,
jsonToLex,
lexToJson,
stringifyLex,
jsonToLex,
jsonStringToLex,
} from '@atproto/lexicon'
export { parseLanguage } from '@atproto/common-web'
export * from './types'
Expand All @@ -22,7 +22,7 @@ export * from './rich-text/util'
export * from './moderation'
export * from './moderation/types'
export * from './mocker'
export { LABELS, DEFAULT_LABEL_SETTINGS } from './moderation/const/labels'
export { DEFAULT_LABEL_SETTINGS, LABELS } from './moderation/const/labels'
export { Agent } from './agent'

export { AtpAgent, type AtpAgentOptions } from './atp-agent'
Expand Down
6 changes: 3 additions & 3 deletions packages/api/src/mocker.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import {
ComAtprotoLabelDefs,
AppBskyFeedDefs,
AppBskyActorDefs,
AppBskyFeedPost,
AppBskyEmbedRecord,
AppBskyFeedDefs,
AppBskyFeedPost,
AppBskyGraphDefs,
AppBskyNotificationListNotifications,
ComAtprotoLabelDefs,
} from './client'

const FAKE_CID = 'bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq'
Expand Down
14 changes: 7 additions & 7 deletions packages/api/src/moderation/decision.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import { AppBskyGraphDefs } from '../client/index'
import { LABELS } from './const/labels'
import {
BLOCK_BEHAVIOR,
MUTE_BEHAVIOR,
MUTEWORD_BEHAVIOR,
CUSTOM_LABEL_VALUE_RE,
HIDE_BEHAVIOR,
NOOP_BEHAVIOR,
Label,
LabelPreference,
ModerationCause,
ModerationOpts,
LabelTarget,
MUTEWORD_BEHAVIOR,
MUTE_BEHAVIOR,
ModerationBehavior,
CUSTOM_LABEL_VALUE_RE,
ModerationCause,
ModerationOpts,
NOOP_BEHAVIOR,
} from './types'
import { ModerationUI } from './ui'
import { LABELS } from './const/labels'

enum ModerationBehaviorSeverity {
High,
Expand Down
22 changes: 11 additions & 11 deletions packages/api/src/moderation/index.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import {
ModerationSubjectProfile,
ModerationSubjectPost,
ModerationSubjectNotification,
ModerationSubjectFeedGenerator,
ModerationSubjectUserList,
ModerationOpts,
} from './types'
import { ModerationDecision } from './decision'
import { decideAccount } from './subjects/account'
import { decideProfile } from './subjects/profile'
import { decideFeedGenerator } from './subjects/feed-generator'
import { decideNotification } from './subjects/notification'
import { decidePost } from './subjects/post'
import { decideFeedGenerator } from './subjects/feed-generator'
import { decideProfile } from './subjects/profile'
import { decideUserList } from './subjects/user-list'
import { ModerationDecision } from './decision'
import {
ModerationOpts,
ModerationSubjectFeedGenerator,
ModerationSubjectNotification,
ModerationSubjectPost,
ModerationSubjectProfile,
ModerationSubjectUserList,
} from './types'

export { ModerationUI } from './ui'
export { ModerationDecision } from './decision'
Expand Down
2 changes: 1 addition & 1 deletion packages/api/src/moderation/subjects/account.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { Label, ModerationSubjectProfile, ModerationOpts } from '../types'
import { Label, ModerationOpts, ModerationSubjectProfile } from '../types'

export function decideAccount(
subject: ModerationSubjectProfile,
Expand Down
2 changes: 1 addition & 1 deletion packages/api/src/moderation/subjects/feed-generator.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { ModerationSubjectFeedGenerator, ModerationOpts } from '../types'
import { ModerationOpts, ModerationSubjectFeedGenerator } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

Expand Down
2 changes: 1 addition & 1 deletion packages/api/src/moderation/subjects/notification.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ModerationDecision } from '../decision'
import { ModerationSubjectNotification, ModerationOpts } from '../types'
import { ModerationOpts, ModerationSubjectNotification } from '../types'
import { decideAccount } from './account'
import { decideProfile } from './profile'

Expand Down
Loading

0 comments on commit 61dc0d6

Please sign in to comment.