UNPKG

scratch-sb1-converter

Version:

Scratch 1 (.sb) to Scratch 2 (.sb2) conversion library for Scratch 3.0

40 lines (32 loc) 836 B
import {Reference} from './fields'; class ReferenceFixer { constructor (table) { this.table = Array.from(table); this.fixed = this.fix(this.table); } fix () { const fixed = []; for (let i = 0; i < this.table.length; i++) { this.fixItem(this.table[i]); fixed.push(this.table[i]); } return fixed; } fixItem (item) { if (typeof item.fields !== 'undefined') { item = item.fields; } if (Array.isArray(item)) { for (let i = 0; i < item.length; i++) { item[i] = this.deref(item[i]); } } } deref (ref) { if (ref instanceof Reference) { return this.table[ref.index - 1]; } return ref; } } export {ReferenceFixer};