Skip to content

⬅️ Back to Table of Contents

📄 interpolate

📊 Analysis Summary

Metric Count
🔧 Functions 2
📦 Imports 1

📚 Table of Contents

🛠️ File Location:

📂 packages/rule-tester/src/utils/interpolate.ts

📦 Imports

Name Source
ReportDescriptorMessageData @typescript-eslint/utils/ts-eslint

Functions

getPlaceholderMatcher(): RegExp

Returns a global expression matching placeholders in messages.

Raw JSDoc
/**
 * Returns a global expression matching placeholders in messages.
 */
Code
export function getPlaceholderMatcher(): RegExp {
  return /\{\{([^{}]+)\}\}/gu;
}

interpolate(text: string, data: ReportDescriptorMessageData | undefined): string

Parameters:

  • text string
  • data ReportDescriptorMessageData | undefined

Returns: string

Calls:

  • getPlaceholderMatcher
  • text.replace
  • termWithWhitespace.trim
  • String

Internal Comments:

// Substitution content for any {{ }} markers.
// Preserve old behavior: If parameter name not provided, don't replace it.

Code
export function interpolate(
  text: string,
  data: ReportDescriptorMessageData | undefined,
): string {
  if (!data) {
    return text;
  }

  const matcher = getPlaceholderMatcher();

  // Substitution content for any {{ }} markers.
  return text.replace(matcher, (fullMatch, termWithWhitespace: string) => {
    const term = termWithWhitespace.trim();

    if (term in data) {
      return String(data[term]);
    }

    // Preserve old behavior: If parameter name not provided, don't replace it.
    return fullMatch;
  });
}

Generated by Syntax Scribe