Skip to content

Commit 64161c2

Browse files
committed
fix(index): fix a fatal error; better error handling
1 parent 4cd67d5 commit 64161c2

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

src/index.js

+26-18
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ function getPath(resolvedResource) {
3737
return `${output}${input}`;
3838
}
3939

40+
function handleError(error) {
41+
console.error('Error processing templates', error.message);
42+
console.error('-----------------------');
43+
console.error(error);
44+
console.error('-----------------------');
45+
}
46+
4047
class AureliaWebpackPlugin {
4148
constructor(options = {}) {
4249
options.root = options.root ? path.normalizeSafe(options.root) : path.dirname(module.parent.filename);
@@ -78,29 +85,30 @@ class AureliaWebpackPlugin {
7885

7986
resolveTemplates.processAll(this.options).then(contextElements => {
8087
for (let requireRequestPath of Object.keys(contextElements).reverse()) {
81-
// ensure we have './' at the beginning of the request path
82-
requireRequestPath = path.joinSafe('./', requireRequestPath);
83-
let resource = contextElements[requireRequestPath];
84-
let newDependency = new ContextElementDependency(getPath(resource), requireRequestPath);
85-
if (resource.hasOwnProperty('optional'))
86-
newDependency.optional = !!resource.optional;
87-
else
88-
newDependency.optional = true;
89-
let previouslyAdded = dependencies.findIndex(dependency => dependency.userRequest === requireRequestPath);
90-
if (previouslyAdded > -1) {
91-
dependencies[previouslyAdded] = newDependency;
92-
} else {
93-
dependencies.push(newDependency);
88+
try {
89+
const resource = contextElements[requireRequestPath];
90+
// ensure we have './' at the beginning of the request path
91+
requireRequestPath = path.joinSafe('./', requireRequestPath);
92+
let newDependency = new ContextElementDependency(getPath(resource), requireRequestPath);
93+
if (resource.hasOwnProperty('optional'))
94+
newDependency.optional = !!resource.optional;
95+
else
96+
newDependency.optional = true;
97+
let previouslyAdded = dependencies.findIndex(dependency => dependency.userRequest === requireRequestPath);
98+
if (previouslyAdded > -1) {
99+
dependencies[previouslyAdded] = newDependency;
100+
} else {
101+
dependencies.push(newDependency);
102+
}
103+
} catch (e) {
104+
handleError(e);
94105
}
95106
// TODO: optional filtering of context (things we don't want to require)
96107
}
97108

98109
return callback(null, dependencies);
99-
}, error => {
100-
console.error('Error processing templates', error.message);
101-
console.error('-----------------------');
102-
console.error(error);
103-
console.error('-----------------------');
110+
}, (e) => {
111+
handleError(e);
104112
return callback(error);
105113
});
106114
});

0 commit comments

Comments
 (0)