From e8b9ca135642c76000bc0ec2e78674c602a748dd Mon Sep 17 00:00:00 2001 From: ewy Date: Sat, 2 May 2026 18:28:40 +0200 Subject: add .js and .ts support also: remove unused/duplicate method runner.Hydrate --- runner/js/target_script.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 runner/js/target_script.go (limited to 'runner/js/target_script.go') diff --git a/runner/js/target_script.go b/runner/js/target_script.go new file mode 100644 index 0000000..6ad213d --- /dev/null +++ b/runner/js/target_script.go @@ -0,0 +1,55 @@ +package js + +import ( + "github.com/ewy1/pik/describe" + "github.com/ewy1/pik/model" + "github.com/ewy1/pik/runner" + "github.com/ewy1/pik/spool" + "os/exec" + "path/filepath" +) + +type Script struct { + runner.BaseTarget + Typed bool +} + +func (t *Script) Icon() string { + if t.Typed { + return "\uE628" + } else { + return "\uE60C" + } +} + +func (t *Script) Description(src *model.HydratedSource) string { + d, err := describe.Describe(t, t.File(src.Source)) + if err != nil { + _, _ = spool.Warn("%v\n", err) + } + return d +} + +func (t *Script) Target() model.Target { + return t +} + +func (t *Script) Create(s *model.Source) *exec.Cmd { + if t.Typed { + return exec.Command(Js.TsInterpreter, t.File(s)) + } else { + return exec.Command(Js.JsInterpreter, t.File(s)) + } +} + +func (t *Script) Label() string { + return t.Identity.Full +} + +func (t *Script) Hydrate(src *model.Source) (model.HydratedTarget, error) { + return t, nil +} + +func (t *Script) File(src *model.Source) string { + return filepath.Join(src.Path, "package.json") +} -- cgit v1.3.1