mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-18 00:47:01 +00:00
feature(cloudcmd) import -> load.js
This commit is contained in:
parent
4b528280ba
commit
3e310724ff
24 changed files with 306 additions and 325 deletions
|
|
@ -3,11 +3,14 @@
|
|||
/* global CloudCmd */
|
||||
|
||||
const exec = require('execon');
|
||||
const {promisify} = require('es6-promisify');
|
||||
const tryToCatch = require('try-to-catch/legacy');
|
||||
const {
|
||||
kebabToCamelCase,
|
||||
} = require('../common/util');
|
||||
|
||||
const loadJS = promisify(require('./dom/load').js);
|
||||
|
||||
/**
|
||||
* function load modules
|
||||
* @params = {name, path, func, dobefore, arg}
|
||||
|
|
@ -16,7 +19,7 @@ module.exports = function loadModule(params) {
|
|||
if (!params)
|
||||
return;
|
||||
|
||||
let path = params.path;
|
||||
const {path} = params;
|
||||
const name = params.name || path && kebabToCamelCase(path);
|
||||
const doBefore = params.dobefore;
|
||||
|
||||
|
|
@ -25,10 +28,15 @@ module.exports = function loadModule(params) {
|
|||
|
||||
CloudCmd[name] = () => {
|
||||
exec(doBefore);
|
||||
return import(`./modules/${path}` /* webpackChunkName: "cloudcmd-" */).then(async (module) => {
|
||||
const prefix = CloudCmd.PREFIX;
|
||||
const pathFull = prefix + CloudCmd.DIRCLIENT_MODULES + path + '.js';
|
||||
|
||||
return loadJS(pathFull).then(async () => {
|
||||
const newModule = async (f) => f && f();
|
||||
const module = CloudCmd[name];
|
||||
|
||||
Object.assign(newModule, module);
|
||||
|
||||
CloudCmd[name] = newModule;
|
||||
|
||||
CloudCmd.log('init', name);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue