binaryTargetRegex.ts•589 B
import escapeString from 'escape-string-regexp'
import { binaryTargets } from '../binaryTargets'
/**
 * This regex matches all supported binary target names in a given string.
 *
 * Platform names are sorted by their lengths in descending order to ensure that
 * the longest substring is always matched (e.g., "darwin-arm64" is matched as a
 * whole instead of "darwin" and "arm" separately)
 */
export const binaryTargetRegex = new RegExp(
  '(' +
    [...binaryTargets]
      .sort((a, b) => b.length - a.length)
      .map((p) => escapeString(p))
      .join('|') +
    ')',
  'g',
)