summaryrefslogtreecommitdiff
path: root/runner/js/runner.go
diff options
context:
space:
mode:
Diffstat (limited to 'runner/js/runner.go')
-rw-r--r--runner/js/runner.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/runner/js/runner.go b/runner/js/runner.go
new file mode 100644
index 0000000..8b5f4f1
--- /dev/null
+++ b/runner/js/runner.go
@@ -0,0 +1,28 @@
+package js
+
+import (
+ "github.com/ewy1/pik/identity"
+ "github.com/ewy1/pik/model"
+ "github.com/ewy1/pik/runner"
+ "io/fs"
+ "path/filepath"
+ "slices"
+)
+
+func (n *js) Wants(fs fs.FS, file string, entry fs.DirEntry) (bool, error) {
+ ext := filepath.Ext(entry.Name())
+ return slices.Contains(extensions, ext), nil
+}
+
+func (n *js) CreateTarget(fs fs.FS, source string, file string, entry fs.DirEntry) (model.Target, error) {
+ ext := filepath.Ext(entry.Name())
+ typed := slices.Contains(tsExtensions, ext)
+ return &Script{
+ BaseTarget: runner.BaseTarget{
+ Identity: identity.New(entry.Name()),
+ MyTags: model.TagsFromFilename(entry.Name()),
+ MySub: runner.SubFromFile(file),
+ },
+ Typed: typed,
+ }, nil
+}