UNPKG

@ctrl/video-filename-parser

Version:
18 lines (17 loc) 869 B
import { parseAudioChannels } from '../audioChannels.js'; import { parseAudioCodec } from '../audioCodec.js'; import { parseResolution } from '../resolution.js'; import { parseVideoCodec } from '../videoCodec.js'; const titleBoundaryParsers = [ { name: 'resolution', parse: title => parseResolution(title).source }, { name: 'audio-codec', parse: title => parseAudioCodec(title).source }, { name: 'audio-channels', parse: title => parseAudioChannels(title).source }, { name: 'video-codec', parse: title => parseVideoCodec(title).source }, ]; export function getFirstTitleBoundaryPosition(title) { const positions = titleBoundaryParsers .map(({ parse }) => parse(title)) .map(source => (source ? title.indexOf(source) : -1)) .filter(position => position > 0); return positions.length > 0 ? Math.min(...positions) : null; }