UNPKG

@viewdo/dxp-story-cli

Version:
57 lines (49 loc) 2.21 kB
const path = require('path'); const fs = require('fs'); const TemplateWriter = require('../../_utilities/template-writer'); const camelCase = require('lodash/camelCase'); const isEmpty = require('lodash/isEmpty'); const { state: state_file_names, common: common_file_names } = require('../../_utilities/file-names'); const IndexJsWriter = require('../../common/index.js.js'); const SettingsJsWriter = require('../../common/_settings.js.js'); class TracksFolder { constructor(_console = console) { Object.assign(this, { path, fs, vidoe_state_file_names: state_file_names.video, common_file_names, camelCase, isEmpty, index_js_writer: new IndexJsWriter(_console), vtt_file_writer: new TemplateWriter(`${__dirname}/vtt-file.ejs`, _console), track_file_writer: new TemplateWriter(`${__dirname}/_track.ejs`, _console), settings_writer: new SettingsJsWriter(__dirname, _console) }); } create(tracks = [], track_path) { const { index_js_writer, settings_writer, common_file_names, vtt_file_writer, camelCase, track_file_writer, vidoe_state_file_names } = this; if (!isEmpty(tracks)) { const track_import_variables = tracks.map((track) => { const { id } = track; const cue_file_name = vidoe_state_file_names.cues(id); const track_file_name = vidoe_state_file_names.track(id); const variable = camelCase(id); const track_template_data = Object.assign({}, { track, cue_file_name }) vtt_file_writer.write(track, `${track_path}/${cue_file_name}`); track_file_writer.write(track_template_data, `${track_path}/${track_file_name}`); return { data: track, file_path: `./${track_file_name}`, variable } }); settings_writer.write(track_import_variables, track_path); index_js_writer.write(track_path); } } } module.exports = TracksFolder;