Close #1357 Load json files with require()
authorisaacs <i@izs.me>
Thu, 21 Jul 2011 00:39:23 +0000 (17:39 -0700)
committerisaacs <i@izs.me>
Thu, 21 Jul 2011 00:39:23 +0000 (17:39 -0700)
Signed off by everybody.

lib/module.js
test/simple/test-module-loading.js

index 1c3d4d3..6f32620 100644 (file)
@@ -466,6 +466,13 @@ Module._extensions['.node'] = function(module, filename) {
 };
 
 
+// Native extension for .json
+Module._extensions['.json'] = function (module, filename) {
+  var content = NativeModule.require('fs').readFileSync(filename, 'utf8');
+  module.exports = JSON.parse(content);
+};
+
+
 // bootstrap main module.
 Module.runMain = function() {
   // Load the main module--the command line argument.
index 736a1e2..4d683eb 100644 (file)
@@ -213,6 +213,13 @@ var child = require('../fixtures/module-require/child/');
 assert.equal(child.loaded, parent.loaded);
 
 
+// #1357 Loading JSON files with require()
+var json = require('../fixtures/packages/main/package.json');
+assert.deepEqual(json, { name: 'package-name',
+                         version: '1.2.3',
+                         main: 'package-main-module' });
+
+
 process.addListener('exit', function() {
   assert.ok(common.indirectInstanceOf(a.A, Function));
   assert.equal('A done', a.A());