|
Lines 248-319
define([
Link Here
|
| 248 |
// only load modules |
248 |
// only load modules |
| 249 |
if (!/^[\.]+/.test(_l)) { |
249 |
if (!/^[\.]+/.test(_l)) { |
| 250 |
//do node_modules read |
250 |
//do node_modules read |
| 251 |
var project = jsProject.getProjectPath(); |
251 |
var path = request.args.file.file; |
| 252 |
if(project) { |
252 |
var index = path.lastIndexOf('/'); |
| 253 |
return fileClient.read(project+"node_modules/"+_l+"/package.json", false, false, {readIfExists: true}).then(function(json) { |
253 |
var nodeFolderPath = path.substr(0, index + 1) +"node_modules/"+_l+"/"; // include the trailing / in the folder path |
| 254 |
if(json) { |
254 |
return fileClient.read(nodeFolderPath+ "package.json", false, false, {readIfExists: true}).then(function(json) { |
| 255 |
var val = JSON.parse(json); |
255 |
if(json) { |
| 256 |
var mainPath = null; |
256 |
var val = JSON.parse(json); |
| 257 |
var main = val.main; |
257 |
var mainPath = null; |
| 258 |
if (main) { |
258 |
var main = val.main; |
| 259 |
if (!/(\.js)$/.test(main)) { |
259 |
if (main) { |
| 260 |
main += ".js"; |
260 |
if (!/(\.js)$/.test(main)) { |
| 261 |
} |
261 |
main += ".js"; |
| 262 |
mainPath = project + "node_modules/" + _l + "/" + main; |
|
|
| 263 |
} else { |
| 264 |
main = "index.js"; |
| 265 |
mainPath = project + "node_modules/" + _l + "/index.js"; |
| 266 |
} |
262 |
} |
| 267 |
return fileClient.read(mainPath).then(function(contents) { |
263 |
} else { |
| 268 |
response.args.contents = contents; |
264 |
main = "index.js"; |
| 269 |
response.args.file = mainPath; |
265 |
} |
| 270 |
response.args.path = main; |
266 |
mainPath = nodeFolderPath + main; |
| 271 |
ternWorker.postMessage(response); |
267 |
return fileClient.read(mainPath).then(function(contents) { |
| 272 |
}, |
268 |
response.args.contents = contents; |
| 273 |
function(err) { |
269 |
response.args.file = mainPath; |
| 274 |
response.args.error = "Failed to read node_modules folder"; |
270 |
response.args.path = main; |
| 275 |
response.args.message = err.toString(); |
271 |
ternWorker.postMessage(response); |
| 276 |
ternWorker.postMessage(response); |
272 |
}, |
| 277 |
}); |
273 |
function(err) { |
| 278 |
} |
274 |
response.args.error = "Failed to read node_modules folder"; |
| 279 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
275 |
response.args.message = err.toString(); |
| 280 |
response.args.message = "No file contents"; |
276 |
ternWorker.postMessage(response); |
| 281 |
ternWorker.postMessage(response); |
277 |
}); |
| 282 |
}, |
278 |
} |
| 283 |
function(err) { |
279 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
| 284 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
280 |
response.args.message = "No file contents"; |
| 285 |
response.args.message = err.toString(); |
281 |
ternWorker.postMessage(response); |
| 286 |
ternWorker.postMessage(response); |
282 |
}, |
| 287 |
}); |
283 |
function(err) { |
| 288 |
} |
|
|
| 289 |
//don't search for now |
| 290 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
| 291 |
ternWorker.postMessage(response); |
| 292 |
} else { |
| 293 |
// try to get the current folder from request.args.file.file |
| 294 |
var currentFile = request.args.file.file; |
| 295 |
if (currentFile) { |
| 296 |
var lastIndex = currentFile.lastIndexOf('/'); |
| 297 |
var filePath = currentFile.substring(0, lastIndex + 1) + _l; |
| 298 |
if (!/\.js|\.json$/ig.test(_l)) { |
| 299 |
filePath += ".js"; |
| 300 |
} |
| 301 |
return fileClient.read(filePath).then(function(contents) { |
| 302 |
response.args.contents = contents; |
| 303 |
response.args.file = filePath; |
| 304 |
response.args.path = _l; |
| 305 |
ternWorker.postMessage(response); |
| 306 |
}, |
| 307 |
function(err) { |
| 308 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], filePath); |
| 309 |
response.args.message = err.toString(); |
| 310 |
ternWorker.postMessage(response); |
| 311 |
}); |
| 312 |
} else { |
| 313 |
// could be a require('./....'); inside a module code |
| 314 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
284 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
|
|
285 |
response.args.message = err.toString(); |
| 315 |
ternWorker.postMessage(response); |
286 |
ternWorker.postMessage(response); |
|
|
287 |
}); |
| 288 |
} |
| 289 |
// try to get the current folder from request.args.file.file |
| 290 |
var currentFile = request.args.file.file; |
| 291 |
if (currentFile) { |
| 292 |
var lastIndex = currentFile.lastIndexOf('/'); |
| 293 |
var filePath = currentFile.substring(0, lastIndex + 1) + _l; |
| 294 |
if (!/\.js|\.json$/ig.test(_l)) { |
| 295 |
filePath += ".js"; |
| 316 |
} |
296 |
} |
|
|
297 |
return fileClient.read(filePath).then(function(contents) { |
| 298 |
response.args.contents = contents; |
| 299 |
response.args.file = filePath; |
| 300 |
response.args.path = _l; |
| 301 |
ternWorker.postMessage(response); |
| 302 |
}, |
| 303 |
function(err) { |
| 304 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], filePath); |
| 305 |
response.args.message = err.toString(); |
| 306 |
ternWorker.postMessage(response); |
| 307 |
}); |
| 308 |
} else { |
| 309 |
// could be a require('./....'); inside a module code |
| 310 |
response.args.error = i18nUtil.formatMessage(javascriptMessages['failedToReadFile'], _l); |
| 311 |
ternWorker.postMessage(response); |
| 317 |
} |
312 |
} |
| 318 |
} else { |
313 |
} else { |
| 319 |
scriptresolver.getWorkspaceFile(_l).then(function(files) { |
314 |
scriptresolver.getWorkspaceFile(_l).then(function(files) { |