bookiza
Version:
The book reification framework for the web
33 lines (25 loc) • 1.21 kB
JavaScript
import path from 'path'
import fse from 'fs-extra'
import chalk from 'chalk'
import pushStackUp from '../scripts/pushStackUp.js'
import pushStackDown from '../scripts/pushStackDown.js'
import bookLength from '../lib/bookLength.js';
export default function movePage (moveFrom, moveTo) {
if (parseInt(moveTo) > bookLength() || parseInt(moveFrom) > bookLength()) return;
process.stdout.write(chalk.yellow(`Moving page @[ ${chalk.blue(moveFrom)} ] to… : @[ ${chalk.blue(moveTo)} ]`))
fse.move(path.join('__dirname', '..', 'manuscript', `page-${moveFrom}`), path.join('__dirname', '..', 'manuscript', `page-${moveTo}_`))
.then(() => {
if (parseInt(moveFrom) < parseInt(moveTo)) {
pushStackUp(parseInt(moveFrom), parseInt(moveTo), () => {
fse.move(path.join('__dirname', '..', 'manuscript', `page-${moveTo}_`), path.join('__dirname', '..', 'manuscript', `page-${moveTo}`))
})
} else {
pushStackDown(parseInt(moveTo), parseInt(moveFrom) - 1, 0.5, () => {
fse.move(path.join('__dirname', '..', 'manuscript', `page-${moveTo}_`), path.join('__dirname', '..', 'manuscript', `page-${moveTo}`))
})
}
})
.catch(err => {
console.error(err)
})
}