@probitas/discover

Scenario file discovery utilities for Probitas.

This package provides utilities for discovering scenario files (.probitas.ts) from file paths and directories. It supports glob patterns for flexible file matching and is used internally by the CLI to find scenarios to execute.

PackageDescription
@probitas/coreLoad discovered files with loadScenarios
@probitas/cliCLI that uses this discovery

Core Function

Configuration Types

Default Behavior

By default, the discovery function:

  • Searches for files matching **\/*.probitas.ts in directories
  • Returns direct file paths as-is (no pattern matching)
  • Returns absolute paths sorted alphabetically

Permissions

Requires --allow-read permission to read the file system.

Installation

deno add jsr:@probitas/discover

Interfaces

interface

#DiscoverOptions

interface DiscoverOptions

Options for discovering scenario files.

Controls which files are included or excluded when scanning directories.

NameDescription
includesGlob patterns for files to include when scanning directories.
excludesGlob patterns for files to exclude.
onProgressCallback invoked during discovery to report progress.
Properties
  • includes?readonly string[]

    Glob patterns for files to include when scanning directories.

    Uses standard glob syntax with ** for recursive matching.

  • excludes?readonly string[]

    Glob patterns for files to exclude.

  • onProgress?(progress: DiscoverProgress) => unknown

    Callback invoked during discovery to report progress.

    Called when processing each path (file or directory) and after completing pattern matching within a directory. This allows CLI applications to display real-time progress feedback.

interface

#DiscoverProgress

interface DiscoverProgress

Progress information during file discovery.

Provides real-time feedback about the discovery process, useful for displaying progress in CLI applications.

NameDescription
currentPathThe directory or file path currently being processed.
filesFoundTotal number of matching files found so far.
Properties
  • currentPathstring

    The directory or file path currently being processed.

  • filesFoundnumber

    Total number of matching files found so far.

Functions

function

#discoverScenarioFiles

async function discoverScenarioFiles(
  paths: readonly string[],
  _: unknown,
): Promise<string[]>

Discover scenario files from paths (files or directories).

Handles two input types:

  • File path: Returns the file directly (no pattern matching)
  • Directory path: Scans using include/exclude patterns
Parameters
  • pathsreadonly string[]
    • Array of file paths or directory paths to scan
  • _unknown
Returns

Promise<string[]> — Array of absolute file paths, sorted alphabetically

Examples

Discover from directories

import { discoverScenarioFiles } from "@probitas/discover";

// Use default patterns (*.probitas.ts)
const files = await discoverScenarioFiles(["./tests", "./integration"]);

Discover with custom patterns

const files = await discoverScenarioFiles(["./src"], {
  includes: ["**\/*.test.ts", "**\/*.spec.ts"],
  excludes: ["**\/__fixtures__/**"]
});

Mixed files and directories

const files = await discoverScenarioFiles([
  "./tests/",           // Scan directory
  "./smoke.probitas.ts" // Include specific file
]);
Search Documentation