// Suffixes export const PROTOC_SUFFIX = { Linux: { i386: 'linux-x86_32', i686: 'linux-x86_32', x86_64: 'linux-x86_64', aarch64: 'linux-aarch_64', }, Darwin: { x86_64: 'osx-x86_64', aarch64: 'osx-aarch_64', }, Windows_NT: { i386: 'win32', i686: 'win32', x86_64: 'win64', }, } export const PDFIUM_SUFFIX = { Linux: { x86_64: { musl: 'linux-musl-x64', glibc: 'linux-x64', }, aarch64: 'linux-arm64', }, Darwin: { x86_64: 'mac-x64', aarch64: 'mac-arm64', }, Windows_NT: { x86_64: 'win-x64', aarch64: 'win-arm64', }, } export const FFMPEG_SUFFFIX = { Darwin: { x86_64: 'x86_64', aarch64: 'arm64', }, Windows_NT: { x86_64: 'x86_64', }, } export const FFMPEG_WORKFLOW = { Darwin: 'ffmpeg-macos.yml', Windows_NT: 'ffmpeg-windows.yml', } export const LIBHEIF_SUFFIX = { Linux: { x86_64: { musl: 'x86_64-linux-musl', glibc: 'x86_64-linux-gnu', }, aarch64: { musl: 'aarch64-linux-musl', glibc: 'aarch64-linux-gnu', }, }, } export const LIBHEIF_WORKFLOW = { Linux: 'libheif-linux.yml', } /** * @param {Record} constants * @param {string[]} identifiers * @returns {string?} */ export function getConst(constants, identifiers) { /** @type {string | Record} */ let constant = constants for (const id of identifiers) { constant = /** @type {string | Record} */ (constant[id]) if (!constant) return null if (typeof constant !== 'object') break } return typeof constant === 'string' ? constant : null } /** * @param {Record} suffixes * @param {string[]} identifiers * @returns {RegExp?} */ export function getSuffix(suffixes, identifiers) { const suffix = getConst(suffixes, identifiers) return suffix ? new RegExp(`${suffix}(\\.[^\\.]+)*$`) : null }