diff options
Diffstat (limited to 'tpl/resources/resources.go')
-rw-r--r-- | tpl/resources/resources.go | 53 |
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. |