'use strict' const ExtendableError = require('es6-error') class SourceError extends ExtendableError { constructor (message, source, parent) { super(`${source}: ${message}`) this.source = source this.parent = parent || null } } exports.SourceError = SourceError class NoSourceFileError extends SourceError { constructor (source) { super('No such file', source) } } exports.NoSourceFileError = NoSourceFileError class ParseError extends SourceError { constructor (source, parent) { super(`Error while parsing — ${parent.message}`, source, parent) } } exports.ParseError = ParseError class InvalidFileError extends SourceError { constructor (source) { super('Not a proper configuration file', source) } } exports.InvalidFileError = InvalidFileError class ExtendsError extends SourceError { constructor (source, clause, parent) { super(`Couldn't resolve extends clause: ${clause}`, source, parent) this.clause = clause } } exports.ExtendsError = ExtendsError class BadDependencyError extends SourceError { constructor (source, parent) { super("Couldn't resolve dependency", source, parent) } } exports.BadDependencyError = BadDependencyError