UNPKG

@ztes/corejs

Version:

Core-js is a better Javascript's framework

150 lines (124 loc) 3.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _Exception = _interopRequireDefault(require("../spanners/Exception")); var _Lib = _interopRequireDefault(require("../spanners/Lib")); /** * Class Vue2Adapter Vue.js 2.x adapter * This class is not inheritable. * */ var Vue2Adapter = /*#__PURE__*/function () { // Vue Class // Vue model // Vue element // Vue configs function Vue2Adapter($class) { (0, _classCallCheck2.default)(this, Vue2Adapter); (0, _defineProperty2.default)(this, "Vue", null); (0, _defineProperty2.default)(this, "$vm", null); (0, _defineProperty2.default)(this, "hasEl", true); (0, _defineProperty2.default)(this, "_configs", null); if (!_Lib.default.isClass($class)) { throw new _Exception.default('Error', 'Adapter Error : The first argument must be a class'); } this.Vue = $class; } /** * Method setConfigs 设置配置文件 * @param {*} param0 * @returns */ (0, _createClass2.default)(Vue2Adapter, [{ key: "setConfigs", value: function setConfigs(_ref) { var router = _ref.router, store = _ref.store, render = _ref.render, el = _ref.el; var configs = { router: router, store: store, render: render, el: el }; // Manually mount node if (!el) { this.hasEl = false; delete configs.el; } // Not use Vuex if (!store) { delete configs.store; } this._configs = configs; return this; } /** * Method use 使用插件 * @param {*} obj */ }, { key: "use", value: function use(obj) { if (this.$vm) { throw new _Exception.default('Error', 'Vue.js Error : The use method must be invoked before the run method.'); } this.Vue.use(obj); } /** * Method mixin 混入 * @param {*} obj */ }, { key: "mixin", value: function mixin(obj) { this.Vue.mixin(obj); } /** * Method $mount 挂载 * @param {*} root */ }, { key: "$mount", value: function $mount() { var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '#app'; this.$vm.$mount(root); } /** * Method instance */ }, { key: "instance", value: function instance() { this.$vm = new this.Vue(this._configs); } /** * Method run * @returns */ }, { key: "run", value: function run(root) { var mark = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; this.instance(); if (root && !this.hasEl) { this.$mount(root); } else if (root && this.hasEl) { throw new _Exception.default('Error', 'Vue root element Error : Nodes can only be bound once'); } else if (!root && !this.hasEl) { throw new _Exception.default('Error', 'Vue root element Error : A node must be bound'); } // Mark if (mark) { // No error mark console.log('%c ================================ \n' + ' = = \n' + " =\tTHE VUE 2.x APP IS RUNNING~\t= \n" + ' = = \n' + ' ================================ ', 'background:#0f8e00;color:#ffffff'); } } }]); return Vue2Adapter; }(); exports.default = Vue2Adapter;