domain-objects
Version:
A simple, convenient way to represent domain objects, leverage domain knowledge, and add runtime validation in your code base.
28 lines (27 loc) • 1.06 kB
TypeScript
/**
* determines whether property name is an intuitive reference to a domain object
*
* note
* - shares the qualifier-stripped dobj.name via which the reference became intuitive
*
* for example:
* - `address: Address` => true
* - `homeAddress: Address` => true
* - `home: Address` => false 🚫
* - `engineerUuid: Engineer` => true
* - `leadEngineerUuid: Engineer` => true
* - `engineerUuids: Engineer` => true
* - `assignedEngineerUuids: Engineer` => true
* - `lead: Engineer` => false 🚫
* - `leadUuid: Engineer` => false 🚫
* - `assignedUuids: Engineer` => false 🚫
* - `leadEngineerUuid: LeadEngineer` => true
* - `headEngineerUuid: LeadEngineer` => true ✔️ // suffixes match -> intuitive, even though not explicit
* - `engineerUuid: LeadEngineer` => true ✔️ // suffixes match -> intuitive, even though not explicit
*/
export declare const isPropertyNameAReferenceIntuitively: ({ propertyName, domainObjectName, }: {
propertyName: string;
domainObjectName: string;
}) => false | {
via: string;
};