@forge-ts/contracts
contracts — Examples
Usage examples for the contracts package
All usage examples from the package, aggregated for quick reference.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Usage examples for the contracts package
ExternalTaskProviderclass LinearAdapter implements ExternalTaskProvider {
async getExternalTasks(projectDir: string): Promise<ExternalTask[]> {
const issues = await linearClient.issues({ projectId: '...' });
return issues.map(issue => ({
externalId: issue.id,
title: issue.title,
status: mapLinearStatus(issue.state),
description: issue.description,
priority: mapLinearPriority(issue.priority),
labels: issue.labels.map(l => l.name),
url: issue.url,
providerMeta: { linearId: issue.identifier },
}));
}
}
normalizeError()try {
await riskyOperation();
} catch (err) {
const error = normalizeError(err, 'Operation failed');
console.error(error.message);
}
getErrorMessage()const message = getErrorMessage(err, 'Unknown error');
formatError()console.error(formatError(err, 'Database connection'));
// Output: [Database connection] Connection refused
isErrorType()if (isErrorType(err, 'E_NOT_FOUND')) {
// Handle not found specifically
}
createErrorResult()return createErrorResult(err);
// Returns: { success: false, error: "Something went wrong" }
createSuccessResult()return createSuccessResult();
// Returns: { success: true }
isErrorResult()const result = await someOperation();
if (isErrorResult(result)) {
console.error(result.error);
}
isLafsSuccess()const result: LafsEnvelope<Task[]> = await fetchTasks();
if (isLafsSuccess(result)) {
console.log(result.data); // Task[]
}
isLafsError()const result: LafsEnvelope<Task[]> = await fetchTasks();
if (isLafsError(result)) {
console.error(result.error.message);
}
isGatewayEnvelope()const response: CleoResponse<Task> = await handleRequest();
if (isGatewayEnvelope(response)) {
console.log(response._meta.gateway);
}