normalize
Directive name normalization and processing utilities.
This module consolidates utilities for handling directive names from multiple sources (CLI, config file, etc.) ensuring consistent normalization across the application.
combineDirectiveNames()
function combineDirectiveNames(...sources): DirectiveName[];
Defined in: directives/normalize.ts:92
Combines and deduplicates directive names from multiple sources in one step.
This is a convenience function that combines normalizeDirectiveNames with uniqueDirectiveNames for the common case where you need both normalization and deduplication.
Parameters
sources
...Maybe<DirectiveName[]>[]
Multiple arrays of directive names or undefined/null values
Returns
DirectiveName[]
A single array of deduplicated directive names
Example
import { combineDirectiveNames } from "@graphql-markdown/core/directives/normalize";
const cliDirectives = ["@example", "@internal"];
const configDirectives = ["@auth", "@example"]; // @example is duplicate
const all = combineDirectiveNames(cliDirectives, configDirectives);
// Result: ["@example", "@internal", "@auth"]
normalizeDirectiveNames()
function normalizeDirectiveNames(...sources): DirectiveName[];
Defined in: directives/normalize.ts:42
Normalizes directive names from multiple sources into a single flattened array.
This function:
- Accepts multiple directive name arrays from different sources
- Filters out null/undefined values and empty arrays
- Flattens them into a single array
- Returns the normalized array (may contain duplicates if sources contain duplicates)
Useful when combining directives from CLI, config file, and environment sources.
Parameters
sources
...Maybe<DirectiveName[]>[]
Multiple arrays of directive names or undefined/null values
Returns
DirectiveName[]
A single array of normalized directive names (may contain duplicates)
Example
import { normalizeDirectiveNames } from "@graphql-markdown/core/directives/normalize";
const cliDirectives = ["@example", "@internal"];
const configDirectives = ["@auth"];
const all = normalizeDirectiveNames(cliDirectives, configDirectives);
// Result: ["@example", "@internal", "@auth"]
// Safely handles undefined:
const safe = normalizeDirectiveNames(
cliDirectives,
undefined,
configDirectives,
);
// Result: ["@example", "@internal", "@auth"]
uniqueDirectiveNames()
function uniqueDirectiveNames(directives): DirectiveName[];
Defined in: directives/normalize.ts:65
Removes duplicate directive names from an array while preserving order.
Parameters
directives
DirectiveName[]
Array of directive names that may contain duplicates
Returns
DirectiveName[]
A new array with duplicate directive names removed
Example
import { uniqueDirectiveNames } from "@graphql-markdown/core/directives/normalize";
const directives = ["@auth", "@example", "@auth", "@internal"];
const unique = uniqueDirectiveNames(directives);
// Result: ["@auth", "@example", "@internal"]