| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 'use strict';
- var fs = require('fs');
- function safeRequire (path) {
- var resolved;
- try {
- resolved = require(path);
- } catch (e) {
- console.error("Could not require: " + path, e);
- }
- return resolved;
- }
- function safeLoadFile(path) {
-
- var resolved;
- try {
- resolved = JSON.parse(fs.readFileSync(path, 'utf8'));
- //console.log('content = ' , resolved);
- } catch (e) {
- console.error("Could not require: " + path, e);
- }
- return resolved;
- }
- function requireWithTimestamp (path) {
- var resolved = safeLoadFile(path);
- if (resolved) {
- resolved.timestamp = fs.statSync(path).mtime;
- }
- return resolved;
- }
- // Functions that are needed in order to test the module. Can be removed in the future.
- function compareMethods(path) {
- var new_data = safeLoadFile(path);
- var old_data = safeRequire(path);
- if (JSON.stringify(new_data) === JSON.stringify(old_data) ) {
- console.log("test passed", new_data, old_data);
- } else {
- console.log("test failed");
- }
- }
- // Module tests.
- if (!module.parent) {
- // Write the first file: and test it.
- var obj = {x: "x", y: 1}
- fs.writeFileSync('/tmp/file1.json', JSON.stringify(obj));
- compareMethods('/tmp/file1.json');
- // Check a non existing object.
- compareMethods('/tmp/not_exist.json');
-
- // check a file that is not formated well.
- fs.writeFileSync('/tmp/bad.json', '{"x":"x","y":1');
- compareMethods('/tmp/bad.json');
- // Rewrite the file and reread it.
- var new_obj = {x: "x", y: 2}
- fs.writeFileSync('/tmp/file1.json', JSON.stringify(new_obj));
- var obj_read = safeLoadFile('/tmp/file1.json');
- if (JSON.stringify(new_obj) === JSON.stringify(obj_read) ) {
- console.log("test passed");
- } else {
- console.log("test failed");
- }
- }
- module.exports = {
- safeRequire: safeRequire
- , requireWithTimestamp: requireWithTimestamp
- , safeLoadFile: safeLoadFile
- };
|