feeles-ide
Version:
The hackable and serializable IDE to make learning material
34 lines (28 loc) • 1.01 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = separate;
var _includes = _interopRequireDefault(require("lodash/includes"));
function separate(fullpath) {
// Filename CAN'T contains spaces.
fullpath = fullpath.replace(/\s/g, ''); // Path separator
fullpath = fullpath.replace(/:/g, '/'); // Path cannot empty
fullpath = fullpath.replace(/^\/+/, '');
var pathLength = fullpath.lastIndexOf('/') + 1;
var path = fullpath.substr(0, pathLength);
var filename = fullpath.substr(pathLength);
var plainLength = (0, _includes.default)(filename, '.') ? filename.lastIndexOf('.') : filename.length;
var plain = filename.substr(0, plainLength);
var ext = filename.substr(plainLength);
var name = path + plain + ext;
var moduleName = path + plain;
return {
path: path,
plain: plain,
ext: ext,
name: name,
moduleName: moduleName
};
}