Data Pipeline Case Studies
Validation Summary Case
Validation logic can produce a typed summary instead of only a yes-or-no answer.
Validation Summary Case
validation.ts
type Submission = {
name: string;
score: number;
};
type ValidationSummary = {
accepted: number;
rejected: number;
};
function summarize(submissions: Submission[], minimumScore: number): ValidationSummary {
const summary: ValidationSummary = { accepted: 0, rejected: 0 };
for (const submission of submissions) {
if (submission.score >= minimumScore) {
summary.accepted += 1;
} else {
summary.rejected += 1;
}
}
return summary;
}
const minimumScore: number = ;
const submissions: Submission[] = [
{ name: "alpha", score: 95 },
{ name: "beta", score: 68 },
{ name: "gamma", score: 82 }
];
const summary: ValidationSummary = summarize(submissions, minimumScore);
console.log(`accepted=${summary.accepted};rejected=${summary.rejected}`);
type Submission = {
name: string;
score: number;
};
type ValidationSummary = {
accepted: number;
rejected: number;
};
function summarize(submissions: Submission[], minimumScore: number): ValidationSummary {
const summary: ValidationSummary = { accepted: 0, rejected: 0 };
for (const submission of submissions) {
if (submission.score >= minimumScore) {
summary.accepted += 1;
} else {
summary.rejected += 1;
}
}
return summary;
}
const minimumScore: number = ;
const submissions: Submission[] = [
{ name: "alpha", score: 95 },
{ name: "beta", score: 68 },
{ name: "gamma", score: 82 }
];
const summary: ValidationSummary = summarize(submissions, minimumScore);
console.log(`accepted=${summary.accepted};rejected=${summary.rejected}`);
validation summary
A summary object makes validation outcomes easy to replay and inspect.