Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 492688 | Differences between
and this patch

Collapse All | Expand All

(-)a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js (-62 / +57 lines)
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) {

Return to bug 492688