morpha
Version:
A Web-IDE or Desktop-IDE creator.
98 lines (77 loc) • 3.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _PackageManager2 = require('./common/PackageManager');
var _PackageManager3 = _interopRequireDefault(_PackageManager2);
var _utils = require('./common/utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ClientApplication = function (_PackageManager) {
(0, _inherits3.default)(ClientApplication, _PackageManager);
function ClientApplication(args) {
(0, _classCallCheck3.default)(this, ClientApplication);
var _this = (0, _possibleConstructorReturn3.default)(this, (ClientApplication.__proto__ || (0, _getPrototypeOf2.default)(ClientApplication)).call(this, args));
_this.isRunning = false;
return _this;
}
(0, _createClass3.default)(ClientApplication, [{
key: 'render',
value: function render() {
(0, _utils.each)(this.getPackages(), function (pack) {
if (typeof pack.context.render === 'function') {
pack.context.render();
}
});
}
}, {
key: 'renderStyles',
value: function renderStyles() {
var LessCache = (0, _utils.safeRequire)('less-cache');
var path = (0, _utils.safeRequire)('path');
var fs = (0, _utils.safeRequire)('fs');
var cache = new LessCache({
cacheDir: path.join(this.args.morphaHomePath, 'compile-cache/less')
});
var styles = [];
(0, _utils.each)(this.getPackages(), function (pack) {
if (pack.styles && pack.styles.length > 0) {
pack.styles.forEach(function (stylePath) {
return styles.push(stylePath);
});
}
});
// styles.push(path.join(process.cwd(), 'node_modules/normalize.css/normalize.css'))
styles.forEach(function (stylePath) {
var styleContent = void 0;
if (path.extname(stylePath) === '.less') styleContent = cache.readFileSync(stylePath);else styleContent = fs.readFileSync(stylePath);
var styleEl = document.createElement('style');
styleEl.textContent = styleContent;
styleEl.setAttribute('data-style-path', stylePath);
document.head.appendChild(styleEl);
});
}
}, {
key: 'start',
value: function start() {
if (this.isRunning) return;
this._initPackages();
this._bootstrapPackages();
if (this.args.isElectron) this.renderStyles();
this.render();
this.isRunning = true;
}
}]);
return ClientApplication;
}(_PackageManager3.default);
exports.default = ClientApplication;