nx
Version:
306 lines (250 loc) • 9.61 kB
TypeScript
/* auto-generated by NAPI-RS */
/* eslint-disable */
export declare class ExternalObject<T> {
readonly '': {
readonly '': unique symbol
[K: symbol]: T
}
}
export declare class ChildProcess {
kill(): void
onExit(callback: (message: string) => void): void
onOutput(callback: (message: string) => void): void
}
export declare class FileLock {
locked: boolean
constructor(lockFilePath: string)
unlock(): void
check(): boolean
wait(): Promise<void>
lock(): void
}
export declare class HashPlanner {
constructor(nxJson: NxJson, projectGraph: ExternalObject<ProjectGraph>)
getPlans(taskIds: Array<string>, taskGraph: TaskGraph): Record<string, string[]>
getPlansReference(taskIds: Array<string>, taskGraph: TaskGraph): JsExternal
}
export declare class ImportResult {
file: string
sourceProject: string
dynamicImportExpressions: Array<string>
staticImportExpressions: Array<string>
}
export declare class NxCache {
cacheDirectory: string
constructor(workspaceRoot: string, cachePath: string, dbConnection: ExternalObject<NxDbConnection>, linkTaskDetails?: boolean | undefined | null, maxCacheSize?: number | undefined | null)
get(hash: string): CachedResult | null
put(hash: string, terminalOutput: string, outputs: Array<string>, code: number): void
applyRemoteCacheResults(hash: string, result: CachedResult, outputs?: Array<string> | undefined | null): void
getTaskOutputsPath(hash: string): string
getCacheSize(): number
copyFilesFromCache(cachedResult: CachedResult, outputs: Array<string>): number
removeOldCacheRecords(): void
checkCacheFsInSync(): boolean
}
export declare class NxTaskHistory {
constructor(db: ExternalObject<NxDbConnection>)
recordTaskRuns(taskRuns: Array<TaskRun>): void
getFlakyTasks(hashes: Array<string>): Array<string>
getEstimatedTaskTimings(targets: Array<TaskTarget>): Record<string, number>
}
export declare class RustPseudoTerminal {
constructor()
runCommand(command: string, commandDir?: string | undefined | null, jsEnv?: Record<string, string> | undefined | null, execArgv?: Array<string> | undefined | null, quiet?: boolean | undefined | null, tty?: boolean | undefined | null): ChildProcess
/**
* This allows us to run a pseudoterminal with a fake node ipc channel
* this makes it possible to be backwards compatible with the old implementation
*/
fork(id: string, forkScript: string, pseudoIpcPath: string, commandDir: string | undefined | null, jsEnv: Record<string, string> | undefined | null, execArgv: Array<string> | undefined | null, quiet: boolean): ChildProcess
}
export declare class TaskDetails {
constructor(db: ExternalObject<NxDbConnection>)
recordTaskDetails(tasks: Array<HashedTask>): void
}
export declare class TaskHasher {
constructor(workspaceRoot: string, projectGraph: ExternalObject<ProjectGraph>, projectFileMap: ExternalObject<ProjectFiles>, allWorkspaceFiles: ExternalObject<Array<FileData>>, tsConfig: Buffer, tsConfigPaths: Record<string, Array<string>>, options?: HasherOptions | undefined | null)
hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string>): NapiDashMap
}
export declare class Watcher {
origin: string
/**
* Creates a new Watcher instance.
* Will always ignore the following directories:
* * .git/
* * node_modules/
* * .nx/
*/
constructor(origin: string, additionalGlobs?: Array<string> | undefined | null, useIgnore?: boolean | undefined | null)
watch(callback: (err: string | null, events: WatchEvent[]) => void): void
stop(): Promise<void>
}
export declare class WorkspaceContext {
workspaceRoot: string
constructor(workspaceRoot: string, cacheDir: string)
getWorkspaceFiles(projectRootMap: Record<string, string>): NxWorkspaceFiles
glob(globs: Array<string>, exclude?: Array<string> | undefined | null): Array<string>
/**
* Performs multiple glob pattern matches against workspace files in parallel
* @returns An array of arrays, where each inner array contains the file paths
* that matched the corresponding glob pattern in the input. The outer array maintains the same order
* as the input globs.
*/
multiGlob(globs: Array<string>, exclude?: Array<string> | undefined | null): Array<Array<string>>
hashFilesMatchingGlobs(globGroups: Array<Array<string>>): Array<string>
hashFilesMatchingGlob(globs: Array<string>, exclude?: Array<string> | undefined | null): string
incrementalUpdate(updatedFiles: Array<string>, deletedFiles: Array<string>): Record<string, string>
updateProjectFiles(projectRootMappings: ProjectRootMappings, projectFiles: ExternalObject<ProjectFiles>, globalFiles: ExternalObject<Array<FileData>>, updatedFiles: Record<string, string>, deletedFiles: Array<string>): UpdatedWorkspaceFiles
allFileData(): Array<FileData>
getFilesInDirectory(directory: string): Array<string>
}
export interface CachedResult {
code: number
terminalOutput?: string
outputsPath: string
size?: number
}
export declare export function closeDbConnection(connection: ExternalObject<NxDbConnection>): void
export declare export function connectToNxDb(cacheDir: string, nxVersion: string, dbName?: string | undefined | null): ExternalObject<NxDbConnection>
export declare export function copy(src: string, dest: string): number
export interface DepsOutputsInput {
dependentTasksOutputFiles: string
transitive?: boolean
}
export interface EnvironmentInput {
env: string
}
export declare const enum EventType {
delete = 'delete',
update = 'update',
create = 'create'
}
export declare export function expandOutputs(directory: string, entries: Array<string>): Array<string>
export interface ExternalDependenciesInput {
externalDependencies: Array<string>
}
export interface ExternalNode {
packageName?: string
version: string
hash?: string
}
export interface FileData {
file: string
hash: string
}
export interface FileMap {
projectFileMap: ProjectFiles
nonProjectFiles: Array<FileData>
}
export interface FileSetInput {
fileset: string
}
export declare export function findImports(projectFileMap: Record<string, Array<string>>): Array<ImportResult>
export declare export function getBinaryTarget(): string
export declare export function getDefaultMaxCacheSize(cachePath: string): number
/**
* Expands the given outputs into a list of existing files.
* This is used when hashing outputs
*/
export declare export function getFilesForOutputs(directory: string, entries: Array<string>): Array<string>
export declare export function getTransformableOutputs(outputs: Array<string>): Array<string>
export declare export function hashArray(input: Array<string | undefined | null>): string
export interface HashDetails {
value: string
details: Record<string, string>
}
export interface HashedTask {
hash: string
project: string
target: string
configuration?: string
}
export interface HasherOptions {
selectivelyHashTsConfig: boolean
}
export declare export function hashFile(file: string): string | null
export interface InputsInput {
input: string
dependencies?: boolean
projects?: string | Array<string>
}
export const IS_WASM: boolean
/** Stripped version of the NxJson interface for use in rust */
export interface NxJson {
namedInputs?: Record<string, Array<JsInputs>>
}
export interface NxWorkspaceFiles {
projectFileMap: ProjectFiles
globalFiles: Array<FileData>
externalReferences?: NxWorkspaceFilesExternals
}
export interface NxWorkspaceFilesExternals {
projectFiles: ExternalObject<ProjectFiles>
globalFiles: ExternalObject<Array<FileData>>
allWorkspaceFiles: ExternalObject<Array<FileData>>
}
export interface Project {
root: string
namedInputs?: Record<string, Array<JsInputs>>
tags?: Array<string>
targets: Record<string, Target>
}
export interface ProjectGraph {
nodes: Record<string, Project>
dependencies: Record<string, Array<string>>
externalNodes: Record<string, ExternalNode>
}
export declare export function remove(src: string): void
export interface RuntimeInput {
runtime: string
}
export interface Target {
executor?: string
inputs?: Array<JsInputs>
outputs?: Array<string>
options?: string
configurations?: string
parallelism?: boolean
}
export interface Task {
id: string
target: TaskTarget
outputs: Array<string>
projectRoot?: string
}
export interface TaskGraph {
roots: Array<string>
tasks: Record<string, Task>
dependencies: Record<string, Array<string>>
}
export interface TaskRun {
hash: string
status: string
code: number
start: number
end: number
}
export interface TaskTarget {
project: string
target: string
configuration?: string
}
export declare export function testOnlyTransferFileMap(projectFiles: Record<string, Array<FileData>>, nonProjectFiles: Array<FileData>): NxWorkspaceFilesExternals
/**
* Transfer the project graph from the JS world to the Rust world, so that we can pass the project graph via memory quicker
* This wont be needed once the project graph is created in Rust
*/
export declare export function transferProjectGraph(projectGraph: ProjectGraph): ExternalObject<ProjectGraph>
export interface UpdatedWorkspaceFiles {
fileMap: FileMap
externalReferences: NxWorkspaceFilesExternals
}
export declare export function validateOutputs(outputs: Array<string>): void
export interface WatchEvent {
path: string
type: EventType
}
/** Public NAPI error codes that are for Node */
export declare const enum WorkspaceErrors {
ParseError = 'ParseError',
Generic = 'Generic'
}