Lime Web Components API Documentation - v6.24.0
    Preparing search index...

    Function definePrimitive

    • Alpha

      Identity helper for declaring a primitive. Returns its argument unchanged.

      The helper exists so TypeScript can infer TArgs from the annotation on build's parameter, and TReads from the reads tuple. Without it, the args shape must either be repeated as a variable type annotation, or TArgs falls back to its unknown default, discarding the args type at every downstream call site.

      Does not validate the id namespace, that check happens at runtime inside RuleRegistry.register.

      Type Parameters

      Parameters

      Returns RulePrimitive<TArgs, TReads>

      The same primitive, unchanged.

      The args shape lives only on build's parameter. TypeScript infers TArgs = OlderThanArgs and TReads = 'limeobject', so scope.get('user') inside build would be a compile error.

      type OlderThanArgs = { days: number };

      const olderThan = definePrimitive({
      id: 'limetech.older-than',
      reads: ['limeobject'],
      build: ({ days }: OlderThanArgs) => (scope) =>
      scope.get('limeobject') !== undefined && days > 0,
      });