UNPKG

profoundjs

Version:

Profound.js Framework and Server

65 lines (60 loc) 2.09 kB
"use strict"; /// <reference path="./profoundjs.d.ts" /> const fs = require("fs"); const path = require("path"); let loaded = false; let exists = false; try { const stat = fs.statSync(path.join(__dirname, "/profound.js")); if (stat && stat.isFile()) exists = true; } catch (err) { exists = false; } if (exists) { require("./profound.js"); } else { loaded = module.constructor._originalResolveFilename != null; module.constructor._originalResolveFilename = module.constructor._originalResolveFilename || module.constructor._resolveFilename; module.constructor._resolveFilename = function(request, paths) { let filename; const parts = request.split("."); const extension = parts.pop(); if (extension === "jse") { filename = module.constructor._originalResolveFilename("./profound.jse", paths); if (path.sep !== "/") { while (request.includes("/")) request = request.replace("/", path.sep); } filename = filename.substr(0, filename.length - "profound.jse".length) + request; } else { filename = module.constructor._originalResolveFilename(request, paths); } return filename; }; const jse = JSON.parse(fs.readFileSync(path.join(__dirname, "/profound.jse"), "utf8")); const loader = require("pjsloader"); // eslint-disable-next-line n/no-deprecated-api require.extensions[".jse"] = function(module, filename) { let name = filename; if (name.substr(0, __dirname.length) === __dirname) name = name.substr(__dirname.length + 1); if (path.sep !== "/") { while (name.includes(path.sep)) name = name.replace(path.sep, "/"); } return module._compile(loader.load(jse[name]), filename); }; // Require any of the children, but only the 1st time if (!loaded) { for (const x in jse) { if (x.startsWith("shipped-plugins")) { profound.utils.addPlugin(require(x)); } else { require(x); } } profound.utils.requireDirs("plugins", profound.dir, profound.utils.addPlugin); // load custom plugins } } module.exports = profound;