2024-03-15 22:32:19 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"apigo.cloud/git/apigo/gojs"
|
|
|
|
"apigo.cloud/git/apigo/plugin"
|
|
|
|
"fmt"
|
|
|
|
"github.com/ssgo/u"
|
|
|
|
"path"
|
2024-03-16 22:54:11 +08:00
|
|
|
"strings"
|
|
|
|
{{- range.imports}}
|
|
|
|
_ "{{.}}"
|
|
|
|
{{- end}}
|
2024-03-15 22:32:19 +08:00
|
|
|
)
|
|
|
|
|
2024-03-16 22:54:11 +08:00
|
|
|
const consoleModuleCode = `export default {
|
|
|
|
"log": function (...args: any): void {return},
|
|
|
|
"info": function (...args: any): void {return},
|
|
|
|
"warn": function (...args: any): void {return},
|
|
|
|
"error": function (...args: any): void {return},
|
|
|
|
"input": function (): string {return},
|
|
|
|
}`
|
|
|
|
|
|
|
|
const loggerModuleCode = `export default {
|
|
|
|
"debug": function (message: string, ext?: Object): void {return},
|
|
|
|
"info": function (message: string, ext?: Object): void {return},
|
|
|
|
"warn": function (message: string, ext?: Object): void {return},
|
|
|
|
"error": function (message: string, ext?: Object): void {return},
|
|
|
|
}`
|
|
|
|
|
|
|
|
func writeModule(id, name, code string, modules *[]string, imports *[]string) {
|
|
|
|
idParts := strings.Split(id, "/")
|
|
|
|
filename := path.Join("node_modules", path.Join(idParts...)+u.StringIf(len(idParts) == 1, "/index.ts", ".ts"))
|
|
|
|
if err := u.WriteFile("../"+filename, code); err != nil {
|
|
|
|
fmt.Println(u.Cyan(id), "-", name, u.BRed(err.Error()))
|
|
|
|
} else {
|
|
|
|
fmt.Println(u.Cyan(id), "-", name, u.BGreen("OK"), u.Dim(">> "+filename))
|
|
|
|
(*modules) = u.AppendUniqueString(*modules, fmt.Sprint("\"", idParts[0], "\": \"v0.0.0\""))
|
|
|
|
(*imports) = u.AppendUniqueString(*imports, fmt.Sprint("import ", idParts[len(idParts)-1], " from '"+id+"'"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-03-15 22:32:19 +08:00
|
|
|
func main() {
|
2024-03-16 22:54:11 +08:00
|
|
|
modules := make([]string, 0)
|
|
|
|
imports := make([]string, 0)
|
|
|
|
writeModule("console", "终端工具", consoleModuleCode, &modules, &imports)
|
|
|
|
writeModule("logger", "日志工具", loggerModuleCode, &modules, &imports)
|
2024-03-15 22:32:19 +08:00
|
|
|
for _, plg := range plugin.List() {
|
2024-03-16 22:54:11 +08:00
|
|
|
if code := gojs.MakePluginCode(&plg); code != "" {
|
|
|
|
writeModule(plg.Id, plg.Name, code, &modules, &imports)
|
2024-03-15 22:32:19 +08:00
|
|
|
}
|
|
|
|
}
|
2024-03-16 22:54:11 +08:00
|
|
|
_ = u.WriteFile("../package.json", "{\n \"devDependencies\": {\n "+strings.Join(modules, ",\n ")+"\n }\n}")
|
|
|
|
fmt.Println()
|
|
|
|
fmt.Println("Usage:")
|
|
|
|
fmt.Println(" " + u.Magenta(strings.Join(imports, "\n ")))
|
2024-03-15 22:32:19 +08:00
|
|
|
}
|