Files
klz-cables.com/.pnpm-store/v10/files/63/a83bd7e5f65202289c539c5427c5da935ca54c5a579a968a9b077fed6e663b73ce3e189a8868ab351a04e6253d551c30be59fa2b446f2711b8b57a325930a0
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

67 lines
2.2 KiB
Plaintext

import { expectAssignable, expectType, expectNotAssignable } from "tsd";
import pino from "../../";
import type {LevelWithSilent, Logger, LogFn, DestinationStreamWithMetadata, Level, LevelOrString, LevelWithSilentOrString, LoggerExtras, LoggerOptions } from "../../pino";
// NB: can also use `import * as pino`, but that form is callable as `pino()`
// under `esModuleInterop: false` or `pino.default()` under `esModuleInterop: true`.
const log = pino();
expectAssignable<LoggerExtras>(log);
expectType<Logger>(log);
expectType<LogFn>(log.info);
expectType<Parameters<typeof log.isLevelEnabled>>([log.level]);
const level: Level = 'debug';
expectAssignable<string>(level);
const levelWithSilent: LevelWithSilent = 'silent';
expectAssignable<string>(levelWithSilent);
const levelOrString: LevelOrString = "myCustomLevel";
expectAssignable<string>(levelOrString);
expectNotAssignable<pino.Level>(levelOrString);
expectNotAssignable<pino.LevelWithSilent>(levelOrString);
expectAssignable<pino.LevelWithSilentOrString>(levelOrString);
const levelWithSilentOrString: LevelWithSilentOrString = "myCustomLevel";
expectAssignable<string>(levelWithSilentOrString);
expectNotAssignable<pino.Level>(levelWithSilentOrString);
expectNotAssignable<pino.LevelWithSilent>(levelWithSilentOrString);
expectAssignable<pino.LevelOrString>(levelWithSilentOrString);
function createStream(): DestinationStreamWithMetadata {
return { write() {} };
}
const stream = createStream();
// Argh. TypeScript doesn't seem to narrow unless we assign the symbol like so, and tsd seems to
// break without annotating the type explicitly
const needsMetadata: typeof pino.symbols.needsMetadataGsym = pino.symbols.needsMetadataGsym;
if (stream[needsMetadata]) {
expectType<number>(stream.lastLevel);
}
const loggerOptions:LoggerOptions = {
browser: {
formatters: {
log(obj) {
return obj
},
level(label, number) {
return { label, number}
}
}
}
}
expectType<LoggerOptions>(loggerOptions)
// Reference: https://github.com/pinojs/pino/issues/2285
const someConst = "test" as const;
pino().error({}, someConst);
const someFunc = <T extends typeof someConst>(someConst: T) => {
pino().error({}, someConst);
};