summaryrefslogtreecommitdiffhomepage
path: root/tpl/resources/resources.go
diff options
context:
space:
mode:
Diffstat (limited to 'tpl/resources/resources.go')
-rw-r--r--tpl/resources/resources.go53
1 files changed, 38 insertions, 15 deletions
diff --git a/tpl/resources/resources.go b/tpl/resources/resources.go
index 90fb58b4b..c256fa903 100644
--- a/tpl/resources/resources.go
+++ b/tpl/resources/resources.go
@@ -34,6 +34,7 @@ import (
"github.com/gohugoio/hugo/resources/resource_transformers/postcss"
"github.com/gohugoio/hugo/resources/resource_transformers/templates"
"github.com/gohugoio/hugo/resources/resource_transformers/tocss/scss"
+ "github.com/gohugoio/hugo/resources/resource_transformers/transpilejs"
"github.com/spf13/cast"
)
@@ -54,14 +55,15 @@ func New(deps *deps.Deps) (*Namespace, error) {
}
return &Namespace{
- deps: deps,
- scssClient: scssClient,
- createClient: create.New(deps.ResourceSpec),
- bundlerClient: bundler.New(deps.ResourceSpec),
- integrityClient: integrity.New(deps.ResourceSpec),
- minifyClient: minifyClient,
- postcssClient: postcss.New(deps.ResourceSpec),
- templatesClient: templates.New(deps.ResourceSpec, deps),
+ deps: deps,
+ scssClient: scssClient,
+ createClient: create.New(deps.ResourceSpec),
+ bundlerClient: bundler.New(deps.ResourceSpec),
+ integrityClient: integrity.New(deps.ResourceSpec),
+ minifyClient: minifyClient,
+ postcssClient: postcss.New(deps.ResourceSpec),
+ templatesClient: templates.New(deps.ResourceSpec, deps),
+ transpileJSClient: transpilejs.New(deps.ResourceSpec),
}, nil
}
@@ -69,13 +71,14 @@ func New(deps *deps.Deps) (*Namespace, error) {
type Namespace struct {
deps *deps.Deps
- createClient *create.Client
- bundlerClient *bundler.Client
- scssClient *scss.Client
- integrityClient *integrity.Client
- minifyClient *minifier.Client
- postcssClient *postcss.Client
- templatesClient *templates.Client
+ createClient *create.Client
+ bundlerClient *bundler.Client
+ scssClient *scss.Client
+ integrityClient *integrity.Client
+ minifyClient *minifier.Client
+ postcssClient *postcss.Client
+ transpileJSClient *transpilejs.Client
+ templatesClient *templates.Client
}
// Get locates the filename given in Hugo's assets filesystem
@@ -277,6 +280,26 @@ func (ns *Namespace) PostCSS(args ...interface{}) (resource.Resource, error) {
func (ns *Namespace) PostProcess(r resource.Resource) (postpub.PostPublishedResource, error) {
return ns.deps.ResourceSpec.PostProcess(r)
+
+}
+
+// TranspileJS processes the given Resource with Babel.
+func (ns *Namespace) TranspileJS(args ...interface{}) (resource.Resource, error) {
+ r, m, err := ns.resolveArgs(args)
+ if err != nil {
+ return nil, err
+ }
+ var options transpilejs.Options
+ if m != nil {
+ options, err = transpilejs.DecodeOptions(m)
+
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ return ns.transpileJSClient.Process(r, options)
+
}
// We allow string or a map as the first argument in some cases.