multi-dc 0.1.7 → 0.1.9
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 +73 -69
- package/cli/cmd/root.go +41 -30
- package/cli/cmd/run.go +89 -86
- package/cli-wrapper.cjs +15 -5
- package/dist/init.js +29 -0
- package/dist/init.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +43 -7
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -1
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
|
-
|
|
23
|
-
if
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
child := exec.Command(
|
|
34
|
-
"node",
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"--
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
child.
|
|
41
|
-
child.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
err
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
invocationDir
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
"
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
multi-dc run --config
|
|
22
|
-
multi-dc init --dir
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
33
|
-
if
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"multi-discord.config.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/runtime.d.ts
CHANGED
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,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;AA4KD,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
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import { Client } from "discord.js";
|
|
2
1
|
import { readFile } from "node:fs/promises";
|
|
3
2
|
import path from "node:path";
|
|
4
3
|
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { tsImport } from "tsx/esm/api";
|
|
5
5
|
import { DEFAULT_BOT_ENTRIES, DEFAULT_CONFIG_FILES } from "./constants.js";
|
|
6
6
|
import { fileExists, resolveFrom, withDotSlash } from "./utils.js";
|
|
7
|
+
function isDiscordClientLike(value) {
|
|
8
|
+
if (!value || typeof value !== "object") {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const candidate = value;
|
|
12
|
+
return (typeof candidate.login === "function" &&
|
|
13
|
+
typeof candidate.destroy === "function" &&
|
|
14
|
+
typeof candidate.once === "function");
|
|
15
|
+
}
|
|
7
16
|
async function resolveEntryFile(projectRoot, configuredEntry) {
|
|
8
17
|
if (configuredEntry) {
|
|
9
18
|
const resolved = resolveFrom(projectRoot, configuredEntry);
|
|
@@ -21,14 +30,42 @@ async function resolveEntryFile(projectRoot, configuredEntry) {
|
|
|
21
30
|
throw new Error(`Could not find a bot entry in ${projectRoot}. Checked: ${DEFAULT_BOT_ENTRIES.join(", ")}`);
|
|
22
31
|
}
|
|
23
32
|
async function loadClientFactory(entryFile) {
|
|
24
|
-
const
|
|
25
|
-
const imported = (await import(moduleUrl));
|
|
33
|
+
const imported = (await importProjectModule(entryFile));
|
|
26
34
|
const factory = imported.createBotClient ?? imported.default;
|
|
27
35
|
if (typeof factory !== "function") {
|
|
28
36
|
throw new Error(`Bot module "${entryFile}" must export a function named "createBotClient" or a default function.`);
|
|
29
37
|
}
|
|
30
38
|
return factory;
|
|
31
39
|
}
|
|
40
|
+
async function resolveNearestTsconfig(entryPath) {
|
|
41
|
+
let currentDir = path.dirname(entryPath);
|
|
42
|
+
while (true) {
|
|
43
|
+
for (const filename of ["tsconfig.json", "jsconfig.json"]) {
|
|
44
|
+
const candidate = path.join(currentDir, filename);
|
|
45
|
+
if (await fileExists(candidate)) {
|
|
46
|
+
return candidate;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const parentDir = path.dirname(currentDir);
|
|
50
|
+
if (parentDir === currentDir) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
currentDir = parentDir;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function importProjectModule(modulePath) {
|
|
57
|
+
const moduleUrl = pathToFileURL(modulePath).href;
|
|
58
|
+
const tsconfigPath = await resolveNearestTsconfig(modulePath);
|
|
59
|
+
if (tsconfigPath) {
|
|
60
|
+
return tsImport(moduleUrl, {
|
|
61
|
+
parentURL: import.meta.url,
|
|
62
|
+
tsconfig: tsconfigPath,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return tsImport(moduleUrl, {
|
|
66
|
+
parentURL: import.meta.url,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
32
69
|
function parseEnvLine(line) {
|
|
33
70
|
const trimmed = line.trim();
|
|
34
71
|
if (!trimmed || trimmed.startsWith("#")) {
|
|
@@ -80,8 +117,8 @@ async function startBot(project, workspaceRoot, botsBasePath) {
|
|
|
80
117
|
rootPath: projectRoot,
|
|
81
118
|
};
|
|
82
119
|
const client = await factory(ctx);
|
|
83
|
-
if (!(client
|
|
84
|
-
throw new Error(`Bot "${project.name}" did not return a discord.js Client
|
|
120
|
+
if (!isDiscordClientLike(client)) {
|
|
121
|
+
throw new Error(`Bot "${project.name}" did not return a discord.js Client-compatible object.`);
|
|
85
122
|
}
|
|
86
123
|
await client.login(token);
|
|
87
124
|
return { name: project.name, client };
|
|
@@ -118,8 +155,7 @@ export async function shutdownBots(bots) {
|
|
|
118
155
|
}
|
|
119
156
|
export async function runBotsFromConfigFile(configPath) {
|
|
120
157
|
const absoluteConfigPath = path.resolve(process.cwd(), configPath);
|
|
121
|
-
const
|
|
122
|
-
const imported = (await import(configModuleUrl));
|
|
158
|
+
const imported = (await importProjectModule(absoluteConfigPath));
|
|
123
159
|
const config = imported.default;
|
|
124
160
|
if (!config || !Array.isArray(config.bots)) {
|
|
125
161
|
throw new Error(`Config file "${configPath}" must default-export { bots: [...] }`);
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
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.
|
|
3
|
+
"version": "0.1.9",
|
|
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",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"type": "module",
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"discord.js": "^14.19.3",
|
|
37
|
+
"multi-dc": "^0.1.8",
|
|
37
38
|
"tsx": "^4.20.3"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|