@mxpicture/build-cli 0.2.14 → 0.2.17

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.
@@ -0,0 +1,22 @@
1
+ import { Argument, Command } from "@commander-js/extra-typings";
2
+ import { DepsProcessMode, DepsReplacementMode, RunPackagesDirParams, RunRepoRootWsParams } from "@mxpicture/build-api/types";
3
+ export declare const repoRootArgument: Argument<"[repoRoot]", string, undefined, undefined, undefined>;
4
+ export declare const workspacesNameArgument: Argument<"[workspacesName]", "packages", undefined, undefined, undefined>;
5
+ export declare const processModeArgument: Argument<"<mode>", undefined, undefined, undefined, DepsProcessMode>;
6
+ export declare const replacementModeArgument: Argument<"<replacement>", undefined, undefined, undefined, DepsReplacementMode>;
7
+ export declare const resolveRoot: (repoRoot: string) => string;
8
+ export declare const readVersion: () => string;
9
+ export declare const repoRootWsMap: (repoRoot: string, workspacesName: string) => RunRepoRootWsParams;
10
+ export declare const packagesMap: (repoRoot: string, workspacesName: string) => RunPackagesDirParams;
11
+ export declare const createRepoRootWsCommand: (p: {
12
+ prog: Command;
13
+ name: string;
14
+ description: string;
15
+ run: (params: RunRepoRootWsParams) => Promise<void>;
16
+ }) => void;
17
+ export declare const createPackagesCommand: (p: {
18
+ prog: Command;
19
+ name: string;
20
+ description: string;
21
+ run: (params: RunPackagesDirParams) => Promise<void>;
22
+ }) => void;
@@ -0,0 +1,33 @@
1
+ import { Argument } from "@commander-js/extra-typings";
2
+ import { DepsProcessMode, DepsReplacementMode, } from "@mxpicture/build-api/types";
3
+ import { readPackageJsonSync } from "@mxpicture/build-api/workspace";
4
+ import { dirname, isAbsolute, join, resolve } from "node:path";
5
+ import { cwd } from "node:process";
6
+ import { fileURLToPath } from "node:url";
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ export const repoRootArgument = new Argument("[repoRoot]", "Repo root path").default(cwd());
9
+ export const workspacesNameArgument = new Argument("[workspacesName]", "Name of workspaces location").default("packages");
10
+ export const processModeArgument = new Argument("<mode>", "Process mode").choices(Object.values(DepsProcessMode));
11
+ export const replacementModeArgument = new Argument("<replacement>", "Replacement mode").choices(Object.values(DepsReplacementMode));
12
+ export const resolveRoot = (repoRoot) => isAbsolute(repoRoot) ? repoRoot : resolve(cwd(), repoRoot);
13
+ export const readVersion = () => readPackageJsonSync(resolve(__dirname, "../package.json")).version;
14
+ export const repoRootWsMap = (repoRoot, workspacesName) => ({ repoRoot: resolveRoot(repoRoot), workspacesName });
15
+ export const packagesMap = (repoRoot, workspacesName) => ({
16
+ packagesDir: join(resolveRoot(repoRoot), workspacesName),
17
+ });
18
+ export const createRepoRootWsCommand = (p) => {
19
+ p.prog
20
+ .command(p.name)
21
+ .description(p.description)
22
+ .addArgument(repoRootArgument)
23
+ .addArgument(workspacesNameArgument)
24
+ .action(async (repoRoot, workspacesName) => p.run(repoRootWsMap(repoRoot, workspacesName)));
25
+ };
26
+ export const createPackagesCommand = (p) => {
27
+ p.prog
28
+ .command(p.name)
29
+ .description(p.description)
30
+ .addArgument(repoRootArgument)
31
+ .addArgument(workspacesNameArgument)
32
+ .action(async (repoRoot, workspacesName) => p.run(packagesMap(repoRoot, workspacesName)));
33
+ };
package/dist/cli.js CHANGED
@@ -1,67 +1,50 @@
1
1
  #!/usr/bin/env node
2
- import { Argument, program } from "@commander-js/extra-typings";
3
- import { argv, cwd } from "node:process";
2
+ import { program } from "@commander-js/extra-typings";
3
+ import { argv } from "node:process";
4
4
  import { runCleanup } from "@mxpicture/build-api/cleanup";
5
- import { DepsProcessMode, DepsReplacementMode, } from "@mxpicture/build-api/types";
6
5
  import { runFixDeps } from "@mxpicture/build-api/deps";
7
- import { dirname, isAbsolute, join, resolve } from "node:path";
8
6
  import { runNpmPublisher } from "@mxpicture/build-api/npmPublish";
9
- import { consoleLogger, setLogger } from "@mxpicture/build-api/logger";
7
+ import { consoleLogger, initLogger } from "@mxpicture/build-api/logger";
10
8
  import { runBarrel } from "@mxpicture/build-api/barrel";
11
- import { runChangeset } from "@mxpicture/build-api/changeset";
12
- import { readPackageJsonSync } from "@mxpicture/build-api/workspace";
13
- import { fileURLToPath } from "node:url";
14
- setLogger(consoleLogger);
15
- const __dirname = dirname(fileURLToPath(import.meta.url));
16
- const resolveRoot = (repoRoot) => isAbsolute(repoRoot) ? repoRoot : resolve(cwd(), repoRoot);
17
- const pkg = readPackageJsonSync(resolve(__dirname, "../package.json"));
18
- program.name("build-cli").version(pkg.version).description("Build CLI");
19
- program
20
- .command("cleanup")
21
- .description("Cleanup e.g. node_modules and dist")
22
- .addArgument(new Argument("[repoRoot]", "Repo root path").default(cwd()))
23
- .addArgument(new Argument("[workspacesName]", "Name of workspaces location").default("packages"))
24
- .action(async (repoRoot, workspacesName) => runCleanup({
25
- repoRoot: resolveRoot(repoRoot),
26
- workspacesName,
27
- }));
9
+ import { createPackagesCommand, createRepoRootWsCommand, processModeArgument, readVersion, replacementModeArgument, repoRootArgument, resolveRoot, } from "./cli.common.js";
10
+ import { runSyncPkgVersion } from "@mxpicture/build-api/pkg";
11
+ initLogger(consoleLogger);
12
+ program.name("build-cli").version(readVersion()).description("Build CLI");
13
+ createRepoRootWsCommand({
14
+ name: "cleanup",
15
+ description: "Cleanup e.g. node_modules and dist",
16
+ prog: program,
17
+ run: runCleanup,
18
+ });
28
19
  program
29
20
  .command("deps")
30
21
  .description("Manipulate dependencies for deployment (publish)")
31
- .addArgument(new Argument("<mode>", "Process mode").choices(Object.values(DepsProcessMode)))
32
- .addArgument(new Argument("<replacement>", "Replacement mode").choices(Object.values(DepsReplacementMode)))
33
- .addArgument(new Argument("[repoRoot]", "Repo root path").default(cwd()))
22
+ .addArgument(processModeArgument)
23
+ .addArgument(replacementModeArgument)
24
+ .addArgument(repoRootArgument)
34
25
  .action(async (mode, replacement, repoRoot) => runFixDeps({
35
26
  repoRoot: resolveRoot(repoRoot),
36
27
  mode,
37
28
  replacement,
38
29
  }));
39
- program
40
- .command("npm-publish")
41
- .description("Publish to npmjs")
42
- .addArgument(new Argument("[repoRoot]", "Repo root path").default(cwd()))
43
- .addArgument(new Argument("[workspacesName]", "Name of workspaces location").default("packages"))
44
- .action(async (repoRoot, workspacesName) => runNpmPublisher({
45
- packagesDir: join(resolveRoot(repoRoot), workspacesName),
46
- }));
47
- program
48
- .command("barrel")
49
- .description("Create barrel files")
50
- .addArgument(new Argument("[repoRoot]", "Repo root path").default(cwd()))
51
- .addArgument(new Argument("[workspacesName]", "Name of workspaces location").default("packages"))
52
- .action(async (repoRoot, workspacesName) => runBarrel({
53
- repoRoot,
54
- workspacesName,
55
- }));
56
- program
57
- .command("changeset")
58
- .description("Create changeset")
59
- .addArgument(new Argument("[repoRoot]", "Repo root path").default(cwd()))
60
- .addArgument(new Argument("[workspacesName]", "Name of workspaces location").default("packages"))
61
- .action(async (repoRoot, workspacesName) => runChangeset({
62
- repoRoot,
63
- workspacesName,
64
- }));
30
+ createPackagesCommand({
31
+ name: "npm-publish",
32
+ description: "Publish to npmjs",
33
+ prog: program,
34
+ run: runNpmPublisher,
35
+ });
36
+ createRepoRootWsCommand({
37
+ name: "barrel",
38
+ description: "Create barrel files",
39
+ prog: program,
40
+ run: runBarrel,
41
+ });
42
+ createRepoRootWsCommand({
43
+ name: "sync-versions",
44
+ description: "Sync package.json versions",
45
+ prog: program,
46
+ run: runSyncPkgVersion,
47
+ });
65
48
  // program
66
49
  // .command("extract-imports")
67
50
  // .description("Extract Typescript Imports")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/build-cli",
3
- "version": "0.2.14",
3
+ "version": "0.2.17",
4
4
  "description": "Build utilities CLI",
5
5
  "type": "module",
6
6
  "author": "MXPicture",
@@ -32,7 +32,8 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@mxpicture/build-api": "^0.2.14"
35
+ "@mxpicture/build-api": "^0.2.17",
36
+ "commander": "^14.0.3"
36
37
  },
37
38
  "devDependencies": {
38
39
  "@commander-js/extra-typings": "^14.0.0",