magiclogger - v0.1.0
    Preparing search index...

    Class TagManager

    Manages tags for log entries with optional schema validation.

    Provides comprehensive tag management including:

    • Normalization and validation
    • Schema enforcement for structured tags
    • Tag extraction from text
    • Filtering and matching
    • Usage statistics

    TagManager

    const tagManager = new TagManager({
    maxTags: 20,
    autoNormalize: true
    });

    const tags = tagManager.normalize(['API', 'User Login', 'v2.0']);
    // Result: ['api', 'user-login', 'v2-0']
    import { object, string, number } from 'magiclogger/validation';

    const tagManager = new TagManager({
    schema: object({
    category: string({ enum: ['error', 'warning', 'info'] }),
    severity: number({ min: 1, max: 10 }),
    component: string()
    }),
    schemaValidationMode: 'throw'
    });

    tagManager.add({
    category: 'error',
    severity: 8,
    component: 'auth'
    }); // Validates against schema

    Hierarchy

    • EventEmitter
      • TagManager
    Index

    Constructors

    • Creates a new TagManager instance.

      Parameters

      • options: TagManagerOptions = {}

        Configuration options

      Returns TagManager

    Methods

    • Adds tags with optional schema validation.

      Parameters

      • tags: unknown

        Tags to add

      Returns boolean

      Whether tags were successfully added

    • Add tag alias.

      Parameters

      • alias: string

        Alias tag

      • target: string

        Target tag

      Returns void

    • Get tag with hierarchy.

      Parameters

      • tag: string

        Tag to expand

      • includeParents: boolean = true

        Include parent tags

      • includeChildren: boolean = true

        Include child tags

      Returns string[]

      Expanded tags

    • Extract tags from text.

      Parameters

      • text: string

        Text to extract from

      • options: TagExtractionOptions = {}

        Extraction options

      Returns string[]

      Extracted tags

    • Filter tags based on criteria.

      Parameters

      • tags: string[]

        Tags to filter

      • options: TagFilterOptions

        Filter options

      Returns string[]

      Filtered tags

    • Format tags to string.

      Parameters

      • tags: string[]

        Tags to format

      • Optionalseparator: string

        Separator to use

      Returns string

      Formatted string

    • Get all aliases.

      Returns Map<string, string>

      All aliases

    • Gets all tags (both string and structured).

      Returns { strings: string[]; structured: unknown[] }

      All tags

    • Get tag children.

      Parameters

      • parent: string

        Parent tag

      Returns string[]

      Child tags

    • Get comprehensive tag statistics.

      Returns TagStats

      Tag statistics

    • Get tag parents.

      Parameters

      • child: string

        Child tag

      Returns string[]

      Parent tags

    • Get tag statistics.

      Parameters

      • Optionallimit: number

        Limit results

      Returns [string, number][]

      Tag counts

    • Check if tags match criteria.

      Parameters

      • tags: string[]

        Tags to check

      • criteria: TagMatchCriteria

        Match criteria

      Returns boolean

      Whether tags match

    • Merge multiple tag arrays.

      Parameters

      • ...tagArrays: (undefined | string[])[]

        Tag arrays to merge

      Returns string[]

      Merged tags

    • Normalize tags according to rules.

      Parameters

      • tags: string | string[]

        Tags to normalize

      Returns string[]

      Normalized tags

    • Parse tags from string.

      Parameters

      • text: string

        Text to parse

      • Optionalseparator: string

        Separator to use

      Returns string[]

      Parsed tags

    • Remove tag alias.

      Parameters

      • alias: string

        Alias to remove

      Returns void

    • Set tag hierarchy.

      Parameters

      • parent: string

        Parent tag

      • children: string[]

        Child tags

      Returns void

    • Set normalization rules.

      Parameters

      • rules: TagNormalizationRules

        Normalization rules

      Returns void

    • Sets a schema for structured tag validation.

      Parameters

      • schema: AnySchema

        Schema definition for tags

      • Optionalmode: "warn" | "silent" | "throw"

        Validation mode

      Returns void

      import { object, string, number, array } from 'magiclogger/validation';

      tagManager.setSchema(
      object({
      category: string({ enum: ['bug', 'feature', 'docs'] }),
      priority: number({ min: 1, max: 5 }),
      labels: array(string())
      }),
      'throw'
      );
    • Set validation rules.

      Parameters

      • rules: TagValidationRules

        Validation rules

      Returns void

    • Get suggested tags based on partial input.

      Parameters

      • partial: string

        Partial tag

      • Optionallimit: number = 10

        Maximum suggestions

      Returns string[]

      Suggested tags

    • Update tag statistics.

      Parameters

      • tags: string[]

        Tags to count

      Returns void

    • Validate tags against rules.

      Parameters

      • tags: string | string[]

        Tags to validate

      Returns TagValidationResult

      Validation result