From 19126c35fc78dd0b38c5d3d0e6c98745c96d3819 Mon Sep 17 00:00:00 2001 From: Michael Rawlings Date: Thu, 1 Jun 2017 15:22:30 -0700 Subject: [PATCH] fixes #688 - add reference to browser.json in meta dependencies --- .../taglib/TransformHelper/getComponentFiles.js | 6 +++++- .../taglib/TransformHelper/handleRootNodes.js | 4 ++++ .../browser-json-dependency/browser.json | 1 + .../browser-json-dependency/expected.js | 17 +++++++++++++++++ .../browser-json-dependency/index.marko | 1 + 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test/autotests/components-compilation/browser-json-dependency/browser.json create mode 100644 test/autotests/components-compilation/browser-json-dependency/expected.js create mode 100644 test/autotests/components-compilation/browser-json-dependency/index.marko diff --git a/src/components/taglib/TransformHelper/getComponentFiles.js b/src/components/taglib/TransformHelper/getComponentFiles.js index ec2993a79..f395929ab 100644 --- a/src/components/taglib/TransformHelper/getComponentFiles.js +++ b/src/components/taglib/TransformHelper/getComponentFiles.js @@ -17,13 +17,15 @@ function getComponentFiles(filename) { var styleMatch = new RegExp('^'+fileMatch+'style\\.\\w+$'); var componentMatch = new RegExp('^'+fileMatch+'component\\.\\w+$'); var splitComponentMatch = new RegExp('^'+fileMatch+'component-browser\\.\\w+$'); + var packageMatch = new RegExp('^'+fileMatch+'browser\\.\\json$'); var dirname = path.dirname(filename); var foundFiles = { styles: [], file: null, - browserFile: null + browserFile: null, + package: null }; var dirFiles = fs.readdirSync(dirname); @@ -38,6 +40,8 @@ function getComponentFiles(filename) { foundFiles.browserFile = file; } else if (componentMatch.test(file)) { foundFiles.file = file; + } else if (packageMatch.test(file)) { + foundFiles.package = file; } } diff --git a/src/components/taglib/TransformHelper/handleRootNodes.js b/src/components/taglib/TransformHelper/handleRootNodes.js index dc3aacfc8..d4f972e89 100644 --- a/src/components/taglib/TransformHelper/handleRootNodes.js +++ b/src/components/taglib/TransformHelper/handleRootNodes.js @@ -157,6 +157,10 @@ module.exports = function handleRootNodes() { context.addDependency('./' + styleFile); }); + if (componentFiles.package) { + context.addDependency('package: ./' + componentFiles.package); + } + if (componentFiles.file) { let file = componentFiles.file; diff --git a/test/autotests/components-compilation/browser-json-dependency/browser.json b/test/autotests/components-compilation/browser-json-dependency/browser.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/browser.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/autotests/components-compilation/browser-json-dependency/expected.js b/test/autotests/components-compilation/browser-json-dependency/expected.js new file mode 100644 index 000000000..110662787 --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/expected.js @@ -0,0 +1,17 @@ +"use strict"; + +var marko_template = module.exports = require("marko/src/html").t(__filename); + +function render(input, out) { + var data = input; + + out.w("YOLO"); +} + +marko_template._ = render; + +marko_template.meta = { + deps: [ + "package: ./browser.json" + ] + }; diff --git a/test/autotests/components-compilation/browser-json-dependency/index.marko b/test/autotests/components-compilation/browser-json-dependency/index.marko new file mode 100644 index 000000000..ee6b6478e --- /dev/null +++ b/test/autotests/components-compilation/browser-json-dependency/index.marko @@ -0,0 +1 @@ +-- YOLO \ No newline at end of file