Function: defineProfile()
defineProfile(
opts):NcpdpProfile
Build a readonly NcpdpProfile from a validated spec. Invalid input
throws "./errors.js".NcpdpProfileError with an actionable message:
missing/empty name, unknown option key (with a typo hint), or a quirk that
violates the locked hard rule (missing fixture, bad standard/effect,
unknown expectedWarnings code).
extends composes parent profiles: lineage flattens + dedupes, quirks merge
by id (child wins on collision, non-colliding parent quirks survive), and
description is last-wins.
Parameters
opts
Returns
Example
import { defineProfile } from "@cosyte/ncpdp/profiles";
const pbm = defineProfile({
name: "pbm",
description: "PBM / clearinghouse Telecom claim conventions",
quirks: [
{
id: "person-code-required",
standard: "telecom",
effect: "requires",
summary: "Insurance segment carries a Person Code (303-C3).",
fixture: "telecom/pbm-person-code.ncpdp",
sourceCategory: "NCPDP Telecommunication vD.0: Person Code (303-C3)",
},
],
});
pbm.name; // "pbm"
pbm.lineage; // ["pbm"]
pbm.describe().requires; // [{ id: "person-code-required", ... }]