app-root-path.js 616 B

123456789101112131415161718192021222324252627282930
  1. 'use strict';
  2. module.exports = function(dirname) {
  3. var path = require('path');
  4. var resolve = require('./resolve.js');
  5. var appRootPath = resolve(dirname);
  6. var publicInterface = {
  7. resolve: function(pathToModule) {
  8. return path.join(appRootPath, pathToModule);
  9. },
  10. require: function(pathToModule) {
  11. return require(publicInterface.resolve(pathToModule));
  12. },
  13. toString: function() {
  14. return appRootPath;
  15. },
  16. setPath: function(explicitlySetPath) {
  17. appRootPath = path.resolve(explicitlySetPath);
  18. publicInterface.path = appRootPath;
  19. },
  20. path: appRootPath
  21. };
  22. return publicInterface;
  23. };