diff --git a/components/download-file-button/download-file-button.html.js b/components/download-file-button/download-file-button.html.js index fcfe09f..a59659f 100644 --- a/components/download-file-button/download-file-button.html.js +++ b/components/download-file-button/download-file-button.html.js @@ -1,33 +1,33 @@ const Component = require('../component.class'); const fs = require('fs'); const util = require('util'); const path = require('path'); const readFile = util.promisify(fs.readFile); class DownloadFileButton extends Component { async renderFn(s, { text }) { - // eslint-disable indent + /* eslint-disable indent */ return /* HTML */ ` <a href="${await s.addOutputFile({ - relative_path: '/assets/images/', - base_name: 'example-file.png', - generator: async function() { - return await readFile( - path.resolve(__dirname, './example-file.png') - ); - }, - deps: [], - })}" + relative_path: '/assets/images/', + base_name: 'example-file.png', + generator: async function() { + return await readFile( + path.resolve(__dirname, './example-file.png') + ); + }, + deps: [], + })}" >${text}</a > `; - // eslint-enable indent + /* eslint-enable indent */ } static propsControls() { return { text: 'text' }; } } module.exports = DownloadFileButton; diff --git a/get-app.js b/get-app.js index 178219e..79bc010 100644 --- a/get-app.js +++ b/get-app.js @@ -1,89 +1,85 @@ const Sealious = require('sealious'); const components_map = require('./components/index'); const S = require('./lib/s'); const path = require('path'); const fs = require('fs'); const uuidv4 = require('uuid/v4'); const util = require('util'); const writeFile = util.promisify(fs.writeFile); const exists = util.promisify(fs.access); const mkdir = util.promisify(fs.mkdir); const fieldTypes = { slug: require('./field-types/slug'), arrayOfObject: require('./field-types/array-of-objects'), }; const manifest = { name: 'What Seal Do?', logo: './image.svg', version: '1.0', default_language: 'pl', base_url: 'http://localhost:8080', admin_email: 'sealpage_devs@sealcode.org', }; -async function renderPreview(uuid, elements, config) { +async function renderPreview(uuid, elements) { let html = ''; + let temporary_path = `/tmp/sealpage_bundle/${uuid}`; try { await exists('/tmp/sealpage_bundle'); } catch (error) { await mkdir('/tmp/sealpage_bundle'); } try { - await exists(`/tmp/sealpage_bundle/${uuid}`); + await exists(temporary_path); } catch (error) { - await mkdir(`/tmp/sealpage_bundle/${uuid}`); + await mkdir(temporary_path); } - let output_dir = path.resolve(`/tmp/sealpage_bundle/${uuid}`); + let output_dir = path.resolve(temporary_path); const component_instances = {}; const s = new S({ output_dir }); - console.log(config); - - // creating instances - + // creating componentsinstances for (const component_name in components_map) { component_instances[component_name] = new components_map[ component_name ](s); } // render preview using component instances - for (const [componentName, componentProps] of elements) { html += await component_instances[componentName].render(componentProps); } await writeFile(`${output_dir}/index.html`, html); return `/previews/${uuid}/index.html?${uuidv4()}`; - // return html; } module.exports = config => { const app = new Sealious.App(config, manifest); for (const type in fieldTypes) { fieldTypes[type](app); } app.WwwServer.static_route( '/tmp/sealpage_bundle', // system path '/previews' // url ); app.WwwServer.custom_route( 'POST', '/api/v1/render', async (app, context, { uuid, body }) => { - return renderPreview(uuid.replace(/(\.|\/)/g, '-'), body, config); + return renderPreview(uuid.replace(/(\.|\/)/g, '-'), body); } ); return app; }; diff --git a/lib/render-site.js b/lib/render-site.js index e55a46d..d4ad34c 100644 --- a/lib/render-site.js +++ b/lib/render-site.js @@ -1,37 +1,39 @@ const bluebird = require('bluebird'); const colors = require('colors'); const fs = require('fs'); const path = require('path'); const util = require('util'); const exists = util.promisify(fs.exists); const mkdir = util.promisify(fs.mkdir); const writeFile = util.promisify(fs.writeFile); async function renderPage(page_content, file_path) { const dir = path.resolve(file_path, '..'); if (!(await exists(dir))) { await mkdir(dir, { recursive: true }); } await writeFile(file_path, page_content); console.log('rendered'.gray, file_path.green); } async function renderSite(site_description, directory) { await bluebird.map(Object.keys(site_description), async page_name => { if (!(site_description[page_name] instanceof Function)) { throw new Error('expected a function'); } const result = await site_description[page_name](); + /* eslint-disable indent */ typeof result === 'string' ? await renderPage( - result, - path.resolve(directory, `./${page_name}.html`) + result, + path.resolve(directory, `./${page_name}.html`) ) : await renderSite(result, path.resolve(directory, page_name)); + /* eslint-enable indent */ }); } module.exports = renderSite;