Skip to main content
Go to Latest
type alias EverythingAsCodeTags
import { type EverythingAsCodeTags } from "https://deno.land/x/fathym_everything_as_code@v0.1.63-integration/src/fluent/EverythingAsCodeTags.ts";

EverythingAsCodeTags<T> is a recursive type that applies tags to all properties of type T.

Parameters:

  • T: The input type to which tags are applied.

This type checks if the input type T is an object (but not a native type like string or number) and applies various tag types:

  • EaCObjectTags: Adds standard tags and details for an object.
  • EaCStandardTags: Handles regular fields and methods.
  • EaCVertexDetailsTags: Handles cases where the object contains EaCVertexDetails.
  • EaCAsCodeTags: Applies specific tagging for EaCDetails structures.

Example:

type Example = {
  Details: {
    "@Methods-handlers": { Compile: () => IoCContainer };
  };
};

type Tagged = EverythingAsCodeTags<Example>;
definition: true extends IsObjectNotNative<T> ? EaCObjectTags<T> : T