Function: nonRedundantTypeAliases()
function nonRedundantTypeAliases(source): {
doc?: string;
name: string;
type: FieldType;
}[];
Defined in: packages/ir/src/helpers.ts:67
source.typeAliases minus a parser's self-referencing enum alias entries
({ kind: 'enum', ref: <own name> }) — a resolution-metadata shim
(docs/ir.md "Closed points" §3) rather than a second declaration of the
enum. The check is shape-based, not name-based: a hand-written alias that
merely shares a name with an unrelated enum (a genuine collision) is kept.
Parameters
| Parameter | Type |
|---|---|
source | { entities: { [key: string]: { additionalProperties?: FieldType; dbName?: string; doc?: string; enums?: { [key: string]: { dbName?: string; doc?: string; name: string; values: { dbName?: string; doc?: string; name: string; }[]; }; }; fields: { constraints: { format?: | "date" | "datetime" | "uuid" | "email" | "url" | "cuid" | "cuid2" | "ulid" | "time" | "duration" | "ipv4" | "ipv6"; max?: number; maxLength?: number; min?: number; minLength?: number; regex?: string; unique?: boolean; }; dbName?: string; default?: | { kind: "value"; value: JsonValue; } | { args?: JsonValue[]; expr: string; kind: "expr"; }; doc?: string; hidden?: boolean; list: boolean; name: string; nullable: boolean; optional: boolean; type: FieldType; }[]; indexes: ( | { fields: string[]; kind: "columns"; name?: string; type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist"; } | { expression: string; kind: "expression"; name?: string; type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist"; })[]; name: string; primaryKey?: string[]; relations: { backRelation?: string; cardinality: "one" | "many"; fkFields?: string[]; name: string; onDelete?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction"; onUpdate?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction"; optional: boolean; owning: boolean; references?: string[]; target: { entity: string; namespace: string; }; }[]; uniques: { fields: string[]; name?: string; }[]; }; }; enums: { [key: string]: { dbName?: string; doc?: string; name: string; values: { dbName?: string; doc?: string; name: string; }[]; }; }; namespace: string; parser: string; parserVersion?: string; typeAliases?: { [key: string]: { doc?: string; name: string; type: FieldType; }; }; } |
source.entities | { [key: string]: { additionalProperties?: FieldType; dbName?: string; doc?: string; enums?: { [key: string]: { dbName?: string; doc?: string; name: string; values: { dbName?: string; doc?: string; name: string; }[]; }; }; fields: { constraints: { format?: | "date" | "datetime" | "uuid" | "email" | "url" | "cuid" | "cuid2" | "ulid" | "time" | "duration" | "ipv4" | "ipv6"; max?: number; maxLength?: number; min?: number; minLength?: number; regex?: string; unique?: boolean; }; dbName?: string; default?: | { kind: "value"; value: JsonValue; } | { args?: JsonValue[]; expr: string; kind: "expr"; }; doc?: string; hidden?: boolean; list: boolean; name: string; nullable: boolean; optional: boolean; type: FieldType; }[]; indexes: ( | { fields: string[]; kind: "columns"; name?: string; type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist"; } | { expression: string; kind: "expression"; name?: string; type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist"; })[]; name: string; primaryKey?: string[]; relations: { backRelation?: string; cardinality: "one" | "many"; fkFields?: string[]; name: string; onDelete?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction"; onUpdate?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction"; optional: boolean; owning: boolean; references?: string[]; target: { entity: string; namespace: string; }; }[]; uniques: { fields: string[]; name?: string; }[]; }; } |
source.enums | { [key: string]: { dbName?: string; doc?: string; name: string; values: { dbName?: string; doc?: string; name: string; }[]; }; } |
source.namespace | string |
source.parser | string |
source.parserVersion? | string |
source.typeAliases? | { [key: string]: { doc?: string; name: string; type: FieldType; }; } |
Returns
{
doc?: string;
name: string;
type: FieldType;
}[]