BuildError
Defined in: packages/core/src/kernel/errors.ts:136
Raised when a builder .run() step fails or is misconfigured.
Remarks
Section titled “Remarks”Thrown by UnixBuilder.build during the .run() phase when either
(a) the step’s shell command exits non-zero, or (b) the precondition check
fails because no sh bin is present in the composed image. The
message carries the failing command and captured stderr so the error
is self-explanatory in test output; the fields below let tooling
branch on the specific failure.
Example
Section titled “Example”import { Unix, stdSystem, BuildError } from '@fishnet/core'
try { await Unix().use(stdSystem()).run('false').build()} catch (err) { if (err instanceof BuildError) { console.error(`step "${err.command}" exited ${err.exitCode}`) console.error(err.stderr) }}Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new BuildError(
command,exitCode,stderr):BuildError
Defined in: packages/core/src/kernel/errors.ts:144
Parameters
Section titled “Parameters”command
Section titled “command”string
exitCode
Section titled “exitCode”stderr
Section titled “stderr”string
Returns
Section titled “Returns”BuildError
Overrides
Section titled “Overrides”Error.constructor
Properties
Section titled “Properties”cause?
Section titled “cause?”
optionalcause?:unknown
Defined in: node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.es2022.error.d.ts:26
Inherited from
Section titled “Inherited from”Error.cause
command
Section titled “command”
readonlycommand:string
Defined in: packages/core/src/kernel/errors.ts:138
The shell command that failed, or (precondition) for the no-shell guard.
exitCode
Section titled “exitCode”
readonlyexitCode:ExitCode
Defined in: packages/core/src/kernel/errors.ts:140
Exit code returned by the failed .run() step (0 for the precondition case).
message
Section titled “message”message:
string
Defined in: node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.es5.d.ts:1077
Inherited from
Section titled “Inherited from”Error.message
name:
string
Defined in: node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
Section titled “Inherited from”Error.name
stack?
Section titled “stack?”
optionalstack?:string
Defined in: node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.es5.d.ts:1078
Inherited from
Section titled “Inherited from”Error.stack
stderr
Section titled “stderr”
readonlystderr:string
Defined in: packages/core/src/kernel/errors.ts:142
Captured stderr output from the failed step (empty string if none).
stackTraceLimit
Section titled “stackTraceLimit”
staticstackTraceLimit:number
Defined in: node_modules/.pnpm/@[email protected]/node_modules/@types/node/globals.d.ts:67
The Error.stackTraceLimit property specifies the number of stack frames
collected by a stack trace (whether generated by new Error().stack or
Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Section titled “Inherited from”Error.stackTraceLimit
Methods
Section titled “Methods”captureStackTrace()
Section titled “captureStackTrace()”
staticcaptureStackTrace(targetObject,constructorOpt?):void
Defined in: node_modules/.pnpm/@[email protected]/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};Error.captureStackTrace(myObject);myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() { b();}
function b() { c();}
function c() { // Create an error without stack trace to avoid calculating the stack trace twice. const { stackTraceLimit } = Error; Error.stackTraceLimit = 0; const error = new Error(); Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace throw error;}
a();Parameters
Section titled “Parameters”targetObject
Section titled “targetObject”object
constructorOpt?
Section titled “constructorOpt?”Function
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Error.captureStackTrace
isError()
Section titled “isError()”
staticisError(error):error is Error
Defined in: node_modules/.pnpm/[email protected]/node_modules/typescript/lib/lib.esnext.error.d.ts:23
Indicates whether the argument provided is a built-in Error instance or not.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”error is Error
Inherited from
Section titled “Inherited from”Error.isError
prepareStackTrace()
Section titled “prepareStackTrace()”
staticprepareStackTrace(err,stackTraces):any
Defined in: node_modules/.pnpm/@[email protected]/node_modules/@types/node/globals.d.ts:55
Parameters
Section titled “Parameters”Error
stackTraces
Section titled “stackTraces”CallSite[]
Returns
Section titled “Returns”any
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Section titled “Inherited from”Error.prepareStackTrace