ass-compiler
Version:
Parses and compiles ASS subtitle format to easy-to-use data structure.
26 lines (24 loc) • 737 B
JavaScript
import { parse } from '../parser/index.js';
import { compileDialogues } from './dialogues.js';
import { compileStyles } from './styles.js';
export function compile(text, options = {}) {
const tree = parse(text);
const info = Object.assign(options.defaultInfo || {}, tree.info);
const styles = compileStyles({
info,
style: tree.styles.style,
defaultStyle: options.defaultStyle || {},
});
return {
info,
width: info.PlayResX * 1 || null,
height: info.PlayResY * 1 || null,
wrapStyle: /^[0-3]$/.test(info.WrapStyle) ? info.WrapStyle * 1 : 2,
collisions: info.Collisions || 'Normal',
styles,
dialogues: compileDialogues({
styles,
dialogues: tree.events.dialogue,
}),
};
}