marko 4.27.0 → 4.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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;