Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc60ff2c

Browse files
committed
Add better eslint rules for importing
1 parent8df3e6c commitc60ff2c

36 files changed

+189
-122
lines changed

‎.eslintrc.json‎

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,15 @@
2020
"files": ["*.ts"],
2121
"rules": {
2222
"require-await":"off",
23-
"@typescript-eslint/require-await":"error"
23+
"@typescript-eslint/require-await":"error",
24+
"@typescript-eslint/consistent-type-imports": [
25+
"error",
26+
{
27+
"disallowTypeAnnotations":false,// Used in tests
28+
"prefer":"type-imports",
29+
"fixStyle":"inline-type-imports"
30+
}
31+
]
2432
}
2533
},
2634
{
@@ -42,12 +50,25 @@
4250
"import/order": [
4351
"error",
4452
{
45-
"alphabetize": {
46-
"order":"asc"
47-
},
48-
"groups": [["builtin","external","internal"],"parent","sibling"]
53+
"groups": [
54+
["builtin","external"],
55+
"internal",
56+
["parent","sibling","index"],
57+
"type"
58+
],
59+
"pathGroups": [
60+
{"pattern":"@/**","group":"internal","position":"after" }
61+
],
62+
// Don't reclassify real externals like @babel/* into the alias group
63+
"pathGroupsExcludedImportTypes": ["builtin","external"],
64+
"newlines-between":"always",
65+
"alphabetize": {"order":"asc","caseInsensitive":true },
66+
"distinctGroup":true// separates type imports into the "type" group
4967
}
5068
],
69+
// Prevent duplicates and prefer merging into a single import
70+
"no-duplicate-imports":"off",
71+
"import/no-duplicates": ["error", {"prefer-inline":true }],
5172
"import/no-unresolved": [
5273
"error",
5374
{
@@ -72,7 +93,8 @@
7293
"ignorePatterns": ["out","dist","**/*.d.ts"],
7394
"settings": {
7495
"import/resolver": {
75-
"typescript": {}
76-
}
96+
"typescript": {"project":"./tsconfig.json" }
97+
},
98+
"import/internal-regex":"^@/"
7799
}
78100
}

‎src/agentMetadataHelper.ts‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import{WorkspaceAgent}from"coder/site/src/api/typesGenerated";
1+
import{typeWorkspaceAgent}from"coder/site/src/api/typesGenerated";
22
import*asvscodefrom"vscode";
3+
34
import{
4-
AgentMetadataEvent,
5+
typeAgentMetadataEvent,
56
AgentMetadataEventSchemaArray,
67
errToStr,
78
}from"./api/api-helper";
8-
import{CoderApi}from"./api/coderApi";
9+
import{typeCoderApi}from"./api/coderApi";
910

1011
exporttypeAgentMetadataWatcher={
1112
onChange:vscode.EventEmitter<null>["event"];

‎src/api/api-helper.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import{isApiError,isApiErrorResponse}from"coder/site/src/api/errors";
22
import{
3-
Workspace,
4-
WorkspaceAgent,
5-
WorkspaceResource,
3+
typeWorkspace,
4+
typeWorkspaceAgent,
5+
typeWorkspaceResource,
66
}from"coder/site/src/api/typesGenerated";
77
import{ErrorEvent}from"eventsource";
88
import{z}from"zod";

‎src/api/coderApi.ts‎

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,34 @@
1-
import{AxiosInstance}from"axios";
1+
import{typeAxiosInstance}from"axios";
22
import{Api}from"coder/site/src/api/api";
33
import{
4-
GetInboxNotificationResponse,
5-
ProvisionerJobLog,
6-
ServerSentEvent,
7-
Workspace,
8-
WorkspaceAgent,
4+
typeGetInboxNotificationResponse,
5+
typeProvisionerJobLog,
6+
typeServerSentEvent,
7+
typeWorkspace,
8+
typeWorkspaceAgent,
99
}from"coder/site/src/api/typesGenerated";
1010
import{typeWorkspaceConfiguration}from"vscode";
11-
import{ClientOptions}from"ws";
11+
import{typeClientOptions}from"ws";
12+
1213
import{CertificateError}from"../error";
1314
import{getHeaderCommand,getHeaders}from"../headers";
15+
import{createHttpAgent}from"./utils";
1416
import{
1517
createRequestMeta,
1618
logRequest,
1719
logError,
1820
logResponse,
1921
}from"../logging/httpLogger";
20-
import{Logger}from"../logging/logger";
21-
import{RequestConfigWithMeta,HttpClientLogLevel}from"../logging/types";
22+
import{typeLogger}from"../logging/logger";
23+
import{
24+
typeRequestConfigWithMeta,
25+
HttpClientLogLevel,
26+
}from"../logging/types";
2227
import{WsLogger}from"../logging/wsLogger";
2328
import{
2429
OneWayWebSocket,
25-
OneWayWebSocketInit,
30+
typeOneWayWebSocketInit,
2631
}from"../websocket/oneWayWebSocket";
27-
import{createHttpAgent}from"./utils";
2832

2933
constcoderSessionTokenHeader="Coder-Session-Token";
3034

‎src/api/utils.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
importfsfrom"fs";
22
import{ProxyAgent}from"proxy-agent";
33
import{typeWorkspaceConfiguration}from"vscode";
4+
45
import{getProxyForUrl}from"../proxy";
56
import{expandPath}from"../util";
67

‎src/api/workspace.ts‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import{spawn}from"child_process";
2-
import{Api}from"coder/site/src/api/api";
3-
import{Workspace}from"coder/site/src/api/typesGenerated";
2+
import{typeApi}from"coder/site/src/api/api";
3+
import{typeWorkspace}from"coder/site/src/api/typesGenerated";
44
import*asvscodefrom"vscode";
5-
import{FeatureSet}from"../featureSet";
5+
6+
import{typeFeatureSet}from"../featureSet";
67
import{getGlobalFlags}from"../globalFlags";
78
import{escapeCommandArg}from"../util";
89
import{errToStr,createWorkspaceIdentifier}from"./api-helper";
9-
import{CoderApi}from"./coderApi";
10+
import{typeCoderApi}from"./coderApi";
1011

1112
/**
1213
* Start or update a workspace and return the updated workspace.

‎src/commands.ts‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1-
import{Api}from"coder/site/src/api/api";
1+
import{typeApi}from"coder/site/src/api/api";
22
import{getErrorMessage}from"coder/site/src/api/errors";
33
import{
4-
User,
5-
Workspace,
6-
WorkspaceAgent,
4+
typeUser,
5+
typeWorkspace,
6+
typeWorkspaceAgent,
77
}from"coder/site/src/api/typesGenerated";
88
import*asvscodefrom"vscode";
9+
910
import{createWorkspaceIdentifier,extractAgents}from"./api/api-helper";
1011
import{CoderApi}from"./api/coderApi";
1112
import{needToken}from"./api/utils";
12-
import{CliManager}from"./core/cliManager";
13-
import{MementoManager}from"./core/mementoManager";
14-
import{PathResolver}from"./core/pathResolver";
15-
import{SecretsManager}from"./core/secretsManager";
13+
import{typeCliManager}from"./core/cliManager";
14+
import{typeMementoManager}from"./core/mementoManager";
15+
import{typePathResolver}from"./core/pathResolver";
16+
import{typeSecretsManager}from"./core/secretsManager";
1617
import{CertificateError}from"./error";
1718
import{getGlobalFlags}from"./globalFlags";
18-
import{Logger}from"./logging/logger";
19+
import{typeLogger}from"./logging/logger";
1920
import{escapeCommandArg,toRemoteAuthority,toSafeHost}from"./util";
2021
import{
2122
AgentTreeItem,
22-
OpenableTreeItem,
23+
typeOpenableTreeItem,
2324
WorkspaceTreeItem,
2425
}from"./workspacesProvider";
2526

‎src/core/cliManager.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ import globalAxios, {
22
typeAxiosInstance,
33
typeAxiosRequestConfig,
44
}from"axios";
5-
import{Api}from"coder/site/src/api/api";
6-
import{createWriteStream,WriteStream}from"fs";
5+
import{typeApi}from"coder/site/src/api/api";
6+
import{createWriteStream,typeWriteStream}from"fs";
77
importfsfrom"fs/promises";
8-
import{IncomingMessage}from"http";
8+
import{typeIncomingMessage}from"http";
99
importpathfrom"path";
1010
importprettyBytesfrom"pretty-bytes";
1111
import*assemverfrom"semver";
12-
1312
import*asvscodefrom"vscode";
13+
1414
import{errToStr}from"../api/api-helper";
1515
import*asclifrom"../cliUtils";
16-
import{Logger}from"../logging/logger";
16+
import{typeLogger}from"../logging/logger";
1717
import*aspgpfrom"../pgp";
18-
import{PathResolver}from"./pathResolver";
18+
import{typePathResolver}from"./pathResolver";
1919

2020
exportclassCliManager{
2121
constructor(

‎src/error.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import { isApiError, isApiErrorResponse } from "coder/site/src/api/errors";
33
import*asforgefrom"node-forge";
44
import*astlsfrom"tls";
55
import*asvscodefrom"vscode";
6-
import{Logger}from"./logging/logger";
6+
7+
import{typeLogger}from"./logging/logger";
78

89
// X509_ERR_CODE represents error codes as returned from BoringSSL/OpenSSL.
910
exportenumX509_ERR_CODE{

‎src/extension.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import axios, { isAxiosError } from "axios";
33
import{getErrorMessage}from"coder/site/src/api/errors";
44
import*asmodulefrom"module";
55
import*asvscodefrom"vscode";
6+
67
import{errToStr}from"./api/api-helper";
78
import{CoderApi}from"./api/coderApi";
89
import{needToken}from"./api/utils";

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp