Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add linting rule to sort imports #3220

Merged
merged 7 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
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": "pnpm@8.15.9",
"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