From 7b309dba16867428ae213ffda252a32e799bd103 Mon Sep 17 00:00:00 2001 From: MrVoltz Date: Wed, 18 Nov 2015 15:50:52 +0100 Subject: [PATCH] Allow loading json using require() --- src/main/js/lib/require.js | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/js/lib/require.js b/src/main/js/lib/require.js index 4090e1d..0a5d5a4 100644 --- a/src/main/js/lib/require.js +++ b/src/main/js/lib/require.js @@ -165,18 +165,12 @@ When resolving module names to file paths, ScriptCraft uses the following rules. if ( file.exists() ) { return fileExists(file); } else { - // try appending a .js to the end - pathWithJSExt = file.canonicalPath + '.js'; - file = new File( parentDir, pathWithJSExt ); - if (file.exists()) { - return file; - } else { - file = new File(pathWithJSExt); - if ( file.exists() ) { - return file; - } - } - + if ((file = new File(parentDir, moduleName)).exists()) { + return fileExists(file); + } else if ((file = new File(parentDir, moduleName + ".js")).exists()) { // try .js extension + return file; + } else if ((file = new File(parentDir, moduleName + ".json")).exists()) { // try .json extension + return file; } } return null; @@ -250,6 +244,9 @@ When resolving module names to file paths, ScriptCraft uses the following rules. } buffered.close(); // close the stream so there's no file locks + if(canonizedFilename.substring(canonizedFilename.length - 5) === ".json") // patch code when it is json + code = "module.exports = (" + code + ");"; + moduleInfo = { loaded: false, id: canonizedFilename,