diff options
| author | ewy <ewy0@protonmail.com> | 2026-05-02 18:28:40 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-05-02 18:28:40 +0200 |
| commit | e8b9ca135642c76000bc0ec2e78674c602a748dd (patch) | |
| tree | 4e502ce767a4a4f70e40d6e72a3817bc139f1300 /runner/js/indexer.go | |
| parent | 35e6ac334f6a62cf63b743182cd5355f6baf4406 (diff) | |
add .js and .ts support
also: remove unused/duplicate method runner.Hydrate
Diffstat (limited to 'runner/js/indexer.go')
| -rw-r--r-- | runner/js/indexer.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/runner/js/indexer.go b/runner/js/indexer.go new file mode 100644 index 0000000..8a2a6b2 --- /dev/null +++ b/runner/js/indexer.go @@ -0,0 +1,39 @@ +package js + +import ( + "encoding/json" + "errors" + "github.com/ewy1/pik/model" + "io/fs" + "os" + "path/filepath" +) + +type Package struct { + Scripts map[string]string `json:"scripts"` +} + +func (n *js) Index(path string, f fs.FS, runners []model.Runner) ([]model.Target, error) { + p := &Package{} + // are there any other package.jsons? i hope not, because i don't know them + content, err := os.ReadFile(filepath.Join(path, "package.json")) + if errors.Is(err, fs.ErrNotExist) { + return nil, nil + } else if err != nil { + return nil, err + } + err = json.Unmarshal(content, p) + if err != nil { + return nil, err + } + + var targets []model.Target + if n.Npm == "" { + return nil, NoNpm + } + for k, s := range p.Scripts { + targets = append(targets, n.CreateRun(k, s)) + } + + return targets, nil +} |
