const path = require('path') const formatErrors = require('./format-errors') module.exports = function stringify (errors, type) { let hasUnknownErr = false const msg = Array.from( new Set( errors.map(err => { const formatError = formatErrors[err.name] if (formatError) { const result = formatError(err) if (result) { if (typeof result === 'string') { hasUnknownErr = true return result } else { if (err.module.resource) { const file = path.relative(process.env.UNI_INPUT_DIR, err.module.resource).split('?')[0] if (file === 'pages.json') { result.line = 1 } return `${result.message} at ${file}:${result.line || 1}` } return `${result.message}` } } else if (result === false) { return '' // skip } } else { hasUnknownErr = true } return err.message }) ) ).filter(msg => !!msg).join('\n') if (type === 'error' && hasUnknownErr) { return { type: 'onErrors', msg } } return msg }