Xge
Xge

Reputation: 450

Is it possible to launch js files with different permissions using nodejs/npm?

I want to launch a js file in a js file with different permission. Just like this:

main.js (which gets started)


config = JSON.parse(require("./config.json")) // <- should be possible

console.log(config.authkey) // <- should be possible

require("./randomJSFile.js").run()

randomJSFile.js (which will be executed by main.js)


exports.run = () => {

 let config = JSON.parse(require("./config.json") // <--- this should not be possible, only the main.js file should have access to the config.json file

 console.log(config.authkey) // should not be possible

}

Does anyone know how to do something like that?

Upvotes: 0

Views: 33

Answers (1)

awarrier99
awarrier99

Reputation: 3855

Based on a snippet from this question here you could possibly override the require function to check for the filename, something like this:

const Module = require('module');
const originalRequire = Module.prototype.require;

Module.prototype.require = function() {
  if (!arguments.length || typeof arguments[0] !== 'string') return {};
  if (arguments[0].includes('config.json')) return {};
  return originalRequire.apply(this, arguments);
};

And then perform this override after you've already required the config in your main file, so you don't accidentally block yourself

Upvotes: 1

Related Questions