Skip to content

Commit 6925eac

Browse files
committed
✨ update
1 parent 13764d4 commit 6925eac

File tree

4 files changed

+144
-70
lines changed

4 files changed

+144
-70
lines changed

bin/micro-app.js

Lines changed: 4 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -46,77 +46,11 @@ if (program.list) {
4646
}
4747

4848
if (program.show) {
49-
const microAppConfig = microApp.self();
50-
if (!microAppConfig) return;
51-
const micros = microAppConfig.micros;
52-
switch (program.show) {
53-
case 'alias':
54-
{
55-
logger.logo(`${chalk.green('Alias List')}:`);
56-
micros.forEach(item => {
57-
const microConfig = microApp(item);
58-
if (microConfig) {
59-
const aliasName = microConfig.name;
60-
if (aliasName) {
61-
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
62-
Object.keys(microConfig.alias).forEach(key => {
63-
if (microConfig.alias[key]) {
64-
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
65-
}
66-
});
67-
}
68-
}
69-
});
70-
// self
71-
const aliasName = microAppConfig.name;
72-
if (aliasName) {
73-
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
74-
Object.keys(microAppConfig.alias).forEach(key => {
75-
if (microAppConfig.alias[key]) {
76-
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
77-
}
78-
});
79-
}
80-
}
81-
break;
82-
case 'share':
83-
case 'shared':
84-
{
85-
logger.logo(`${chalk.green('Shared List')}:`);
86-
micros.forEach(item => {
87-
const microConfig = microApp(item);
88-
if (microConfig) {
89-
const aliasName = microConfig.name;
90-
if (aliasName) {
91-
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
92-
Object.keys(microConfig.shared).forEach(key => {
93-
if (microConfig.shared[key]) {
94-
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
95-
}
96-
});
97-
}
98-
}
99-
});
100-
// self
101-
const aliasName = microAppConfig.name;
102-
if (aliasName) {
103-
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
104-
Object.keys(microAppConfig.shared).forEach(key => {
105-
if (microAppConfig.shared[key]) {
106-
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
107-
}
108-
});
109-
}
110-
}
111-
break;
112-
default:
113-
logger.logo(`${chalk.green('Show Details')}:`);
114-
logger.logo(JSON.stringify(microAppConfig.toJSON(), null, 4));
115-
break;
116-
}
49+
const name = program.show;
50+
require('../libs/show')(name);
11751
}
11852

11953
if (program.update) {
120-
// shelljs.exec('')
121-
logger.logo(' Not Support! ');
54+
const name = program.update;
55+
require('../libs/update')(name);
12256
}

libs/show.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
'use strict';
2+
3+
const chalk = require('chalk').default;
4+
const microApp = require('@necfe/micro-app-core');
5+
const logger = microApp.logger;
6+
7+
module.exports = name => {
8+
const microAppConfig = microApp.self();
9+
if (!microAppConfig) return;
10+
const micros = microAppConfig.micros;
11+
switch (name) {
12+
case 'alias':
13+
{
14+
logger.logo(`${chalk.green('Alias List')}:`);
15+
micros.forEach(item => {
16+
const microConfig = microApp(item);
17+
if (microConfig) {
18+
const aliasName = microConfig.name;
19+
if (aliasName) {
20+
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
21+
Object.keys(microConfig.alias).forEach(key => {
22+
if (microConfig.alias[key]) {
23+
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
24+
}
25+
});
26+
}
27+
}
28+
});
29+
// self
30+
const aliasName = microAppConfig.name;
31+
if (aliasName) {
32+
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
33+
Object.keys(microAppConfig.alias).forEach(key => {
34+
if (microAppConfig.alias[key]) {
35+
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
36+
}
37+
});
38+
}
39+
}
40+
break;
41+
case 'share':
42+
case 'shared':
43+
{
44+
logger.logo(`${chalk.green('Shared List')}:`);
45+
micros.forEach(item => {
46+
const microConfig = microApp(item);
47+
if (microConfig) {
48+
const aliasName = microConfig.name;
49+
if (aliasName) {
50+
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
51+
Object.keys(microConfig.shared).forEach(key => {
52+
if (microConfig.shared[key]) {
53+
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
54+
}
55+
});
56+
}
57+
}
58+
});
59+
// self
60+
const aliasName = microAppConfig.name;
61+
if (aliasName) {
62+
const aliasKey = aliasName[0] !== '@' ? `@${aliasName}` : aliasName;
63+
Object.keys(microAppConfig.shared).forEach(key => {
64+
if (microAppConfig.shared[key]) {
65+
logger.logo(` * ${chalk.yellow(`${aliasKey}/${key}`)}`);
66+
}
67+
});
68+
}
69+
}
70+
break;
71+
default:
72+
logger.logo(`${chalk.green('Show Details')}:`);
73+
logger.logo(JSON.stringify(microAppConfig.toJSON(), null, 4));
74+
break;
75+
}
76+
};

libs/update.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
'use strict';
2+
3+
const shelljs = require('shelljs');
4+
const chalk = require('chalk').default;
5+
const microApp = require('@necfe/micro-app-core');
6+
const logger = microApp.logger;
7+
8+
const path = require('path');
9+
10+
module.exports = name => {
11+
const microAppConfig = microApp.self();
12+
if (!microAppConfig) return;
13+
const micros = microAppConfig.micros;
14+
if (micros.includes(name)) {
15+
const microConfig = microApp(name);
16+
if (microConfig) {
17+
const root = microConfig.root;
18+
19+
const pkgInfo = microAppConfig.package;
20+
const gitPath = (pkgInfo.devDependencies && pkgInfo.devDependencies[microConfig.name]) || (pkgInfo.dependencies && pkgInfo.dependencies[microConfig.name]) || false;
21+
if (gitPath) {
22+
logger.logo(`${chalk.yellow('Delete')}: ${root}`);
23+
shelljs.rm('-rf', root);
24+
shelljs.rm('-rf', path.join(microAppConfig.root, 'package-lock.json'));
25+
logger.logo('waiting...');
26+
shelljs.exec(`npm install -D "${gitPath}"`);
27+
logger.logo(`${chalk.green('Finish!')}`);
28+
return;
29+
}
30+
}
31+
} else if (name === 'all' || name === '*') {
32+
shelljs.rm('-rf', path.join(microAppConfig.root, 'package-lock.json'));
33+
const _gitPaths = micros.map(key => {
34+
const microConfig = microApp(key);
35+
if (microConfig) {
36+
const root = microConfig.root;
37+
38+
const pkgInfo = microAppConfig.package;
39+
const gitPath = (pkgInfo.devDependencies && pkgInfo.devDependencies[microConfig.name]) || (pkgInfo.dependencies && pkgInfo.dependencies[microConfig.name]) || false;
40+
if (gitPath) {
41+
return {
42+
root, gitPath,
43+
};
44+
}
45+
}
46+
return false;
47+
}).filter(item => !!item).map(({ root, gitPath }) => {
48+
logger.logo(`${chalk.yellow('Delete')}: ${root}`);
49+
shelljs.rm('-rf', root);
50+
return gitPath;
51+
});
52+
53+
logger.logo('waiting...');
54+
shelljs.exec(`npm install -D "${_gitPaths.join('" ')}"`);
55+
56+
logger.logo(`${chalk.green('Finish!')}`);
57+
return;
58+
}
59+
logger.error('Update Error!!!');
60+
};

test/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
'use strict';
2+
3+
const update = require('../libs/update');
4+
update('a');

0 commit comments

Comments
 (0)