Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Multiple document capable webpack loader, ES6 syntax, js-yaml
yaml loader
+ safeLoad for one doc
+ safeLoadAll for multiple docs
+ does it need yaml parser `onWarning: this.emitWarning`?
+ does it need error handling e.g. `try-catch`?
import yaml from 'js-yaml'
// look for lines starting with new doc
let openingDocPattern = /^---/g
function yamlLoader(source) {
let op
// assume single doc
let loadFn = yaml.safeLoad
// is this a multi-doc yaml?
if (openingDocPattern.test(source)) {
// yes
loadFn = yaml.safeLoadAll
// parse
op = loadFn(source.toString(), {
filename: this.resourcePath,
json: true
// turn into js module text
op = JSON.stringify(op)
op = 'module.exports = ' + op
return op
export default yamlLoader
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.