import { isFunction } from '@sindresorhus/is'; import { regEx } from '../../util/regex.ts'; import type { VersioningApi, VersioningApiConstructor } from './types.ts'; export const markdownLinkRegex = regEx(/\[[^\]]+\]\([^)]+\)/); export function isVersioningApiConstructor( obj: VersioningApi | VersioningApiConstructor, ): obj is VersioningApiConstructor { return isFunction(obj); } export function getExcludedVersions(range: string): string[] { return range .split(',') .map((v) => v.trim()) .filter((version) => regEx(/^!=/).test(version)) .map((version) => version.replace('!=', '').trim()); } export function getFilteredRange(range: string): string { return range .split(',') .map((v) => v.trim()) .filter((version) => !regEx(/^!=/).test(version)) .join(','); }