Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
minify = false,
minifyOptions = {},
juiceOptions = {},
juicePreserveTags = null,
skeleton = defaultSkeleton,
validationLevel = 'soft',
filePath = '.',
mjmlConfigPath = null,
noMigrateWarn = false,
} = options
// if mjmlConfigPath is specified then we need to handle it on each call
if (mjmlConfigPath) handleMjmlConfig(mjmlConfigPath, registerComponent)
if (typeof mjml === 'string') {
mjml = MJMLParser(mjml, {
keepComments,
components,
filePath,
})
}
mjml = handleMjml3(mjml, { noMigrateWarn })
const globalDatas = {
backgroundColor: '',
breakpoint: '480px',
classes: {},
classesDefault: {},
defaultAttributes: {},
fonts,
inlineStyle: [],
inputs.forEach(i => {
try {
let compiled
switch (inputOpt) {
case 'm': // eslint-disable-line no-case-declarations
compiled = { html: migrate(i.mjml, { beautify: true }) }
break
case 'v': // eslint-disable-line no-case-declarations
const mjmlJson = MJMLParser(i.mjml, { components })
compiled = {
errors: validate(mjmlJson, { components, initializeType }),
}
break
default:
compiled = mjml2html(i.mjml, { ...config, filePath: filePath || i.file })
}
convertedStream.push({ ...i, compiled })
} catch (e) {
EXIT_CODE = 2
failedStream.push({ file: i.file, error: e })
}
})
export default function migrate(input, options = {}) {
const { beautify } = options
if (typeof input === 'object') return loopThrough(input)
const mjmlJson = MJMLParser(input, { components, ignoreIncludes: true })
loopThrough(mjmlJson)
return beautify
? htmlBeautify(jsonToXML(mjmlJson), beautifyOptions)
: jsonToXML(mjmlJson)
}
renderMJML(mjml, options = {}) {
if (typeof mjml === 'string') {
mjml = MJMLParser(mjml, {
...options,
components,
ignoreIncludes: true,
})
}
return this.context.processing(mjml, this.context)
}
}