@viewdo/dxp-story-cli
Version:
README.md
57 lines (50 loc) • 2.59 kB
JavaScript
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;