Tipos TypeScript
A dumpkit inclui tipos TypeScript completos para todas as APIs.
InspectOptions
Opções para a função inspect().
ts
type InspectOptions = {
view?: 'flat' | 'tree' | 'table'; // Estilo de visualização (padrão: 'flat')
depth?: number; // Profundidade máxima (padrão: 30)
colors?: boolean; // Forçar cores (padrão: auto)
showHidden?: boolean; // Mostrar propriedades não enumeráveis (padrão: false)
maxArrayLength?: number; // Máx. itens do array (padrão: 1000)
maxStringLength?: number; // Máx. comprimento da string (padrão: 5000)
indent?: number; // Espaços por indentação (padrão: 2)
maxProperties?: number; // Máx. propriedades do objeto (padrão: 200)
};DumpOptions
Opções para as funções dump() e dd().
ts
type DumpOptions = InspectOptions & {
stream?: NodeJS.WriteStream; // Stream de saída (padrão: stderr)
};TraceOptions
Opções para a função trace().
ts
type TraceOptions = {
colors?: boolean; // Forçar cores (padrão: auto)
indent?: number; // Espaços por indentação (padrão: 2)
showStack?: boolean; // Mostrar stack completo (padrão: false)
stream?: NodeJS.WriteStream; // Stream de saída (padrão: stderr)
};MeasureOptions
Opções para a função measure().
ts
type MeasureOptions = {
colors?: boolean; // Forçar cores (padrão: auto)
indent?: number; // Espaços por indentação (padrão: 2)
stream?: NodeJS.WriteStream; // Stream de saída (padrão: stderr)
};PauseOptions
Opções para a função dp().
ts
type PauseOptions = InspectOptions & {
message?: string; // Mensagem a mostrar (padrão: 'Press ENTER to continue...')
timeout?: number; // Tempo máximo em ms (0 = infinito, padrão: 0)
autoContinue?: boolean; // Auto-continuar em CI/ambiente não TTY (padrão: true)
};AnalyzeOptions
Opções para a função analyze().
ts
type AnalyzeOptions = {
depth?: number; // Profundidade máxima (padrão: 30)
maxArrayLength?: number; // Máx. itens do array (padrão: 1000)
maxStringLength?: number; // Máx. comprimento da string (padrão: 5000)
maxProperties?: number; // Máx. propriedades do objeto (padrão: 200)
showHidden?: boolean; // Mostrar propriedades não enumeráveis (padrão: false)
};AnalysisNode
Estrutura de um nó da análise semântica.
ts
type AnalysisNode =
| PrimitiveNode
| ObjectNode
| ArrayNode
| MapNode
| SetNode
| DateNode
| ErrorNode
| RegExpNode
| FunctionNode
| TypedArrayNode
| WeakMapNode
| WeakSetNode
| PromiseNode
| CircularNode
| SharedNode;
// Exemplo: ObjectNode
type ObjectNode = {
type: 'object';
className: string;
properties: { key: string | symbol; value: AnalysisNode; enumerable: boolean }[];
truncated?: boolean;
};StackFrame
Estrutura de um frame da stack.
ts
type StackFrame = {
file: string; // Caminho do ficheiro
line: number; // Número da linha
column: number; // Número da coluna
functionName: string; // Nome da função
raw: string; // Linha raw original
};MeasureResult
Resultado de uma medição.
ts
type MeasureResult = {
label: string; // Rótulo da medição
durationMs: number; // Duração em milissegundos
startTime: number; // Timestamp de início
endTime: number; // Timestamp de fim
};Uso em projetos TypeScript
Importar tipos
ts
import { inspect, dump } from 'dumpkit';
import type { InspectOptions, DumpOptions } from 'dumpkit';
const opts: InspectOptions = {
view: 'tree',
depth: 2,
colors: false
};
const output = inspect(dados, opts);Extender tipos
ts
import type { DumpOptions } from 'dumpkit';
interface MyDumpOptions extends DumpOptions {
myCustomOption?: boolean;
}Type guards
ts
import type { StackFrame, AnalysisNode } from 'dumpkit';
function processFrame(frame: StackFrame) {
console.log(`${frame.file}:${frame.line}`);
}
function isObjectNode(node: AnalysisNode): node is ObjectNode {
return node.type === 'object';
}