UNPKG

@viewdo/dxp-story-cli

Version:
57 lines (50 loc) 2.59 kB
const IndexJsWriter = require('../common/index.js.js.js'); const SettingsJsWriter = require('../common/_settings.js.js.js'); const { state: state_file_names } = require('../_utilities/file-names'); const StateTemplates = require('../common/state-templates'); const EventFolderWriter = require('../_utilities/event-folder-writer'); const HtmlWriter = require('../_utilities/html-writer'); class InputStateFileCreator { constructor(_console = console) { Object.assign(this, { index_js_writer: new IndexJsWriter(_console), settings_js_writer: new SettingsJsWriter(__dirname, _console), input_state_file_names: state_file_names.input, state_templates_writer: new StateTemplates(_console), event_folder_writer: new EventFolderWriter(_console), html_writer: new HtmlWriter(_console) }); } create(state, state_path, state_events_path, state_templates_path) { const { index_js_writer, html_writer, settings_js_writer, state_templates_writer, input_state_file_names, event_folder_writer } = this; const { form = {} } = state; const { submit = {} } = form; const { beforeHtml = {}, afterHtml = {} } = submit; html_writer.write(submit, `${state_templates_path}/${input_state_file_names.submit_label()}`); html_writer.write(beforeHtml, `${state_templates_path}/${input_state_file_names.submit_before()}`); html_writer.write(afterHtml, `${state_templates_path}/${input_state_file_names.submit_after()}`); const submit_variables = { label: "submitButtonLabelHtml", after: "submtAfterHTML", before: "submtBeforeHTML", }; const state_template_data = Object.assign({}, state, { submit_variables, submit_imports: [{ variable: submit_variables.after, file_path: `./templates/${input_state_file_names.submit_after()}` }, { variable: submit_variables.before, file_path: `./templates/${input_state_file_names.submit_before()}` }, { variable: submit_variables.label, file_path: `./templates/${input_state_file_names.submit_label()}` }] }); index_js_writer.write(state_path); event_folder_writer.write(state, state_events_path); state_templates_writer.write(state, state_templates_path); settings_js_writer.write(state_template_data, state_path); } } module.exports = InputStateFileCreator;