@tmsfe/tmskit 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -27
- package/dist/index.cjs.js +1284 -983
- package/package.json +73 -75
- package/src/{gulp → compile}/build.js +5 -5
- package/src/{gulp → compile}/compile.js +90 -81
- package/src/{gulp → compile}/dev.js +129 -102
- package/src/{gulp → compile}/plugins/less.js +116 -116
- package/src/{gulp → compile}/plugins/mpCommonDep.js +131 -131
- package/src/{gulp → compile}/plugins/mpJsonDep.js +112 -108
- package/src/{gulp → compile}/plugins/mpWxmlDep.js +194 -194
- package/src/{gulp → compile}/plugins/postcss-font-base64.js +72 -72
- package/src/{gulp → compile}/plugins/replaceEnv.js +29 -29
- package/src/{gulp → compile}/plugins/utils/pluginError.js +25 -25
- package/src/config/constant.js +69 -71
- package/src/config/defaultTmsConfig.js +16 -16
- package/src/{utils → core}/buildAppJson.js +166 -221
- package/src/{utils → core}/checkDependencies.js +77 -77
- package/src/core/cloneModules.js +203 -0
- package/src/{utils → core}/handleError.js +18 -16
- package/src/core/isInIt.js +69 -0
- package/src/{utils/mpCiUtils.js → core/mpCi.js} +73 -73
- package/src/core/npm.js +218 -0
- package/src/core/symbolicLink.js +24 -0
- package/src/{utils/tkitUtils.js → core/tmsMpconfig.js} +234 -158
- package/src/entry.js +62 -60
- package/src/index.js +63 -62
- package/src/init.js +33 -33
- package/src/scripts/create/ask.js +63 -63
- package/src/scripts/create/generator.js +25 -25
- package/src/scripts/create/ignoreFiles.js +7 -7
- package/src/scripts/create/index.js +72 -72
- package/src/scripts/create/render.js +19 -19
- package/src/scripts/run/build/index.js +16 -17
- package/src/scripts/run/dev/index.js +42 -84
- package/src/scripts/run/index.js +97 -68
- package/src/scripts/run/init/index.js +95 -87
- package/src/scripts/run/install/index.js +31 -29
- package/src/utils/findCssImport.js +30 -30
- package/src/utils/global.js +22 -36
- package/src/utils/io.js +107 -106
- package/src/utils/log.js +47 -44
- package/src/utils/widgets.js +178 -167
- package/main.js +0 -3
- package/src/utils/cliUtils.js +0 -35
- package/src/utils/cloneModules.js +0 -116
- package/src/utils/npmUtils.js +0 -166
package/src/scripts/run/index.js
CHANGED
|
@@ -1,68 +1,97 @@
|
|
|
1
|
-
const init = require('./init/index');
|
|
2
|
-
const dev = require('./dev/index');
|
|
3
|
-
const build = require('./build/index');
|
|
4
|
-
const install = require('./install/index');
|
|
5
|
-
const {
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
const init = require('./init/index');
|
|
2
|
+
const dev = require('./dev/index');
|
|
3
|
+
const build = require('./build/index');
|
|
4
|
+
const install = require('./install/index');
|
|
5
|
+
const { global } = require('../../utils/global');
|
|
6
|
+
const {
|
|
7
|
+
readTmsConfig,
|
|
8
|
+
readTmsPrivateCf,
|
|
9
|
+
checkModules,
|
|
10
|
+
tmsModulesMergeLocalModuleCfg,
|
|
11
|
+
subModulesMergeDepModules,
|
|
12
|
+
} = require('../../core/tmsMpconfig');
|
|
13
|
+
|
|
14
|
+
const handleModuleArg = (cmd) => {
|
|
15
|
+
// 单模块或多模块开发-用户通过脚手架参数指定的模块
|
|
16
|
+
if (typeof cmd.module === 'string') {
|
|
17
|
+
return cmd.module.split(',');
|
|
18
|
+
}
|
|
19
|
+
return [];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* 获取用户指定要跑的模块
|
|
23
|
+
* @param {Array} moduleArg 参数指定的模块
|
|
24
|
+
* @param {Object} modulePrivateCfg 私有配置里的模块
|
|
25
|
+
* @param {Array} moduleAll 当前小程序全部模块
|
|
26
|
+
*/
|
|
27
|
+
const getSpecificModules = (moduleArg, modulePrivateCfg, moduleAll) => {
|
|
28
|
+
if (moduleArg.length > 0) {
|
|
29
|
+
return moduleArg;
|
|
30
|
+
}
|
|
31
|
+
// 单模块或多模块开发-用户在tms.private.js指定的模块
|
|
32
|
+
if (modulePrivateCfg) {
|
|
33
|
+
if (modulePrivateCfg.include?.length > 0) {
|
|
34
|
+
return modulePrivateCfg.include;
|
|
35
|
+
}
|
|
36
|
+
if (modulePrivateCfg.exclude?.length > 0) {
|
|
37
|
+
return moduleAll.filter(module => !modulePrivateCfg.exclude.includes(module.name)).map(item => item.name);
|
|
38
|
+
}
|
|
39
|
+
if (modulePrivateCfg.blockRemote === true) {
|
|
40
|
+
return moduleAll.filter(module => module.repoInfo === undefined).map(item => item.name);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return moduleAll.map(item => item.name);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
async function run(commandName, cmd) {
|
|
47
|
+
// 用户本地的私有项目配置(用来配置环境\模块信息\账号信息)
|
|
48
|
+
const tmsPrivateCf = readTmsPrivateCf();
|
|
49
|
+
const { env = tmsPrivateCf?.env } = cmd;
|
|
50
|
+
const tmsConfig = readTmsConfig(env);
|
|
51
|
+
// 处理module参数
|
|
52
|
+
const specificModules = getSpecificModules(
|
|
53
|
+
handleModuleArg(cmd),
|
|
54
|
+
tmsPrivateCf.modules,
|
|
55
|
+
tmsConfig.modules,
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
const modules = checkModules(tmsConfig, [
|
|
59
|
+
...new Set([
|
|
60
|
+
...tmsConfig.mainPackages,
|
|
61
|
+
...specificModules,
|
|
62
|
+
]),
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
// tms.config.js的modules 合并 module.config.json的配置项
|
|
66
|
+
let newModules = tmsModulesMergeLocalModuleCfg(modules, tmsConfig.appName);
|
|
67
|
+
// A分包依赖了B分包的代码, merge B分包进行编译;
|
|
68
|
+
newModules = subModulesMergeDepModules(tmsConfig, newModules);
|
|
69
|
+
|
|
70
|
+
// 缓存数据
|
|
71
|
+
global.setData({
|
|
72
|
+
env,
|
|
73
|
+
cmd,
|
|
74
|
+
tmsPrivateCf,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
switch (commandName) {
|
|
78
|
+
case 'init':
|
|
79
|
+
init(tmsConfig, newModules, env);
|
|
80
|
+
return;
|
|
81
|
+
case 'dev':
|
|
82
|
+
global.setData('isDev', true);
|
|
83
|
+
dev(tmsConfig, newModules, env);
|
|
84
|
+
return;
|
|
85
|
+
case 'install':
|
|
86
|
+
install(tmsConfig, newModules, env);
|
|
87
|
+
return;
|
|
88
|
+
case 'build':
|
|
89
|
+
global.setData('isDev', false);
|
|
90
|
+
build(tmsConfig, newModules, env);
|
|
91
|
+
return;
|
|
92
|
+
default:
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
module.exports = run;
|
|
@@ -1,87 +1,95 @@
|
|
|
1
|
-
const shelljs = require('shelljs');
|
|
2
|
-
const fs = require('fs');
|
|
3
|
-
const io = require('../../../utils/io');
|
|
4
|
-
const { resolve, createTask } = require('../../../utils/widgets');
|
|
5
|
-
const { buildOutputAppJson } = require('../../../
|
|
6
|
-
const {
|
|
7
|
-
const {
|
|
8
|
-
const {
|
|
9
|
-
const {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param {
|
|
16
|
-
* @param { array }
|
|
17
|
-
* @
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
'
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
1
|
+
const shelljs = require('shelljs');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const io = require('../../../utils/io');
|
|
4
|
+
const { resolve, createTask } = require('../../../utils/widgets');
|
|
5
|
+
const { buildOutputAppJson } = require('../../../core/buildAppJson');
|
|
6
|
+
const { symLink } = require('../../../core/symbolicLink');
|
|
7
|
+
const { MODULE_CODE_DIR, DEFAULT_COPY_CONFIG } = require('../../../config/constant');
|
|
8
|
+
const { cloneModules } = require('../../../core/cloneModules');
|
|
9
|
+
const { tmsModulesMergeLocalModuleCfg, subModulesMergeDepModules } = require('../../../core/tmsMpconfig');
|
|
10
|
+
const { fail, info } = require('../../../utils/log');
|
|
11
|
+
const install = require('../install');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 拷贝相关配置文件到编译输出目录
|
|
15
|
+
* @param { object } tmsConfig
|
|
16
|
+
* @param { array } modules
|
|
17
|
+
* @param { array } defaultFiles 默认需要拷贝的配置项
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
const cpFilesToOutput = function (tmsConfig, targetModules, defaultFiles) {
|
|
21
|
+
const outputDir = resolve(tmsConfig.outputDir);
|
|
22
|
+
io.ensureDirExist(outputDir);
|
|
23
|
+
defaultFiles.forEach((item) => {
|
|
24
|
+
if (fs.existsSync(resolve(item))) {
|
|
25
|
+
shelljs.cp('-rf', resolve(item), resolve(tmsConfig.outputDir, item));
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// 拷贝模块的package.json到编译输出目录
|
|
30
|
+
targetModules.forEach((item) => {
|
|
31
|
+
const outputModuleDir = resolve(`${tmsConfig.outputDir}/${item.root}`);
|
|
32
|
+
if (!fs.existsSync(resolve(item.path))) {
|
|
33
|
+
fail(`${item.path}模块代码路径不存在, 请检查tms.config.js的${item.name}模块的path`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
io.ensureDirExist(outputModuleDir);
|
|
37
|
+
const modulePackagePath = resolve(item.path, 'package.json');
|
|
38
|
+
if (fs.existsSync(modulePackagePath)) shelljs.cp('-Rf', modulePackagePath, outputModuleDir);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
async function task(tmsConfig, targetModules) {
|
|
43
|
+
// 下载和移动代码
|
|
44
|
+
await createTask(
|
|
45
|
+
cloneModules,
|
|
46
|
+
'开始下载模块代码',
|
|
47
|
+
'下载模块代码码完成',
|
|
48
|
+
)(MODULE_CODE_DIR, resolve('./'), targetModules);
|
|
49
|
+
|
|
50
|
+
// tms.config.js的modules 合并 module.config.json的配置项
|
|
51
|
+
let newModules = tmsModulesMergeLocalModuleCfg(targetModules, tmsConfig.appName);
|
|
52
|
+
// A分包依赖了B分包的代码, merge B分包进行编译;
|
|
53
|
+
newModules = subModulesMergeDepModules(tmsConfig, newModules);
|
|
54
|
+
|
|
55
|
+
// 拷贝相关配置文件到输出目录
|
|
56
|
+
await createTask(
|
|
57
|
+
cpFilesToOutput,
|
|
58
|
+
'开始拷贝文件到编译输出目录',
|
|
59
|
+
'拷贝文件到编译输出目录完成',
|
|
60
|
+
)(tmsConfig, newModules, DEFAULT_COPY_CONFIG);
|
|
61
|
+
|
|
62
|
+
// install
|
|
63
|
+
await install(tmsConfig, newModules, false);
|
|
64
|
+
|
|
65
|
+
// 动态生成编译后的app.json;
|
|
66
|
+
await createTask(
|
|
67
|
+
buildOutputAppJson,
|
|
68
|
+
'开始生成编译后的app.json',
|
|
69
|
+
'生成编译后的app.json完成',
|
|
70
|
+
)(tmsConfig, newModules);
|
|
71
|
+
|
|
72
|
+
await createTask(
|
|
73
|
+
symLink,
|
|
74
|
+
'开始创建软链接',
|
|
75
|
+
'创建软链接完成',
|
|
76
|
+
)(tmsConfig);
|
|
77
|
+
|
|
78
|
+
return newModules;
|
|
79
|
+
}
|
|
80
|
+
async function init(tmsConfig, targetModules) {
|
|
81
|
+
try {
|
|
82
|
+
const newModules = await task(tmsConfig, targetModules);
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
targetModules: newModules,
|
|
86
|
+
};
|
|
87
|
+
} catch (error) {
|
|
88
|
+
const errMsg = typeof error === 'object' ? error.message : error;
|
|
89
|
+
fail(`init流程出现错误${errMsg}`);
|
|
90
|
+
info('详细的错误信息', error);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
module.exports = init;
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
const { createTask, resolve } = require('../../../utils/widgets');
|
|
2
|
-
const { buildMpNpm } = require('../../../
|
|
3
|
-
const { CACHE_DIR } = require('../../../config/constant');
|
|
4
|
-
const { cloudNpmInstall, mpNpmInstallAll } = require('../../../
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
'小程序npm install
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
const { createTask, resolve } = require('../../../utils/widgets');
|
|
2
|
+
const { buildMpNpm } = require('../../../core/mpCi');
|
|
3
|
+
const { CACHE_DIR } = require('../../../config/constant');
|
|
4
|
+
const { cloudNpmInstall, mpNpmInstallAll } = require('../../../core/npm');
|
|
5
|
+
const { global } = require('../../../utils/global');
|
|
6
|
+
|
|
7
|
+
async function install(tmsConfig, modules, isCloud = false) {
|
|
8
|
+
// 小程序npm install
|
|
9
|
+
await createTask(
|
|
10
|
+
mpNpmInstallAll,
|
|
11
|
+
'小程序 开始npm install',
|
|
12
|
+
'小程序npm install 完成',
|
|
13
|
+
)(modules, resolve(tmsConfig.outputDir), `${CACHE_DIR}/node_modules`);
|
|
14
|
+
|
|
15
|
+
const tmsPrivateCf = global.getData('tmsPrivateCf');
|
|
16
|
+
// 构建miniprogram_npm
|
|
17
|
+
await createTask(
|
|
18
|
+
buildMpNpm,
|
|
19
|
+
'开始构建miniprogram_npm',
|
|
20
|
+
'构建miniprogram_npm 完成',
|
|
21
|
+
)({ appId: tmsConfig.appId, projectPath: resolve('./'), privateKey: tmsPrivateCf.privateKey });
|
|
22
|
+
|
|
23
|
+
// 安装云函数的
|
|
24
|
+
isCloud && createTask(
|
|
25
|
+
cloudNpmInstall,
|
|
26
|
+
'云函数npm install',
|
|
27
|
+
'云函数npm install安装完毕',
|
|
28
|
+
)(resolve(tmsConfig.cloudDir));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = install;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
const strip = require('strip-comments');
|
|
3
|
-
// 匹配规则
|
|
4
|
-
const MATCH_RULE = new RegExp(/@import *(?:url\(['"]?([^'")]+)['"]?\)|['"]([^'"]+)['"]);?/g);
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* 获取样式文件中的@import语句
|
|
8
|
-
* @param code 代码片段
|
|
9
|
-
* @returns 结果数组
|
|
10
|
-
*/
|
|
11
|
-
const findCssImports = (code) => {
|
|
12
|
-
// 将buffer转成字符串
|
|
13
|
-
code = code.toString();
|
|
14
|
-
// 去除注释
|
|
15
|
-
code = strip.block(code);
|
|
16
|
-
// 定义最后返回的结果
|
|
17
|
-
const result = [];
|
|
18
|
-
let matchList;
|
|
19
|
-
// 循环遍历代码段,直至匹配结果为空
|
|
20
|
-
while ((matchList = MATCH_RULE.exec(code))) {
|
|
21
|
-
// 存入结果数组
|
|
22
|
-
result.push(matchList?.[1] || matchList?.[2]);
|
|
23
|
-
}
|
|
24
|
-
// 返回结果
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
module.exports = {
|
|
29
|
-
findCssImports,
|
|
30
|
-
};
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
const strip = require('strip-comments');
|
|
3
|
+
// 匹配规则
|
|
4
|
+
const MATCH_RULE = new RegExp(/@import *(?:url\(['"]?([^'")]+)['"]?\)|['"]([^'"]+)['"]);?/g);
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 获取样式文件中的@import语句
|
|
8
|
+
* @param code 代码片段
|
|
9
|
+
* @returns 结果数组
|
|
10
|
+
*/
|
|
11
|
+
const findCssImports = (code) => {
|
|
12
|
+
// 将buffer转成字符串
|
|
13
|
+
code = code.toString();
|
|
14
|
+
// 去除注释
|
|
15
|
+
code = strip.block(code);
|
|
16
|
+
// 定义最后返回的结果
|
|
17
|
+
const result = [];
|
|
18
|
+
let matchList;
|
|
19
|
+
// 循环遍历代码段,直至匹配结果为空
|
|
20
|
+
while ((matchList = MATCH_RULE.exec(code))) {
|
|
21
|
+
// 存入结果数组
|
|
22
|
+
result.push(matchList?.[1] || matchList?.[2]);
|
|
23
|
+
}
|
|
24
|
+
// 返回结果
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
module.exports = {
|
|
29
|
+
findCssImports,
|
|
30
|
+
};
|
package/src/utils/global.js
CHANGED
|
@@ -1,36 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
let instance;
|
|
26
|
-
function getGlobalInstance() {
|
|
27
|
-
if (instance) {
|
|
28
|
-
return instance;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return instance = new Globale();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
module.exports = {
|
|
35
|
-
getGlobalInstance,
|
|
36
|
-
};
|
|
1
|
+
const global = {
|
|
2
|
+
data: {},
|
|
3
|
+
setData(...args) {
|
|
4
|
+
if (args.length === 1) {
|
|
5
|
+
Object.keys(args[0]).forEach((k) => {
|
|
6
|
+
if (args[0][k]) {
|
|
7
|
+
this.data[k] = args[0][k];
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
} else {
|
|
11
|
+
const [name, value] = args;
|
|
12
|
+
this.data[name] = value;
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
getData(name) {
|
|
16
|
+
return this.data[name];
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
module.exports = {
|
|
21
|
+
global,
|
|
22
|
+
};
|