imooc-cli-dev-gd 1.0.0
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/LICENSE.md +0 -0
- package/commands/init/README.md +11 -0
- package/commands/init/__tests__/init.test.js +7 -0
- package/commands/init/lib/getProjectTemplate.js +7 -0
- package/commands/init/lib/index.js +423 -0
- package/commands/init/package.json +41 -0
- package/commands/publish/README.md +11 -0
- package/commands/publish/__tests__/publish.test.js +7 -0
- package/commands/publish/lib/index.js +67 -0
- package/commands/publish/package.json +32 -0
- package/core/cli/README.md +11 -0
- package/core/cli/__tests__/core.test.js +7 -0
- package/core/cli/bin/index.js +9 -0
- package/core/cli/lib/const.js +5 -0
- package/core/cli/lib/index.js +151 -0
- package/core/cli/package.json +41 -0
- package/core/exec/README.md +11 -0
- package/core/exec/__tests__/exec.test.js +7 -0
- package/core/exec/lib/index.js +89 -0
- package/core/exec/package.json +31 -0
- package/lerna.json +9 -0
- package/models/cloudbuild/README.md +11 -0
- package/models/cloudbuild/__tests__/cloudbuild.test.js +7 -0
- package/models/cloudbuild/lib/index.js +99 -0
- package/models/cloudbuild/package.json +28 -0
- package/models/command/README.md +11 -0
- package/models/command/__tests__/Command.test.js +7 -0
- package/models/command/lib/index.js +56 -0
- package/models/command/package.json +31 -0
- package/models/git/README.md +11 -0
- package/models/git/__tests__/git.test.js +7 -0
- package/models/git/lib/GitServer.js +60 -0
- package/models/git/lib/Gitee.js +59 -0
- package/models/git/lib/GiteeRequest.js +50 -0
- package/models/git/lib/Github.js +63 -0
- package/models/git/lib/GithubRequest.js +53 -0
- package/models/git/lib/index.js +512 -0
- package/models/git/package.json +35 -0
- package/models/package/README.md +11 -0
- package/models/package/__tests__/package.test.js +7 -0
- package/models/package/lib/index.js +121 -0
- package/models/package/package.json +35 -0
- package/package.json +14 -0
- package/utils/format-path/README.md +11 -0
- package/utils/format-path/__tests__/format-path.test.js +7 -0
- package/utils/format-path/lib/index.js +15 -0
- package/utils/format-path/package.json +26 -0
- package/utils/get-npm-info/README.md +11 -0
- package/utils/get-npm-info/__tests__/get-npm-info.test.js +7 -0
- package/utils/get-npm-info/lib/index.js +65 -0
- package/utils/get-npm-info/package.json +28 -0
- package/utils/log/README.md +11 -0
- package/utils/log/__tests__/log.test.js +7 -0
- package/utils/log/lib/index.js +10 -0
- package/utils/log/package.json +32 -0
- package/utils/request/README.md +11 -0
- package/utils/request/__tests__/request.test.js +7 -0
- package/utils/request/lib/index.js +22 -0
- package/utils/request/package.json +29 -0
- package/utils/utils/README.md +11 -0
- package/utils/utils/__tests__/utils.test.js +7 -0
- package/utils/utils/lib/index.js +77 -0
- package/utils/utils/package.json +26 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/package",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "imooc-cli-dev npm modules",
|
|
5
|
+
"author": "sam <247765564@qq.com>",
|
|
6
|
+
"homepage": "",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://git.imooc.com/class-110/imooc-cli-dev.git"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@imooc-cli-dev-gd/format-path": "file:../../utils/format-path",
|
|
28
|
+
"@imooc-cli-dev-gd/get-npm-info": "file:../../utils/get-npm-info",
|
|
29
|
+
"@imooc-cli-dev-gd/utils": "file:../../utils/utils",
|
|
30
|
+
"fs-extra": "^9.0.1",
|
|
31
|
+
"npminstall": "^4.10.0",
|
|
32
|
+
"path-exists": "^4.0.0",
|
|
33
|
+
"pkg-dir": "^5.0.0"
|
|
34
|
+
}
|
|
35
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "imooc-cli-dev-gd",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "imooc-cli dev",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": "",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"lerna": "^3.22.1"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
module.exports = function formatPath(p) {
|
|
6
|
+
if (p && typeof p === 'string') {
|
|
7
|
+
const sep = path.sep;
|
|
8
|
+
if (sep === '/') {
|
|
9
|
+
return p;
|
|
10
|
+
} else {
|
|
11
|
+
return p.replace(/\\/g, '/');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return p;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/format-path",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "format path",
|
|
5
|
+
"author": "sam <247765564@qq.com>",
|
|
6
|
+
"homepage": "",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://git.imooc.com/class-110/imooc-cli-dev.git"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const axios = require('axios');
|
|
4
|
+
const urlJoin = require('url-join');
|
|
5
|
+
const semver = require('semver');
|
|
6
|
+
|
|
7
|
+
function getNpmInfo(npmName, registry) {
|
|
8
|
+
if (!npmName) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const registryUrl = registry || getDefaultRegistry();
|
|
12
|
+
const npmInfoUrl = urlJoin(registryUrl, npmName);
|
|
13
|
+
return axios.get(npmInfoUrl).then(response => {
|
|
14
|
+
if (response.status === 200) {
|
|
15
|
+
return response.data;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}).catch(err => {
|
|
19
|
+
return Promise.reject(err);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getDefaultRegistry(isOriginal = false) {
|
|
24
|
+
return isOriginal ? 'https://registry.npmjs.org' : 'https://registry.npm.taobao.org';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async function getNpmVersions(npmName, registry) {
|
|
28
|
+
const data = await getNpmInfo(npmName, registry);
|
|
29
|
+
if (data) {
|
|
30
|
+
return Object.keys(data.versions);
|
|
31
|
+
} else {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function getSemverVersions(baseVersion, versions) {
|
|
37
|
+
return versions
|
|
38
|
+
.filter(version => semver.satisfies(version, `>${baseVersion}`))
|
|
39
|
+
.sort((a, b) => semver.gt(b, a) ? 1 : -1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async function getNpmSemverVersion(baseVersion, npmName, registry) {
|
|
43
|
+
const versions = await getNpmVersions(npmName, registry);
|
|
44
|
+
const newVersions = getSemverVersions(baseVersion, versions);
|
|
45
|
+
if (newVersions && newVersions.length > 0) {
|
|
46
|
+
return newVersions[0];
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async function getNpmLatestVersion(npmName, registry) {
|
|
52
|
+
let versions = await getNpmVersions(npmName, registry);
|
|
53
|
+
if (versions) {
|
|
54
|
+
return versions.sort((a, b) => semver.gt(b, a))[0];
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = {
|
|
60
|
+
getNpmInfo,
|
|
61
|
+
getNpmVersions,
|
|
62
|
+
getNpmSemverVersion,
|
|
63
|
+
getDefaultRegistry,
|
|
64
|
+
getNpmLatestVersion,
|
|
65
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/get-npm-info",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "get npm info",
|
|
5
|
+
"author": "sam <247765564@qq.com>",
|
|
6
|
+
"homepage": "",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git@gitee.com:sam9831/imooc-cli-dev.git"
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"axios": "^0.21.0",
|
|
25
|
+
"semver": "^7.3.4",
|
|
26
|
+
"url-join": "^4.0.1"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const log = require('npmlog');
|
|
4
|
+
|
|
5
|
+
log.level = process.env.LOG_LEVEL ? process.env.LOG_LEVEL : 'info'; // 判断debug模式
|
|
6
|
+
|
|
7
|
+
log.heading = 'imooc'; // 修改前缀
|
|
8
|
+
log.addLevel('success', 2000, { fg: 'green', bold: true }); // 添加自定义命令
|
|
9
|
+
|
|
10
|
+
module.exports = log;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/log",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "imooc-cli-dev log",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"log"
|
|
7
|
+
],
|
|
8
|
+
"author": "sam <247765564@qq.com>",
|
|
9
|
+
"homepage": "",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"main": "lib/index.js",
|
|
12
|
+
"directories": {
|
|
13
|
+
"lib": "lib",
|
|
14
|
+
"test": "__tests__"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"lib"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git@gitee.com:sam9831/imooc-cli-dev.git"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"npmlog": "^4.1.2"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const axios = require('axios');
|
|
4
|
+
|
|
5
|
+
const BASE_URL = process.env.IMOOC_CLI_BASE_URL ? process.env.IMOOC_CLI_BASE_URL :
|
|
6
|
+
'http://book.youbaobao.xyz:7002';
|
|
7
|
+
|
|
8
|
+
const request = axios.create({
|
|
9
|
+
baseURL: BASE_URL,
|
|
10
|
+
timeout: 5000,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
request.interceptors.response.use(
|
|
14
|
+
response => {
|
|
15
|
+
return response.data;
|
|
16
|
+
},
|
|
17
|
+
error => {
|
|
18
|
+
return Promise.reject(error);
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
module.exports = request;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/request",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "> TODO: description",
|
|
5
|
+
"author": "sam <247765564@qq.com>",
|
|
6
|
+
"homepage": "",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://git.imooc.com/class-110/imooc-cli-dev.git"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"axios": "^0.21.1"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
|
|
5
|
+
function isObject(o) {
|
|
6
|
+
return Object.prototype.toString.call(o) === '[object Object]';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function spinnerStart(msg, spinnerString = '|/-\\') {
|
|
10
|
+
const Spinner = require('cli-spinner').Spinner;
|
|
11
|
+
const spinner = new Spinner(msg + ' %s');
|
|
12
|
+
spinner.setSpinnerString(spinnerString);
|
|
13
|
+
spinner.start();
|
|
14
|
+
return spinner;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function sleep(timeout = 1000) {
|
|
18
|
+
return new Promise(resolve => setTimeout(resolve, timeout));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function exec(command, args, options) {
|
|
22
|
+
const win32 = process.platform === 'win32';
|
|
23
|
+
|
|
24
|
+
const cmd = win32 ? 'cmd' : command;
|
|
25
|
+
const cmdArgs = win32 ? ['/c'].concat(command, args) : args;
|
|
26
|
+
|
|
27
|
+
return require('child_process').spawn(cmd, cmdArgs, options || {});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function execAsync(command, args, options) {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
const p = exec(command, args, options);
|
|
33
|
+
p.on('error', e => {
|
|
34
|
+
reject(e);
|
|
35
|
+
});
|
|
36
|
+
p.on('exit', c => {
|
|
37
|
+
resolve(c);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function readFile(path, options = {}) {
|
|
43
|
+
if (fs.existsSync(path)) {
|
|
44
|
+
const buffer = fs.readFileSync(path);
|
|
45
|
+
if (buffer) {
|
|
46
|
+
if (options.toJson) {
|
|
47
|
+
return buffer.toJSON();
|
|
48
|
+
} else {
|
|
49
|
+
return buffer.toString();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function writeFile(path, data, { rewrite = true } = {}) {
|
|
57
|
+
if (fs.existsSync(path)) {
|
|
58
|
+
if (rewrite) {
|
|
59
|
+
fs.writeFileSync(path, data);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
} else {
|
|
64
|
+
fs.writeFileSync(path, data);
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
module.exports = {
|
|
70
|
+
isObject,
|
|
71
|
+
spinnerStart,
|
|
72
|
+
sleep,
|
|
73
|
+
exec,
|
|
74
|
+
execAsync,
|
|
75
|
+
readFile,
|
|
76
|
+
writeFile,
|
|
77
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@imooc-cli-dev-gd/utils",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "imooc-clid-dev utils",
|
|
5
|
+
"author": "sam <247765564@qq.com>",
|
|
6
|
+
"homepage": "",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "echo \"Run testing from utils\""
|
|
18
|
+
},
|
|
19
|
+
"gitHead": "ad99cd763be44ac7ec0a97cb233ce8d0f93d0b96",
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"cli-spinner": "^0.2.10"
|
|
25
|
+
}
|
|
26
|
+
}
|