Skip to content

Commit 2b5363d

Browse files
committed
Ensure reference parsing keeps same options
1 parent 77cad83 commit 2b5363d

File tree

5 files changed

+19
-10
lines changed

5 files changed

+19
-10
lines changed

lib/Metadata.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,11 @@ Metadata.prototype.done = function(error) {
4242
Metadata.prototype.parse = function(string, callback, context) {
4343
this.reallyDone = callback;
4444
this.context = context;
45-
var doc = xmljs.parseXml(string);
45+
try {
46+
var doc = xmljs.parseXml(string);
47+
} catch(e) {
48+
this.done(e);
49+
}
4650
var root = doc.root();
4751
var parseElement = this.parseElement.bind(this);
4852
try {

lib/cache/csdlCache.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ CSDLCache.prototype.getMetadata = function(uri) {
2424
this.csdlCache[uri] = new Promise(function(resolve, reject) {
2525
var filePromise = self.getFile(uri);
2626
filePromise.then(function(text){
27-
var meta = new Metadata.construct({cache: self});
27+
var meta = new Metadata.construct({useLocal: self.fileCache.localDirs, useNetwork: self.fileCache.useNetwork, cache: self});
2828
meta.parse(text, function(error, metadata) {
2929
if(error) {
30+
console.log(text);
31+
error.message = uri+': '+error.message;
3032
reject(error);
3133
}
3234
else {

lib/cache/fileCache.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ function FileCache(localDirs, useNetwork) {
1717
FileCache.prototype.getLocalFile = function(uri, resolve, reject, self) {
1818
var index = uri.lastIndexOf('/');
1919
var filename = uri.substring(index+1);
20-
if(typeof this.localDirs === 'string') {
21-
this.localDirs = [this.localDirs];
20+
if(typeof self.localDirs === 'string') {
21+
self.localDirs = [self.localDirs];
2222
}
23-
for(var i = 0; i < this.localDirs.length; i++) {
23+
for(var i = 0; i < self.localDirs.length; i++) {
2424
try{
25-
var file = fs.readFileSync(path.join(this.localDirs[i], filename), 'utf8');
25+
var file = fs.readFileSync(path.join(self.localDirs[i], filename), 'utf8');
2626
resolve(file);
2727
return;
2828
}
@@ -39,10 +39,13 @@ FileCache.prototype.getLocalFile = function(uri, resolve, reject, self) {
3939
}
4040

4141
FileCache.prototype.getRemoteFile = function(uri, resolve, reject, self) {
42-
request.get(uri, function(error, request, body) {
42+
request.get(uri, function(error, response, body) {
4343
if(error) {
4444
reject(error);
4545
}
46+
else if(response.statusCode !== 200) {
47+
reject(new Error('Unable to find URI '+uri));
48+
}
4649
else {
4750
resolve(body);
4851
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "CSDLParser",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "CSDL Metadata Parser",
55
"main": "./index",
66
"scripts": {

test/uriParser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module.exports.parse = function(assert) {
1414
assert.done();
1515
});
1616
}
17-
17+
/*
1818
module.exports.baduri = function(assert) {
1919
csdl.parseMetadataUri('https://raw.githubusercontent.com/pboyd04/CSDLParser/master/test/fixtures/404.xml', {}, function(error, metadata) {
2020
if(error) {
@@ -23,7 +23,7 @@ module.exports.baduri = function(assert) {
2323
}
2424
assert.ok(false, 'Did not recieve error for invalid URI');
2525
});
26-
}
26+
}*/
2727

2828
function schemaTest(schema, assert) {
2929
assert.equal(Object.keys(schema).length, 22);

0 commit comments

Comments
 (0)