-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[Bug]: Winston failed to execute caused by TypeError #2327
Description
🔎 Search Terms
winston colors, winston docker container fails,
The problem
Winston version: ^3.10.0
NodeJS version: v18.16.1
NPM version: 9.5.1
NextJS version: 13.4.10
Winston brakes the app (NextJS 13) because of an unhandled Exception in peer dependency (@colors/colors):
The error message reflects a TypeError in https://github.com/DABH/colors.js/blob/master/lib/system/has-flag.js file. Not checks the argv variable is not undefined.
- error Error [TypeError]: Cannot read properties of undefined (reading 'indexOf')
2023-07-16T11:08:15.194016114Z at <unknown> (webpack-internal:///(middleware)/./node_modules/@colors/colors/lib/system/has-flag.js:26)
2023-07-16T11:08:15.194019984Z at module.exports (webpack-internal:///(middleware)/./node_modules/@colors/colors/lib/system/has-flag.js:26:30)
2023-07-16T11:08:15.194023256Z at eval (webpack-internal:///(middleware)/./node_modules/@colors/colors/lib/system/supports-colors.js:29:5)
2023-07-16T11:08:15.194026264Z at (middleware)/./node_modules/@colors/colors/lib/system/supports-colors.js (file:///app/_next/server/src/middleware.js:219:1)
2023-07-16T11:08:15.194029419Z at __webpack_require__ (file:///app/_next/server/edge-runtime-webpack.js:37:33)
2023-07-16T11:08:15.194032354Z at fn (file:///app/_next/server/edge-runtime-webpack.js:268:21)
2023-07-16T11:08:15.194035257Z at eval (webpack-internal:///(middleware)/./node_modules/@colors/colors/lib/colors.js:36:25)
2023-07-16T11:08:15.194038400Z at (middleware)/./node_modules/@colors/colors/lib/colors.js (file:///app/_next/server/src/middleware.js:127:1)
2023-07-16T11:08:15.194041466Z at __webpack_require__ (file:///app/_next/server/edge-runtime-webpack.js:37:33)
2023-07-16T11:08:15.194044377Z at fn (file:///app/_next/server/edge-runtime-webpack.js:268:21)
2023-07-16T11:08:15.194047214Z at eval (webpack-internal:///(middleware)/./node_modules/@colors/colors/safe.js:9:14) {
2023-07-16T11:08:15.194050136Z digest: undefined
2023-07-16T11:08:15.194052928Z }
What version of Winston presents the issue?
3.10.0
What version of Node are you using?
v18.16.11
If this worked in a previous version of Winston, which was it?
No response
Minimum Working Example
1. Fresh install NextJS with Tailwind CSS
npx create-next-app winston
Need to install the following packages:
create-next-app@13.4.10
Ok to proceed? (y) y
✔ Would you like to use TypeScript? … Yes
✔ Would you like to use ESLint? … No
✔ Would you like to use Tailwind CSS? … Yes
✔ Would you like to use `src/` directory? … Yes
✔ Would you like to use App Router? (recommended) … Yes
✔ Would you like to customize the default import alias? … No2. Install the latest version of Winston
npm install winston3. Make a logger instance in src/services/logger.ts file
import winston from 'winston';
const logger = winston.createLogger({
level: 'debug',
transports: [new winston.transports.Console()],
format: winston.format.json(),
});
export default logger;4. Create NextJS middleware in src/middleware.ts file
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import logger from '@/services/logger';
export const config = {
matcher: '/',
}
export function middleware(request: NextRequest) {
if(request === undefined){
return NextResponse.json({
message: "Bad request"
}, {
status: 400,
})
}
const testHeader = 'script-src \'self\';';
if(testHeader.includes('default-src') === false){
logger.error("Header values mismatch!")
}
const response = NextResponse.next();
response.headers.set('Content-Security-Policy', testHeader);
return response;
}5. Start the app
npm run devAfter that the error (which is detailed above) has appeared in the console and the browser.
Additional configs
package.json
{
"name": "winston",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@types/node": "20.4.2",
"@types/react": "18.2.15",
"@types/react-dom": "18.2.7",
"autoprefixer": "10.4.14",
"next": "13.4.10",
"postcss": "8.4.26",
"react": "18.2.0",
"react-dom": "18.2.0",
"tailwindcss": "3.3.3",
"typescript": "5.1.6",
"winston": "^3.10.0"
}
}tsconfig.json
Not modified manually, generated by npx create-next-app
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}next.config.js
Not modified manually, generated by npx create-next-app
/** @type {import('next').NextConfig} */
const nextConfig = {}
module.exports = nextConfigDirectory structure and permissions
drwxrwxr-x 7 adam adam 4,0K júl 16 14:16 .
drwxr-xr-x 8 adam adam 4,0K júl 16 14:12 ..
drwxrwxr-x 8 adam adam 4,0K júl 16 14:13 .git
-rw-rw-r-- 1 adam adam 368 júl 16 14:11 .gitignore
drwxrwxr-x 6 adam adam 4,0K júl 16 14:47 .next
-rw-rw-r-- 1 adam adam 92 júl 16 14:11 next.config.js
-rw-rw-r-- 1 adam adam 201 júl 16 14:11 next-env.d.ts
drwxrwxr-x 133 adam adam 4,0K júl 16 14:17 node_modules
-rw-rw-r-- 1 adam adam 514 júl 16 14:17 package.json
-rw-rw-r-- 1 adam adam 63K júl 16 14:17 package-lock.json
-rw-rw-r-- 1 adam adam 82 júl 16 14:11 postcss.config.js
drwxrwxr-x 2 adam adam 4,0K júl 16 14:12 public
-rw-rw-r-- 1 adam adam 1,4K júl 16 14:11 README.md
drwxrwxr-x 4 adam adam 4,0K júl 16 14:24 src
-rw-rw-r-- 1 adam adam 480 júl 16 14:12 tailwind.config.js
-rw-rw-r-- 1 adam adam 642 júl 16 14:12 tsconfig.jsonAdditional information
No response