Skip to content

Commit beba925

Browse files
committed
Switch to eslint
Fix the Google Cloud logger types as well.
1 parent 82e2acb commit beba925

12 files changed

+2037
-652
lines changed

.editorconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
trim_trailing_whitespace = true
6+
indent_size = 2

.eslintrc.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
parser: "@typescript-eslint/parser"
2+
env:
3+
browser: true
4+
es6: true # Map, etc.
5+
jest: true
6+
node: true
7+
8+
parserOptions:
9+
ecmaVersion: 2018
10+
sourceType: module
11+
12+
extends:
13+
- eslint:recommended
14+
- plugin:@typescript-eslint/recommended
15+
- plugin:import/recommended
16+
- plugin:import/typescript
17+
- plugin:prettier/recommended
18+
# Prettier should always be last
19+
# Removes eslint rules that conflict with prettier.
20+
- prettier
21+
22+
rules:
23+
# For overloads.
24+
no-dupe-class-members: off
25+
eqeqeq: error
26+
import/order:
27+
[error, { alphabetize: { order: "asc" }, groups: [["builtin", "external", "internal"], "parent", "sibling"] }]

.prettierrc.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
printWidth: 120
2+
semi: false
3+
trailingComma: all
4+
arrowParens: always

.stylelintrc.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
extends:
2+
- stylelint-config-recommended

package.json

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
11
{
2-
"name": "@coder/logger",
3-
"description": "Beautiful logging inspired by https://github.com/uber-go/zap.",
4-
"scripts": {
5-
"prepare": "tsc",
6-
"test": "jest"
7-
},
8-
"version": "1.1.16",
9-
"main": "out/index.js",
10-
"types": "out/index.d.ts",
11-
"author": "Coder",
12-
"license": "MIT",
13-
"peerDependencies": {
14-
"@google-cloud/logging": "^4.5.2"
15-
},
16-
"devDependencies": {
17-
"@types/jest": "^24.0.16",
18-
"@types/node": "^12.6.8",
19-
"jest": "^24.8.0",
20-
"ts-jest": "^24.0.2",
21-
"tslint": "^5.18.0",
22-
"typescript": "^3.5.3"
23-
},
24-
"jest": {
25-
"moduleFileExtensions": [
26-
"js",
27-
"ts"
28-
],
29-
"transform": {
30-
"^.+\\.tsx?$": "ts-jest"
31-
},
32-
"testRegex": ".*\\.test\\.ts"
33-
}
2+
"name": "@coder/logger",
3+
"description": "Beautiful logging inspired by https://github.com/uber-go/zap.",
4+
"scripts": {
5+
"lint": "eslint src/**",
6+
"prepare": "tsc",
7+
"test": "jest"
8+
},
9+
"version": "1.1.16",
10+
"main": "out/index.js",
11+
"types": "out/index.d.ts",
12+
"author": "Coder",
13+
"license": "MIT",
14+
"peerDependencies": {
15+
"@google-cloud/logging": "^9.2.1"
16+
},
17+
"devDependencies": {
18+
"@google-cloud/logging": "^9.2.1",
19+
"@types/jest": "^24.0.16",
20+
"@types/node": "^12.6.8",
21+
"@typescript-eslint/eslint-plugin": "^4.22.0",
22+
"@typescript-eslint/parser": "^4.22.0",
23+
"eslint": "^7.25.0",
24+
"eslint-config-prettier": "^8.3.0",
25+
"eslint-plugin-import": "^2.22.1",
26+
"eslint-plugin-prettier": "^3.4.0",
27+
"jest": "^24.8.0",
28+
"prettier": "^2.2.1",
29+
"ts-jest": "^24.0.2",
30+
"typescript": "^3.5.3"
31+
},
32+
"jest": {
33+
"moduleFileExtensions": [
34+
"js",
35+
"ts"
36+
],
37+
"transform": {
38+
"^.+\\.tsx?$": "ts-jest"
39+
},
40+
"testRegex": ".*\\.test\\.ts"
41+
}
3442
}

src/extender.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { field, logger } from "./logger";
2-
import { createStackdriverExtender } from "./extender";
1+
import { createStackdriverExtender } from "./extender"
2+
import { field, logger } from "./logger"
33

44
describe("Extender", () => {
5-
it("should add stackdriver extender", () => {
6-
logger.extend(createStackdriverExtender("coder-dev-1", "logging-package-tests"));
7-
});
5+
it("should add stackdriver extender", () => {
6+
logger.extend(createStackdriverExtender("coder-dev-1", "logging-package-tests"))
7+
})
88

9-
it("should log", async () => {
10-
logger.debug("Bananas!", field("frog", { hi: "wow" }));
11-
});
12-
});
9+
it("should log", async () => {
10+
logger.debug("Bananas!", field("frog", { hi: "wow" }))
11+
})
12+
})

src/extender.ts

Lines changed: 47 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,53 @@
1-
// @ts-ignore
2-
import * as gcl from "@google-cloud/logging";
3-
import { Extender, logger, field } from "./logger";
1+
import * as gcl from "@google-cloud/logging"
2+
import { Extender, logger, field } from "./logger"
43

54
export const createStackdriverExtender = (projectId: string, logId: string): Extender => {
6-
enum GcpLogSeverity {
7-
DEFAULT = 0,
8-
DEBUG = 100,
9-
INFO = 200,
10-
NOTICE = 300,
11-
WARNING = 400,
12-
ERROR = 500,
13-
CRITICAL = 600,
14-
ALERT = 700,
15-
EMERGENCY = 800,
16-
}
5+
const logging = new gcl.Logging({
6+
autoRetry: true,
7+
projectId,
8+
})
179

18-
const logging = new gcl.Logging({
19-
autoRetry: true,
20-
projectId,
21-
});
10+
const log = logging.log(logId)
11+
const convertSeverity = (
12+
severity: "trace" | "info" | "warn" | "debug" | "error",
13+
): gcl.protos.google.logging.type.LogSeverity => {
14+
switch (severity) {
15+
case "trace":
16+
case "debug":
17+
return gcl.protos.google.logging.type.LogSeverity.DEBUG
18+
case "info":
19+
return gcl.protos.google.logging.type.LogSeverity.INFO
20+
case "error":
21+
return gcl.protos.google.logging.type.LogSeverity.ERROR
22+
case "warn":
23+
return gcl.protos.google.logging.type.LogSeverity.WARNING
24+
}
25+
}
2226

23-
const log = logging.log(logId);
24-
const convertSeverity = (severity: "trace" | "info" | "warn" | "debug" | "error"): GcpLogSeverity => {
25-
switch (severity) {
26-
case "trace":
27-
case "debug":
28-
return GcpLogSeverity.DEBUG;
29-
case "info":
30-
return GcpLogSeverity.INFO;
31-
case "error":
32-
return GcpLogSeverity.ERROR;
33-
case "warn":
34-
return GcpLogSeverity.WARNING;
35-
}
36-
};
27+
return (options): void => {
28+
const severity = convertSeverity(options.type)
29+
const metadata: { [id: string]: string } = {}
30+
if (options.fields) {
31+
options.fields.forEach((f) => {
32+
if (!f) {
33+
return
34+
}
35+
metadata[f.identifier] = f.value
36+
})
37+
}
3738

38-
return (options): void => {
39-
const severity = convertSeverity(options.type);
40-
// tslint:disable-next-line:no-any
41-
const metadata = {} as any;
42-
if (options.fields) {
43-
options.fields.forEach((f) => {
44-
if (!f) {
45-
return;
46-
}
47-
metadata[f.identifier] = f.value;
48-
});
49-
}
39+
const entry = log.entry(
40+
{
41+
severity: severity,
42+
},
43+
{
44+
...metadata,
45+
message: options.message,
46+
},
47+
)
5048

51-
const entry = log.entry({
52-
// tslint:disable-next-line:no-any
53-
severity: severity as any,
54-
}, {
55-
...metadata,
56-
message: options.message,
57-
});
58-
59-
log.write(entry).catch((ex: Error) => {
60-
logger.named("GCP").error("Failed to log", field("error", ex));
61-
});
62-
};
63-
64-
};
49+
log.write(entry).catch((ex: Error) => {
50+
logger.named("GCP").error("Failed to log", field("error", ex))
51+
})
52+
}
53+
}

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export * from "./logger";
1+
export * from "./logger"

src/logger.test.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { field, logger, BrowserFormatter, Time } from "./logger";
1+
import { field, logger, BrowserFormatter, Time } from "./logger"
22

33
describe("Logger", () => {
4-
it("should use server formatter", () => {
5-
logger.info("test", field("key", "value"), field("time", new Time(100, Date.now())));
6-
logger.named("name").debug("test name");
7-
logger.named("another name").warn("another test name");
8-
});
4+
it("should use server formatter", () => {
5+
logger.info("test", field("key", "value"), field("time", new Time(100, Date.now())))
6+
logger.named("name").debug("test name")
7+
logger.named("another name").warn("another test name")
8+
})
99

10-
it("should use browser formatter", () => {
11-
logger.formatter = new BrowserFormatter();
12-
logger.info("test", field("key", "value"), field("time", new Time(100, Date.now())));
13-
logger.named("name").debug("test name");
14-
logger.named("another name").warn("another test name");
15-
});
16-
});
10+
it("should use browser formatter", () => {
11+
logger.formatter = new BrowserFormatter()
12+
logger.info("test", field("key", "value"), field("time", new Time(100, Date.now())))
13+
logger.named("name").debug("test name")
14+
logger.named("another name").warn("another test name")
15+
})
16+
})

0 commit comments

Comments
 (0)