@platformos/pos-cli
Version:
Manage your platformOS application
89 lines • 3.02 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
function getFileExtension(filePath) {
const pathParts = /^.+\.([^.]+)$/.exec(filePath);
if (pathParts && pathParts.length > 1) {
return pathParts[1];
}
return null;
}
exports.getFileExtension = getFileExtension;
function getPathWithoutExtension(filePath, extension) {
let pathWithoutExtension = filePath;
if (extension) {
pathWithoutExtension = filePath.substr(0, filePath.length - (extension.length + 1));
}
return pathWithoutExtension;
}
exports.getPathWithoutExtension = getPathWithoutExtension;
function handleExtensionErr(extension) {
if (extension) {
throw Error(`cannot import() module with extension '${extension}'`);
}
}
const resolveJs = (path) => require.resolve(path + '.js');
const resolveJSON = (path) => require.resolve(path + '.json');
const importJs = (path) => Promise.resolve().then(() => __importStar(require(path + '.js')));
const importJSON = (path) => Promise.resolve().then(() => __importStar(require(path + '.json')));
function resolveFile(filePath) {
const extension = getFileExtension(filePath);
const pathWithoutExtension = getPathWithoutExtension(filePath, extension);
switch (extension) {
case 'js': {
return resolveJs(pathWithoutExtension);
}
case 'json': {
return resolveJSON(pathWithoutExtension);
}
default: {
try {
return resolveJs(filePath);
}
catch (_error) {
return resolveJSON(filePath);
}
}
}
}
exports.resolveFile = resolveFile;
function requireFile(filePath) {
const extension = getFileExtension(filePath);
const pathWithoutExtension = getPathWithoutExtension(filePath, extension);
switch (extension) {
case 'js': {
if (resolveFile(pathWithoutExtension + `.js`)) {
return importJs(pathWithoutExtension);
}
return null;
}
case 'json': {
if (resolveFile(pathWithoutExtension + `.json`)) {
return importJSON(pathWithoutExtension);
}
return null;
}
default: {
try {
if (resolveFile(filePath + `.js`)) {
return importJs(filePath);
}
}
catch (err) {
handleExtensionErr(extension);
}
if (resolveFile(filePath + `.json`)) {
return importJSON(filePath);
}
handleExtensionErr(extension);
}
}
}
exports.requireFile = requireFile;
//# sourceMappingURL=file.js.map