1 | import path from "path";
|
2 | import fs from "fs";
|
3 | import { readJson, runCommands } from "node-pearls";
|
4 |
|
5 | export default async function(options){
|
6 | var currentDir = process.cwd();
|
7 | if(options.dir){
|
8 | currentDir = path.join(currentDir, options.dir);
|
9 | }
|
10 |
|
11 | const packageJsonFile = path.join(currentDir, "package.json");
|
12 | const packageJson = readJson.sync(packageJsonFile);
|
13 | packageJson.version = options.version || (function(versions){
|
14 | versions[versions.length - 1] = +versions[versions.length - 1] + 1;
|
15 | return versions.join(".");
|
16 | })(packageJson.version.split("."));
|
17 | fs.writeFileSync(packageJsonFile, JSON.stringify(packageJson, null, " "));
|
18 |
|
19 | const tag = options.dir ? `${packageJson.name}@${packageJson.version}` : packageJson.version;
|
20 |
|
21 | await runCommands(`
|
22 | npm publish --registry https://registry.npmjs.org/
|
23 | git add .
|
24 | git commit -m "${tag}"
|
25 | git push
|
26 | `, {
|
27 | cwd: currentDir
|
28 | });
|
29 |
|
30 | if(!options.dir){
|
31 | await runCommands(`
|
32 | git tag -a ${tag} -m '${tag}'
|
33 | git push origin ${tag}
|
34 | `, {
|
35 | cwd: currentDir
|
36 | });
|
37 | }
|
38 | } |
\ | No newline at end of file |