multi-dc 0.1.7 → 0.1.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/cli/cmd/init.go CHANGED
@@ -1,69 +1,73 @@
1
- package cmd
2
-
3
- import (
4
- "fmt"
5
- "os"
6
- "os/exec"
7
- "path/filepath"
8
-
9
- "github.com/spf13/cobra"
10
- )
11
-
12
- var (
13
- initDir string
14
- initLanguage string
15
- )
16
-
17
- var initCmd = &cobra.Command{
18
- Use: "init",
19
- Short: "Initialize a new multi-bot project",
20
- Long: "Creates a new multi-bot project with the specified directory and language.",
21
- RunE: func(cmd *cobra.Command, args []string) error {
22
- cliDir, err := os.Getwd()
23
- if err != nil {
24
- return err
25
- }
26
-
27
- runnerPath := filepath.Join(cliDir, "src", "init.js")
28
-
29
- if _, err := os.Stat(runnerPath); os.IsNotExist(err) {
30
- runnerPath = filepath.Join(cliDir, "dist", "init.js")
31
- }
32
-
33
- child := exec.Command(
34
- "node",
35
- "--import", "tsx",
36
- runnerPath,
37
- "--dir", initDir,
38
- "--lang", initLanguage,
39
- )
40
- child.Stdout = os.Stdout
41
- child.Stderr = os.Stderr
42
- child.Stdin = os.Stdin
43
-
44
- err = child.Run()
45
- if err != nil {
46
- return err
47
- }
48
-
49
- invocationDir := os.Getenv("INIT_CWD")
50
- if invocationDir == "" {
51
- invocationDir, _ = os.Getwd()
52
- }
53
-
54
- relativePath, _ := filepath.Rel(invocationDir, initDir)
55
- if relativePath == "" {
56
- relativePath = "."
57
- }
58
-
59
- fmt.Printf("[multi-dc] next: cd %s && npm install && npm run dev\n", relativePath)
60
-
61
- return nil
62
- },
63
- }
64
-
65
- func init() {
66
- rootCmd.AddCommand(initCmd)
67
- initCmd.Flags().StringVarP(&initDir, "dir", "d", "./multi-bot-project", "Directory to create the project in")
68
- initCmd.Flags().StringVarP(&initLanguage, "lang", "l", "ts", "Language to use (ts or js)")
69
- }
1
+ package cmd
2
+
3
+ import (
4
+ "fmt"
5
+ "os"
6
+ "os/exec"
7
+ "path/filepath"
8
+
9
+ "github.com/spf13/cobra"
10
+ )
11
+
12
+ var (
13
+ initDir string
14
+ initLanguage string
15
+ )
16
+
17
+ var initCmd = &cobra.Command{
18
+ Use: "init",
19
+ Short: "Initialize a new multi-bot project",
20
+ Long: "Creates a new multi-bot project with the specified directory and language.",
21
+ RunE: func(cmd *cobra.Command, args []string) error {
22
+ cliRoot := os.Getenv("MULTI_DC_CLI_ROOT")
23
+ if cliRoot == "" {
24
+ execPath, err := os.Executable()
25
+ if err != nil {
26
+ return err
27
+ }
28
+ cliRoot = filepath.Dir(execPath)
29
+ }
30
+
31
+ runnerPath := filepath.Join(cliRoot, "dist", "init.js")
32
+
33
+ child := exec.Command(
34
+ "node",
35
+ runnerPath,
36
+ "--dir", initDir,
37
+ "--lang", initLanguage,
38
+ )
39
+ child.Stdout = os.Stdout
40
+ child.Stderr = os.Stderr
41
+ child.Stdin = os.Stdin
42
+
43
+ err := child.Run()
44
+ if err != nil {
45
+ return err
46
+ }
47
+
48
+ invocationDir := os.Getenv("INIT_CWD")
49
+ if invocationDir == "" {
50
+ invocationDir, _ = os.Getwd()
51
+ }
52
+
53
+ targetDir := initDir
54
+ if !filepath.IsAbs(targetDir) {
55
+ targetDir = filepath.Join(invocationDir, targetDir)
56
+ }
57
+
58
+ relativePath, _ := filepath.Rel(invocationDir, targetDir)
59
+ if relativePath == "" {
60
+ relativePath = "."
61
+ }
62
+
63
+ fmt.Printf("[multi-dc] next: cd %s && npm install && npm run dev\n", relativePath)
64
+
65
+ return nil
66
+ },
67
+ }
68
+
69
+ func init() {
70
+ rootCmd.AddCommand(initCmd)
71
+ initCmd.Flags().StringVarP(&initDir, "dir", "d", "./multi-bot-project", "Directory to create the project in")
72
+ initCmd.Flags().StringVarP(&initLanguage, "lang", "l", "ts", "Language to use (ts or js)")
73
+ }
package/cli/cmd/root.go CHANGED
@@ -1,30 +1,41 @@
1
- package cmd
2
-
3
- import (
4
- "log"
5
-
6
- "github.com/spf13/cobra"
7
- )
8
-
9
- var rootCmd = &cobra.Command{
10
- Use: "multi-dc",
11
- Short: "Run multiple discord.js bots from separate folders in one Node.js process.",
12
- Long: `multi-dc is a CLI tool for running multiple discord.js bots from
13
- separate folders in a single Node.js process.
14
-
15
- Usage:
16
- multi-dc run [--config <file>]
17
- multi-dc init [--dir <folder>] [--lang ts|js]
18
-
19
- Examples:
20
- multi-dc run
21
- multi-dc run --config ./multi-discord.config.ts
22
- multi-dc init --dir ./my-bots --lang ts`,
23
- }
24
-
25
- func Execute() {
26
- err := rootCmd.Execute()
27
- if err != nil {
28
- log.Fatal(err)
29
- }
30
- }
1
+ package cmd
2
+
3
+ import (
4
+ "errors"
5
+ "fmt"
6
+ "os"
7
+ "os/exec"
8
+
9
+ "github.com/spf13/cobra"
10
+ )
11
+
12
+ var rootCmd = &cobra.Command{
13
+ Use: "multi-dc",
14
+ Short: "Run multiple discord.js bots from separate folders in one Node.js process.",
15
+ SilenceErrors: true,
16
+ SilenceUsage: true,
17
+ Long: `multi-dc is a CLI tool for running multiple discord.js bots from
18
+ separate folders in a single Node.js process.
19
+
20
+ Usage:
21
+ multi-dc run [--config <file>]
22
+ multi-dc init [--dir <folder>] [--lang ts|js]
23
+
24
+ Examples:
25
+ multi-dc run
26
+ multi-dc run --config ./multi-discord.config.ts
27
+ multi-dc init --dir ./my-bots --lang ts`,
28
+ }
29
+
30
+ func Execute() {
31
+ err := rootCmd.Execute()
32
+ if err != nil {
33
+ var exitErr *exec.ExitError
34
+ if errors.As(err, &exitErr) {
35
+ os.Exit(exitErr.ExitCode())
36
+ }
37
+
38
+ fmt.Fprintln(os.Stderr, err)
39
+ os.Exit(1)
40
+ }
41
+ }
package/cli/cmd/run.go CHANGED
@@ -1,86 +1,89 @@
1
- package cmd
2
-
3
- import (
4
- "os"
5
- "os/exec"
6
- "path/filepath"
7
-
8
- "github.com/spf13/cobra"
9
- )
10
-
11
- var runCmd = &cobra.Command{
12
- Use: "run",
13
- Short: "Run the multi-bot configuration",
14
- Long: "Runs the configured bots from the multi-discord.config file.",
15
- RunE: func(cmd *cobra.Command, args []string) error {
16
- configPath, err := cmd.Flags().GetString("config")
17
- if err != nil {
18
- return err
19
- }
20
-
21
- if configPath == "" {
22
- configPath, err = resolveDefaultConfigPath()
23
- if err != nil {
24
- return err
25
- }
26
- if configPath == "" {
27
- os.Stderr.WriteString("No config file found. Expected one of:\n- multi-discord.config.ts\n- multi-discord.config.js\n")
28
- os.Exit(1)
29
- }
30
- }
31
-
32
- cliDir, err := os.Getwd()
33
- if err != nil {
34
- return err
35
- }
36
-
37
- runnerPath := filepath.Join(cliDir, "src", "internal-runner.js")
38
-
39
- child := exec.Command(
40
- "node",
41
- "--import", "tsx",
42
- runnerPath,
43
- "--config", configPath,
44
- )
45
- child.Stdout = os.Stdout
46
- child.Stderr = os.Stderr
47
- child.Stdin = os.Stdin
48
-
49
- sigChan := make(chan os.Signal, 1)
50
- go func() {
51
- <-sigChan
52
- if child.Process != nil {
53
- child.Process.Kill()
54
- }
55
- }()
56
-
57
- err = child.Run()
58
- if err != nil {
59
- return err
60
- }
61
-
62
- return nil
63
- },
64
- }
65
-
66
- func resolveDefaultConfigPath() (string, error) {
67
- configFiles := []string{
68
- "multi-discord.config.ts",
69
- "multi-discord.config.js",
70
- "multi-discord.config.mts",
71
- "multi-discord.config.mjs",
72
- }
73
-
74
- for _, configFile := range configFiles {
75
- if _, err := os.Stat(configFile); err == nil {
76
- return configFile, nil
77
- }
78
- }
79
-
80
- return "", nil
81
- }
82
-
83
- func init() {
84
- rootCmd.AddCommand(runCmd)
85
- runCmd.Flags().StringP("config", "c", "", "Path to config file")
86
- }
1
+ package cmd
2
+
3
+ import (
4
+ "os"
5
+ "os/exec"
6
+ "path/filepath"
7
+
8
+ "github.com/spf13/cobra"
9
+ )
10
+
11
+ var runCmd = &cobra.Command{
12
+ Use: "run",
13
+ Short: "Run the multi-bot configuration",
14
+ Long: "Runs the configured bots from the multi-discord.config file.",
15
+ RunE: func(cmd *cobra.Command, args []string) error {
16
+ configPath, err := cmd.Flags().GetString("config")
17
+ if err != nil {
18
+ return err
19
+ }
20
+
21
+ if configPath == "" {
22
+ configPath, err = resolveDefaultConfigPath()
23
+ if err != nil {
24
+ return err
25
+ }
26
+ if configPath == "" {
27
+ os.Stderr.WriteString("No config file found. Expected one of:\n- multi-discord.config.ts\n- multi-discord.config.js\n")
28
+ os.Exit(1)
29
+ }
30
+ }
31
+
32
+ cliRoot := os.Getenv("MULTI_DC_CLI_ROOT")
33
+ if cliRoot == "" {
34
+ execPath, err := os.Executable()
35
+ if err != nil {
36
+ return err
37
+ }
38
+ cliRoot = filepath.Dir(execPath)
39
+ }
40
+
41
+ runnerPath := filepath.Join(cliRoot, "dist", "internal-runner.js")
42
+
43
+ child := exec.Command(
44
+ "node",
45
+ runnerPath,
46
+ "--config", configPath,
47
+ )
48
+ child.Stdout = os.Stdout
49
+ child.Stderr = os.Stderr
50
+ child.Stdin = os.Stdin
51
+
52
+ sigChan := make(chan os.Signal, 1)
53
+ go func() {
54
+ <-sigChan
55
+ if child.Process != nil {
56
+ child.Process.Kill()
57
+ }
58
+ }()
59
+
60
+ err = child.Run()
61
+ if err != nil {
62
+ return err
63
+ }
64
+
65
+ return nil
66
+ },
67
+ }
68
+
69
+ func resolveDefaultConfigPath() (string, error) {
70
+ configFiles := []string{
71
+ "multi-discord.config.ts",
72
+ "multi-discord.config.js",
73
+ "multi-discord.config.mts",
74
+ "multi-discord.config.mjs",
75
+ }
76
+
77
+ for _, configFile := range configFiles {
78
+ if _, err := os.Stat(configFile); err == nil {
79
+ return configFile, nil
80
+ }
81
+ }
82
+
83
+ return "", nil
84
+ }
85
+
86
+ func init() {
87
+ rootCmd.AddCommand(runCmd)
88
+ runCmd.Flags().StringP("config", "c", "", "Path to config file")
89
+ }
package/cli-wrapper.cjs CHANGED
@@ -9,19 +9,29 @@ if (platform === "win32") {
9
9
  binaryName = "multi-dc.exe";
10
10
  }
11
11
 
12
- const binaryPath = path.join(__dirname, "cli", binaryName);
13
-
14
- if (!fs.existsSync(binaryPath)) {
15
- console.error(`Error: CLI binary not found at ${binaryPath}`);
12
+ const cliPath = path.join(__dirname, "cli", binaryName);
13
+ const distPath = path.join(__dirname, "dist", "internal-runner.js");
14
+
15
+ if (!fs.existsSync(cliPath)) {
16
+ console.error(`Error: CLI binary not found at ${cliPath}`);
16
17
  console.error("Please run: npm run build:cli");
17
18
  process.exit(1);
18
19
  }
19
20
 
21
+ if (!fs.existsSync(distPath)) {
22
+ console.error(`Error: Dist folder not found at ${distPath}`);
23
+ console.error("Please run: npm run build");
24
+ process.exit(1);
25
+ }
26
+
20
27
  const { spawn } = require("child_process");
21
28
  const args = process.argv.slice(2);
22
- const child = spawn(binaryPath, args, {
29
+
30
+ const child = spawn(cliPath, args, {
23
31
  stdio: "inherit",
24
32
  shell: platform === "win32",
33
+ cwd: process.cwd(),
34
+ env: { ...process.env, MULTI_DC_CLI_ROOT: __dirname },
25
35
  });
26
36
 
27
37
  child.on("exit", (code) => {
package/dist/init.js CHANGED
@@ -108,4 +108,33 @@ export async function initProject(options) {
108
108
  await writeProjectFiles(targetDir, options.language);
109
109
  return targetDir;
110
110
  }
111
+ function parseInitArgs(argv) {
112
+ let dir = "./multi-bot-project";
113
+ let language = "ts";
114
+ for (let index = 0; index < argv.length; index += 1) {
115
+ const current = argv[index];
116
+ const next = argv[index + 1];
117
+ if ((current === "--dir" || current === "-d") && next) {
118
+ dir = next;
119
+ index += 1;
120
+ continue;
121
+ }
122
+ if ((current === "--lang" || current === "-l") && next) {
123
+ if (next === "ts" || next === "js") {
124
+ language = next;
125
+ index += 1;
126
+ continue;
127
+ }
128
+ throw new Error(`Unsupported language "${next}". Expected "ts" or "js".`);
129
+ }
130
+ }
131
+ return { dir, language };
132
+ }
133
+ async function main() {
134
+ await initProject(parseInitArgs(process.argv.slice(2)));
135
+ }
136
+ main().catch((error) => {
137
+ process.stderr.write(`[multi-dc] ${String(error)}\n`);
138
+ process.exit(1);
139
+ });
111
140
  //# sourceMappingURL=init.js.map
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAKpC,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjD;AA0HD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,aAAa,SAAgB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpE;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,SAAgB,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMpC,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjD;AA+JD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,aAAa,SAAgB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpE;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAoBxB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,SAAgB,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
package/dist/runtime.js CHANGED
@@ -2,6 +2,7 @@ import { Client } from "discord.js";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
+ import { tsImport } from "tsx/esm/api";
5
6
  import { DEFAULT_BOT_ENTRIES, DEFAULT_CONFIG_FILES } from "./constants.js";
6
7
  import { fileExists, resolveFrom, withDotSlash } from "./utils.js";
7
8
  async function resolveEntryFile(projectRoot, configuredEntry) {
@@ -21,14 +22,42 @@ async function resolveEntryFile(projectRoot, configuredEntry) {
21
22
  throw new Error(`Could not find a bot entry in ${projectRoot}. Checked: ${DEFAULT_BOT_ENTRIES.join(", ")}`);
22
23
  }
23
24
  async function loadClientFactory(entryFile) {
24
- const moduleUrl = pathToFileURL(entryFile).href;
25
- const imported = (await import(moduleUrl));
25
+ const imported = (await importProjectModule(entryFile));
26
26
  const factory = imported.createBotClient ?? imported.default;
27
27
  if (typeof factory !== "function") {
28
28
  throw new Error(`Bot module "${entryFile}" must export a function named "createBotClient" or a default function.`);
29
29
  }
30
30
  return factory;
31
31
  }
32
+ async function resolveNearestTsconfig(entryPath) {
33
+ let currentDir = path.dirname(entryPath);
34
+ while (true) {
35
+ for (const filename of ["tsconfig.json", "jsconfig.json"]) {
36
+ const candidate = path.join(currentDir, filename);
37
+ if (await fileExists(candidate)) {
38
+ return candidate;
39
+ }
40
+ }
41
+ const parentDir = path.dirname(currentDir);
42
+ if (parentDir === currentDir) {
43
+ return undefined;
44
+ }
45
+ currentDir = parentDir;
46
+ }
47
+ }
48
+ async function importProjectModule(modulePath) {
49
+ const moduleUrl = pathToFileURL(modulePath).href;
50
+ const tsconfigPath = await resolveNearestTsconfig(modulePath);
51
+ if (tsconfigPath) {
52
+ return tsImport(moduleUrl, {
53
+ parentURL: import.meta.url,
54
+ tsconfig: tsconfigPath,
55
+ });
56
+ }
57
+ return tsImport(moduleUrl, {
58
+ parentURL: import.meta.url,
59
+ });
60
+ }
32
61
  function parseEnvLine(line) {
33
62
  const trimmed = line.trim();
34
63
  if (!trimmed || trimmed.startsWith("#")) {
@@ -118,8 +147,7 @@ export async function shutdownBots(bots) {
118
147
  }
119
148
  export async function runBotsFromConfigFile(configPath) {
120
149
  const absoluteConfigPath = path.resolve(process.cwd(), configPath);
121
- const configModuleUrl = pathToFileURL(absoluteConfigPath).href;
122
- const imported = (await import(configModuleUrl));
150
+ const imported = (await importProjectModule(absoluteConfigPath));
123
151
  const config = imported.default;
124
152
  if (!config || !Array.isArray(config.bots)) {
125
153
  throw new Error(`Config file "${configPath}" must default-export { bots: [...] }`);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multi-dc",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Run multiple discord.js bots from separate folders in one Node.js process.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",