From 736715abaa7a0d590525a0205557afbc2ffea422 Mon Sep 17 00:00:00 2001 From: KMcB Date: Thu, 5 Apr 2018 16:28:59 +0200 Subject: [PATCH 1/3] handle mjmlconfig --- packages/mjml/src/index.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/mjml/src/index.js b/packages/mjml/src/index.js index e89147968..b630af1f1 100644 --- a/packages/mjml/src/index.js +++ b/packages/mjml/src/index.js @@ -1,3 +1,6 @@ +import path from 'path' +import fs from 'fs' + import mjml2html, { registerComponent } from 'mjml-core' import { registerDependencies } from 'mjml-validator' @@ -46,4 +49,18 @@ registerComponent(CarouselImage) registerDependencies(require('./dependencies')) + +try { + const mjmlConfig = fs.readFileSync(path.join(process.cwd(), '.mjmlconfig')); + const custom_comps = JSON.parse(mjmlConfig).packages + + custom_comps.forEach((compPath) => { + registerComponent(require(path.join(process.cwd(), compPath))); + }) +} catch(e) { + if (e.code !== 'ENOENT') { + console.log('Error when registering custom components : ', e) + } +} + export default mjml2html From 2557b25db945bc3f1ad55eb6ec7ad0a16cb237f2 Mon Sep 17 00:00:00 2001 From: KMcB Date: Thu, 5 Apr 2018 16:56:15 +0200 Subject: [PATCH 2/3] handle default exports --- packages/mjml/src/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mjml/src/index.js b/packages/mjml/src/index.js index b630af1f1..da4441d54 100644 --- a/packages/mjml/src/index.js +++ b/packages/mjml/src/index.js @@ -55,7 +55,8 @@ try { const custom_comps = JSON.parse(mjmlConfig).packages custom_comps.forEach((compPath) => { - registerComponent(require(path.join(process.cwd(), compPath))); + const requiredComp = require(path.join(process.cwd(), compPath)) + registerComponent(requiredComp.default || requiredComp) }) } catch(e) { if (e.code !== 'ENOENT') { From 7c77d44309c38d425b9a53e1c8518c676f79b971 Mon Sep 17 00:00:00 2001 From: KMcB Date: Mon, 16 Apr 2018 15:29:28 +0200 Subject: [PATCH 3/3] move mjmlconfig handling to core --- packages/mjml-core/src/index.js | 16 ++++++++++++++++ packages/mjml/src/index.js | 18 ------------------ 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/packages/mjml-core/src/index.js b/packages/mjml-core/src/index.js index aebdfd537..36ac07ef9 100644 --- a/packages/mjml-core/src/index.js +++ b/packages/mjml-core/src/index.js @@ -1,5 +1,6 @@ import { find, get, identity, map, omit, reduce } from 'lodash' import path from 'path' +import fs from 'fs' import juice from 'juice' import { html as htmlBeautify } from 'js-beautify' import { minify as htmlMinify } from 'html-minifier' @@ -253,6 +254,21 @@ export default function mjml2html(mjml, options = {}) { } } +// register components from mjmlconfig +try { + const mjmlConfig = fs.readFileSync(path.join(process.cwd(), '.mjmlconfig')) + const customComps = JSON.parse(mjmlConfig).packages + + customComps.forEach(compPath => { + const requiredComp = require(path.join(process.cwd(), compPath)) + registerComponent(requiredComp.default || requiredComp) + }) +} catch (e) { + if (e.code !== 'ENOENT') { + console.log('Error when registering custom components : ', e) + } +} + export { components, initComponent, registerComponent } export { BodyComponent, HeadComponent } from './createComponent' diff --git a/packages/mjml/src/index.js b/packages/mjml/src/index.js index da4441d54..e89147968 100644 --- a/packages/mjml/src/index.js +++ b/packages/mjml/src/index.js @@ -1,6 +1,3 @@ -import path from 'path' -import fs from 'fs' - import mjml2html, { registerComponent } from 'mjml-core' import { registerDependencies } from 'mjml-validator' @@ -49,19 +46,4 @@ registerComponent(CarouselImage) registerDependencies(require('./dependencies')) - -try { - const mjmlConfig = fs.readFileSync(path.join(process.cwd(), '.mjmlconfig')); - const custom_comps = JSON.parse(mjmlConfig).packages - - custom_comps.forEach((compPath) => { - const requiredComp = require(path.join(process.cwd(), compPath)) - registerComponent(requiredComp.default || requiredComp) - }) -} catch(e) { - if (e.code !== 'ENOENT') { - console.log('Error when registering custom components : ', e) - } -} - export default mjml2html