Skip to content

Commit a0ce3ee

Browse files
refactor: migrate typescript (#119)
* refactor: migrate typescript * test: fix test cases * chore: impelement type of wrraped console * chore: eslint for typescript * chore(deps): add deps for typescript-eslint * chore: commit forgotten package-lock.json * test: fix test case for GHActions * chore: add `pretest` * chore: add eslint ignore comment * Update lib/log.ts Co-authored-by: Baoshuo Ren <[email protected]> * fix: main entry * add `default export` to createLogger` Co-authored-by: Baoshuo Ren <[email protected]>
1 parent 8f9dff3 commit a0ce3ee

File tree

10 files changed

+681
-254
lines changed

10 files changed

+681
-254
lines changed

.eslintignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules/
22
coverage/
3-
tmp/
3+
tmp/
4+
dist/

.eslintrc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
{
2-
"extends": "hexo",
3-
"root": true
2+
"root": true,
3+
"extends": "hexo/ts.js",
4+
"parserOptions": {
5+
"sourceType": "module",
6+
"ecmaVersion": 2020
7+
},
8+
"rules": {
9+
"@typescript-eslint/no-explicit-any": 0,
10+
"@typescript-eslint/ban-ts-comment": 0
11+
}
412
}

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ node_modules/
33
tmp/
44
*.log
55
.idea/
6-
.nyc_output/
6+
.nyc_output/
7+
dist

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,17 @@ $ npm install hexo-log --save
1515
## Usage
1616

1717
``` js
18+
// v3.x.x
1819
const log = require('hexo-log')({
1920
debug: false,
2021
silent: false
21-
})
22+
});
23+
24+
// v4.x.x
25+
const log = require('hexo-log').default({
26+
debug: false,
27+
silent: false
28+
});
2229

2330
log.info('Hello world');
2431
```

lib/log.js renamed to lib/log.ts

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
'use strict';
2-
3-
const { Console } = require('console');
4-
const picocolors = require('picocolors');
1+
import { Console } from 'console';
2+
import picocolors from 'picocolors';
53

64
const TRACE = 10;
75
const DEBUG = 20;
@@ -34,10 +32,31 @@ const console = new Console({
3432
colorMode: false
3533
});
3634

35+
interface Options {
36+
debug?: boolean,
37+
silent?: boolean
38+
}
39+
40+
// @ts-ignore
41+
type writeLogF = (...args: any[]) => void;
42+
3743
class Logger {
38-
constructor(options = {}) {
39-
const silent = options.silent || false;
40-
this._debug = options.debug || false;
44+
45+
_silent: boolean;
46+
_debug: boolean;
47+
level: number;
48+
d: writeLogF;
49+
i: writeLogF;
50+
w: writeLogF;
51+
e: writeLogF;
52+
log: writeLogF;
53+
54+
constructor({
55+
debug = false,
56+
silent = false
57+
}: Options = {}) {
58+
this._silent = silent || false;
59+
this._debug = debug || false;
4160

4261
this.level = INFO;
4362

@@ -129,7 +148,7 @@ class Logger {
129148
}
130149
}
131150

132-
function createLogger(options) {
151+
export default function createLogger(options: Options) {
133152
const logger = new Logger(options);
134153

135154
logger.d = logger.debug;
@@ -141,4 +160,4 @@ function createLogger(options) {
141160
return logger;
142161
}
143162

144-
module.exports = createLogger;
163+
export const logger = (option: Options) => createLogger(option);

0 commit comments

Comments
 (0)