marko 4.27.0 → 4.28.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -103,6 +103,7 @@ const helpers = {
103
103
  forIn: "marko/runtime/helpers/for-in",
104
104
  forRange: "marko/runtime/helpers/for-range",
105
105
  getWidgetFromOut: "marko/runtime/components/legacy/helper-getWidgetFromOut",
106
+ interopRequireDefault: "marko/runtime/helpers/interop-require",
106
107
  loadNestedTag: "marko/runtime/helpers/load-nested-tag",
107
108
  loadTag: "marko/runtime/helpers/load-tag",
108
109
  loadTemplate: "marko/runtime/helpers/load-template",
@@ -94,7 +94,7 @@ module.exports = function handleComponentBind(options) {
94
94
  if (rendererModule.inlineId) {
95
95
  markoComponentVar = rendererModule.inlineId;
96
96
  } else if (!isImplicitComponent) {
97
- markoComponentVar = context.addStaticVar("marko_component", builder.require(builder.literal(rendererModule.requirePath)));
97
+ markoComponentVar = context.addStaticVar("marko_component", builder.functionCall(context.helper("interopRequireDefault"), [builder.require(builder.literal(rendererModule.requirePath))]));
98
98
  }
99
99
  }
100
100
 
@@ -27,6 +27,8 @@ var deferredDefs;
27
27
  var pendingDefs;
28
28
 
29
29
  function register(type, def) {
30
+ if (def.default) def = def.default;
31
+
30
32
  var pendingForType;
31
33
  if (pendingDefs) {
32
34
  pendingForType = pendingDefs[type];
@@ -5,6 +5,7 @@ var changeCase = require("./_change-case");
5
5
  var ComponentsContext = require("../components/ComponentsContext");
6
6
  var getComponentsContext = ComponentsContext.U_;
7
7
  var ComponentDef = require("../components/ComponentDef");
8
+ var interopRequire = require("./interop-require");
8
9
  var w10NOOP = require("warp10/constants").NOOP;
9
10
  var RENDER_BODY_TO_JSON = function () {
10
11
  return w10NOOP;
@@ -44,6 +45,8 @@ module.exports = function dynamicTag(out, tag, getAttrs, renderBody, args, props
44
45
  }
45
46
  }
46
47
 
48
+ tag = interopRequire(tag);
49
+
47
50
  var renderer = tag._ || (tag.renderer ? tag.renderer.renderer || tag.renderer : tag.render);
48
51
 
49
52
  // eslint-disable-next-line no-constant-condition
@@ -0,0 +1,3 @@
1
+ module.exports = function interopRequireDefault(mod) {
2
+ return mod.default || mod;
3
+ };
@@ -124,7 +124,7 @@ function find(dirname, registeredTaglibs) {
124
124
  if (!excludedPackages[name]) {
125
125
  let taglibPath = resolveFrom(rootPkg.__dirname, name + "/marko.json");
126
126
  if (taglibPath) {
127
- var taglib = taglibLoader.loadTaglibFromFile(taglibPath);
127
+ var taglib = taglibLoader.loadTaglibFromFile(taglibPath, true);
128
128
  helper.addTaglib(taglib);
129
129
  }
130
130
  }
@@ -28,9 +28,10 @@ function handleImport(taglib, importedTaglib) {
28
28
  }
29
29
 
30
30
  class Taglib {
31
- constructor(filePath) {
31
+ constructor(filePath, isFromPackageJson) {
32
32
  ok(filePath, '"filePath" expected');
33
33
  this.filePath = this.path /* deprecated */ = this.id = filePath;
34
+ this.isFromPackageJson = isFromPackageJson === true;
34
35
  this.dirname = path.dirname(this.filePath);
35
36
  this.tags = {};
36
37
  this.textTransformers = [];
@@ -8,8 +8,8 @@ function loadTaglibFromProps(taglib, taglibProps) {
8
8
  return loaders.loadTaglibFromProps(taglib, taglibProps);
9
9
  }
10
10
 
11
- function loadTaglibFromFile(filePath) {
12
- return loaders.loadTaglibFromFile(filePath);
11
+ function loadTaglibFromFile(filePath, isFromPackageJson) {
12
+ return loaders.loadTaglibFromFile(filePath, isFromPackageJson);
13
13
  }
14
14
 
15
15
  function loadTaglibFromDir(filePath) {
@@ -5,7 +5,7 @@ var loaders = require("./loaders");
5
5
 
6
6
  var ok = require("assert").ok;
7
7
 
8
- function loadFromFile(filePath) {
8
+ function loadFromFile(filePath, isFromPackageJson) {
9
9
  ok(filePath, '"filePath" is required');
10
10
 
11
11
  var taglib = cache.get(filePath);
@@ -13,7 +13,7 @@ function loadFromFile(filePath) {
13
13
  // Only load a taglib once by caching the loaded taglibs using the file
14
14
  // system file path as the key
15
15
  if (!taglib) {
16
- taglib = new types.Taglib(filePath);
16
+ taglib = new types.Taglib(filePath, isFromPackageJson);
17
17
  cache.put(filePath, taglib);
18
18
 
19
19
  var taglibProps = jsonFileReader.readFileSync(filePath);
@@ -221,6 +221,18 @@ class TaglibLoader {
221
221
  }
222
222
  }
223
223
 
224
+ exports(dir) {
225
+ var taglib = this.taglib;
226
+ var path = this.filePath;
227
+ var dirname = this.dirname;
228
+
229
+ if (taglib.isFromPackageJson) {
230
+ taglib.tagsDir = false;
231
+
232
+ scanTagsDir(path, dirname, dir, taglib, this.dependencyChain.append(`exports`));
233
+ }
234
+ }
235
+
224
236
  taglibImports(imports) {
225
237
  if (!resolveFrom) {
226
238
  return;
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "4.27.0",
3
+ "version": "4.28.0",
4
4
  "license": "MIT",
5
5
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
6
6
  "dependencies": {
7
- "acorn": "^7.4.0",
8
7
  "app-module-path": "^2.2.0",
9
8
  "argly": "^1.0.0",
10
9
  "browser-refresh-client": "^1.0.0",
@@ -106,6 +106,7 @@ const helpers = {
106
106
  forIn: "marko/runtime/helpers/for-in",
107
107
  forRange: "marko/runtime/helpers/for-range",
108
108
  getWidgetFromOut: "marko/runtime/components/legacy/helper-getWidgetFromOut",
109
+ interopRequireDefault: "marko/runtime/helpers/interop-require",
109
110
  loadNestedTag: "marko/runtime/helpers/load-nested-tag",
110
111
  loadTag: "marko/runtime/helpers/load-tag",
111
112
  loadTemplate: "marko/runtime/helpers/load-template",
@@ -115,7 +115,9 @@ module.exports = function handleComponentBind(options) {
115
115
  } else if (!isImplicitComponent) {
116
116
  markoComponentVar = context.addStaticVar(
117
117
  "marko_component",
118
- builder.require(builder.literal(rendererModule.requirePath))
118
+ builder.functionCall(context.helper("interopRequireDefault"), [
119
+ builder.require(builder.literal(rendererModule.requirePath))
120
+ ])
119
121
  );
120
122
  }
121
123
  }
@@ -14,7 +14,7 @@ var stateToJSONDef = {
14
14
  return this;
15
15
  }
16
16
  };
17
- function noop() { }
17
+ function noop() {}
18
18
 
19
19
  module.exports = function defineWidget(def, renderer) {
20
20
  def = def.Widget || def;
@@ -23,7 +23,7 @@ module.exports = function defineWidget(def, renderer) {
23
23
  return def;
24
24
  }
25
25
 
26
- var ComponentClass = function () { };
26
+ var ComponentClass = function () {};
27
27
  var proto;
28
28
  var legacyInit;
29
29
 
@@ -29,6 +29,8 @@ var deferredDefs;
29
29
  var pendingDefs;
30
30
 
31
31
  function register(type, def) {
32
+ if (def.default) def = def.default;
33
+
32
34
  var pendingForType;
33
35
  if (pendingDefs) {
34
36
  pendingForType = pendingDefs[type];
@@ -5,6 +5,7 @@ var changeCase = require("./_change-case");
5
5
  var ComponentsContext = require("../components/ComponentsContext");
6
6
  var getComponentsContext = ComponentsContext.___getComponentsContext;
7
7
  var ComponentDef = require("../components/ComponentDef");
8
+ var interopRequire = require("./interop-require");
8
9
  var w10NOOP = require("warp10/constants").NOOP;
9
10
  var RENDER_BODY_TO_JSON = function () {
10
11
  return w10NOOP;
@@ -66,6 +67,8 @@ module.exports = function dynamicTag(
66
67
  }
67
68
  }
68
69
 
70
+ tag = interopRequire(tag);
71
+
69
72
  var renderer =
70
73
  tag._ ||
71
74
  (tag.renderer ? tag.renderer.renderer || tag.renderer : tag.render);
@@ -0,0 +1,3 @@
1
+ module.exports = function interopRequireDefault(mod) {
2
+ return mod.default || mod;
3
+ }
@@ -123,7 +123,7 @@ function find(dirname, registeredTaglibs) {
123
123
  if (!excludedPackages[name]) {
124
124
  let taglibPath = resolveFrom(rootPkg.__dirname, name + "/marko.json");
125
125
  if (taglibPath) {
126
- var taglib = taglibLoader.loadTaglibFromFile(taglibPath);
126
+ var taglib = taglibLoader.loadTaglibFromFile(taglibPath, true);
127
127
  helper.addTaglib(taglib);
128
128
  }
129
129
  }
@@ -27,9 +27,10 @@ function handleImport(taglib, importedTaglib) {
27
27
  }
28
28
 
29
29
  class Taglib {
30
- constructor(filePath) {
30
+ constructor(filePath, isFromPackageJson) {
31
31
  ok(filePath, '"filePath" expected');
32
32
  this.filePath = this.path /* deprecated */ = this.id = filePath;
33
+ this.isFromPackageJson = isFromPackageJson === true;
33
34
  this.dirname = path.dirname(this.filePath);
34
35
  this.tags = {};
35
36
  this.textTransformers = [];
@@ -8,8 +8,8 @@ function loadTaglibFromProps(taglib, taglibProps) {
8
8
  return loaders.loadTaglibFromProps(taglib, taglibProps);
9
9
  }
10
10
 
11
- function loadTaglibFromFile(filePath) {
12
- return loaders.loadTaglibFromFile(filePath);
11
+ function loadTaglibFromFile(filePath, isFromPackageJson) {
12
+ return loaders.loadTaglibFromFile(filePath, isFromPackageJson);
13
13
  }
14
14
 
15
15
  function loadTaglibFromDir(filePath) {
@@ -5,7 +5,7 @@ var loaders = require("./loaders");
5
5
 
6
6
  var ok = require("assert").ok;
7
7
 
8
- function loadFromFile(filePath) {
8
+ function loadFromFile(filePath, isFromPackageJson) {
9
9
  ok(filePath, '"filePath" is required');
10
10
 
11
11
  var taglib = cache.get(filePath);
@@ -13,7 +13,7 @@ function loadFromFile(filePath) {
13
13
  // Only load a taglib once by caching the loaded taglibs using the file
14
14
  // system file path as the key
15
15
  if (!taglib) {
16
- taglib = new types.Taglib(filePath);
16
+ taglib = new types.Taglib(filePath, isFromPackageJson);
17
17
  cache.put(filePath, taglib);
18
18
 
19
19
  var taglibProps = jsonFileReader.readFileSync(filePath);
@@ -258,6 +258,24 @@ class TaglibLoader {
258
258
  }
259
259
  }
260
260
 
261
+ exports(dir) {
262
+ var taglib = this.taglib;
263
+ var path = this.filePath;
264
+ var dirname = this.dirname;
265
+
266
+ if (taglib.isFromPackageJson) {
267
+ taglib.tagsDir = false;
268
+
269
+ scanTagsDir(
270
+ path,
271
+ dirname,
272
+ dir,
273
+ taglib,
274
+ this.dependencyChain.append(`exports`)
275
+ );
276
+ }
277
+ }
278
+
261
279
  taglibImports(imports) {
262
280
  if (!resolveFrom) {
263
281
  return;