diff --git a/package-lock.json b/package-lock.json index 969b9940..4dd62c12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -521,36 +521,6 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "@types/pino": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.7.tgz", - "integrity": "sha512-v7FdDXVEL0Zx1zcCf0cJZMojChnF+O0ujDKV1UdocsLuUhENjdtNIaanCZK1zRELp35x//bI2/IHtYUK0vmRvw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/pino-pretty": "*", - "@types/pino-std-serializers": "*", - "@types/sonic-boom": "*" - } - }, - "@types/pino-pretty": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.0.tgz", - "integrity": "sha512-fIZ+VXf9gJoJR4tiiM7G+j/bZkPoZEfFGzA4d8tAWCTpTVyvVaBwnmdLs3wEXYpMjw8eXulrOzNCjmGHT3FgHw==", - "dev": true, - "requires": { - "@types/pino": "*" - } - }, - "@types/pino-std-serializers": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", - "integrity": "sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/proxyquire": { "version": "1.3.28", "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", @@ -572,15 +542,6 @@ "@sinonjs/fake-timers": "^7.0.4" } }, - "@types/sonic-boom": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@types/sonic-boom/-/sonic-boom-0.7.0.tgz", - "integrity": "sha512-AfqR0fZMoUXUNwusgXKxcE9DPlHNDHQp6nKYUd4PSRpLobF5CCevSpyTEBcVZreqaWKCnGBr9KI1fHMTttoB7A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/yargs": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.1.tgz", @@ -1040,11 +1001,6 @@ "retry": "0.12.0" } }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2026,16 +1982,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fast-redact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.0.tgz", - "integrity": "sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==" - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, "fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", @@ -2114,11 +2060,6 @@ "rimraf": "^3.0.2" } }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, "flatted": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", @@ -3764,24 +3705,6 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true }, - "pino": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", - "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.7", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - } - }, - "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -3923,11 +3846,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -4395,15 +4313,6 @@ "is-fullwidth-code-point": "^3.0.0" } }, - "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", diff --git a/package.json b/package.json index b82025e9..e892556b 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "diff": "^5.0.0", "glob": "^7.1.6", "parse-diff": "^0.8.0", - "pino": "^6.3.2", "yargs": "^16.0.0" }, "devDependencies": { @@ -58,7 +57,6 @@ "@types/diff": "^5.0.0", "@types/mocha": "^8.0.0", "@types/node": "^14.0.20", - "@types/pino": "^6.3.0", "@types/proxyquire": "^1.3.28", "@types/sinon": "^10.0.0", "c8": "^7.0.1", diff --git a/src/bin/handle-git-dir-change.ts b/src/bin/handle-git-dir-change.ts index 68ac3500..e79f03c2 100644 --- a/src/bin/handle-git-dir-change.ts +++ b/src/bin/handle-git-dir-change.ts @@ -84,7 +84,7 @@ function parseGitDiff( const relativePath = statusAndPath[1]; return {oldMode, newMode, status, relativePath}; } catch (err) { - logger.warning( + logger.warn( `\`git diff --raw\` may have changed formats: \n ${gitDiffPattern}` ); throw err; diff --git a/src/index.ts b/src/index.ts index a833f598..530e2924 100644 --- a/src/index.ts +++ b/src/index.ts @@ -22,10 +22,10 @@ import { FileData, FileDiffContent, CreateReviewCommentUserOptions, + Logger, } from './types'; export {Changes} from './types'; import {Octokit} from '@octokit/rest'; -import {Logger, LoggerOptions} from 'pino'; import {logger, setupLogger} from './logger'; import { addPullRequestDefaults, @@ -54,7 +54,7 @@ export async function reviewPullRequest( octokit: Octokit, diffContents: Map | string, options: CreateReviewCommentUserOptions, - loggerOption?: Logger | LoggerOptions + loggerOption?: Logger ): Promise { setupLogger(loggerOption); // if null undefined, or the empty map then no changes have been provided. @@ -111,7 +111,7 @@ async function createPullRequest( octokit: Octokit, changes: Changes | null | undefined, options: CreatePullRequestUserOptions, - loggerOption?: Logger | LoggerOptions + loggerOption?: Logger ): Promise { setupLogger(loggerOption); // if null undefined, or the empty map then no changes have been provided. diff --git a/src/logger.ts b/src/logger.ts index 9a9cc5d1..23c8e12f 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -12,16 +12,23 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {Logger, Level} from 'pino'; -import * as Pino from 'pino'; +import {Logger} from './types'; let logger: Logger; -function setupLogger(userLogger?: Logger | Pino.LoggerOptions) { - if (typeof userLogger === 'undefined' || typeof userLogger === 'object') { - logger = Pino(userLogger); +class NullLogger implements Logger { + error = () => {}; + warn = () => {}; + info = () => {}; + debug = () => {}; + trace = () => {}; +} + +function setupLogger(userLogger?: Logger) { + if (userLogger) { + logger = userLogger; } else { - logger = userLogger as Logger; + logger = new NullLogger(); } } -export {logger, Logger, Level, setupLogger}; +export {logger, setupLogger}; diff --git a/src/types.ts b/src/types.ts index 704d985e..003958c3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -177,3 +177,18 @@ export interface Hunk { readonly previousLine?: string; readonly nextLine?: string; } + +interface LogFn { + /* eslint-disable @typescript-eslint/no-explicit-any */ + (obj: T, msg?: string, ...args: any[]): void; + (msg: string, ...args: any[]): void; + /* eslint-enable @typescript-eslint/no-explicit-any */ +} + +export interface Logger { + error: LogFn; + warn: LogFn; + info: LogFn; + debug: LogFn; + trace: LogFn; +} diff --git a/test/util.ts b/test/util.ts index 837456b1..ea320157 100644 --- a/test/util.ts +++ b/test/util.ts @@ -15,7 +15,6 @@ import {setupLogger, logger} from '../src/logger'; import {Octokit} from '@octokit/rest'; import {disableNetConnect} from 'nock'; -import * as Pino from 'pino'; const octokit = new Octokit(); @@ -24,7 +23,7 @@ const octokit = new Octokit(); */ function setup() { disableNetConnect(); - setupLogger(Pino({level: 'warn'})); + setupLogger(console); } export {logger, octokit, setup};