@metreeca/blue - v0.12.0
    Preparing search index...

    Type Alias Model<S, T>

    Model: { inferred from <S, T> }

    Resolves the models for retrieving a resource.

    Resolves to the templates a retrieval against the shape may use, so that a template naming members the shape doesn't declare, or requesting a member in a form its range doesn't support, fails to compile instead of failing in the store. Any member of the shape, declared or inherited, may be requested as:

    • atomic — {}, for any member
    • template — a nested template, checked against the shape of the linked or embedded resource
    • locale — a language-range map, for ranges admitting localised text
    • union — a branch map, for ranges mixing kinds of value, each branch in any form above except a locale
    • query — any form above, or a projection, merged with collection criteria, for multi-valued members

    Only forms are checked: filter, ordering and projection expressions are not validated against the shape. Since keys are compared structurally, a template mixing unknown members with known ones is accepted, unless the template is passed as T: a bound stated as T extends Model<S, T> rejects it. Every model is a Template, so stores can read it as one regardless of its shape.

    Type Parameters

    • S extends Lazy<ResourceShape>

      The resource shape, possibly deferred to break definition cycles

    • T = never

      The supplied template, typically inferred from the argument, with members the shape doesn't declare rejected; omit it to accept any template naming only members of the shape