Interface

interface TransformOutput {
    pathname?: string;
    filename?: string;
    mimeType?: string;
    sourceFile?: string;
    sourcesRelativeTo?: string;
    metadata?: unknown;
    external?: PlainObject;
}
import type { IModule } from "../../types/lib";
import type { ChunkData, FindModuleOptions, SourceInput, SourceMap } from "../../types/document";

interface ITransformSeries extends IModule, TransformOutput {
    type: "html" | "css" | "js";
    baseConfig: PlainObject;
    outputConfig: PlainObject; // Same as baseConfig when using an inline transformer
    sourceMap: SourceMap; // Primary sourceMap
    code: string;
    metadata: PlainObject; // Custom request values and modifiable per transformer
    options: TransformOutput;
    productionRelease: boolean;
    supplementChunks: ChunkData[];
    imported: boolean; // ESM detected
    createSourceMap(code: string): SourceMap; // Use "nextMap" method for sourceMap (additional sourceMaps)
    toBaseConfig(all?: boolean): PlainObject;
    upgrade(context: unknown, options: FindModuleOptions): unknown; // Use exact dependency installed with package
    upgrade(context: unknown, startDir?: string, packageName?: string, version?: string): unknown;
    findModule(startDir: string, packageName?: string, version?: string): string;

    /* ESM */
    getMainFile(code?: string, imports?: Record<string, string>): SourceInput<string> | undefined;
    getSourceFiles(imports?: Record<string, string>): SourceInput<[string, string?, string?][]> | undefined;
    upgradeESM(context: unknown, options: FindModuleOptions): Promise<unknown>; // Dynamic import with "require" fallback
    upgradeESM(context: unknown, dirname?: string, pkgname?: string, version?: string): Promise<unknown>;

    /* Return values */
    out: {
        sourceFiles?: string[]; // ESM (e.g. files to watch)
        ignoreCache?: boolean;
        messageAppend?: string;
        logAppend?: LogStatus[];
        logQueued?: LogStatus[];
    };

    version: string; // Requested version

    packageName: string;
    packageVersion: string; // Context version

    /* IModule */
    host: IFileManager;
    username: string;
    getTempDir(): string; // pathname: packageName + createDir: true
}

Changelog

Changed in version 0.13.0:

  • ITransformSeries function upgrade | upgradeESM can specify a version range to locate a hoisted package:

    Type

    Version

    first

    latest

    exact

    1.1.0

    startsWith

    1.1.

    RegExp ^

    ”^1\\.[0-9]\\.”

    RegExp $

    ”\\.[0-9]\\.\\d+$”

  • ITransformSeries symbol name for constructorOf was changed from transformseries to document:transform:series.

Added in version 0.10.0:

  • ITransformSeries function upgradeESM for using internal dependencies was created.