marko 4.27.0 → 4.28.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +2510 -0
- package/dist/compiler/CompileContext.js +1 -0
- package/dist/core-tags/components/TransformHelper/convertToComponent.js +1 -1
- package/dist/node_modules/@internal/components-registry/index-browser.js +2 -0
- package/dist/runtime/helpers/dynamic-tag.js +3 -0
- package/dist/runtime/helpers/interop-require.js +3 -0
- package/dist/taglib/taglib-finder/index.js +1 -1
- package/dist/taglib/taglib-loader/Taglib.js +2 -1
- package/dist/taglib/taglib-loader/index.js +2 -2
- package/dist/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
- package/dist/taglib/taglib-loader/loadTaglibFromProps.js +12 -0
- package/package.json +1 -2
- package/src/compiler/CompileContext.js +1 -0
- package/src/core-tags/components/TransformHelper/convertToComponent.js +3 -1
- package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +2 -2
- package/src/node_modules/@internal/components-registry/index-browser.js +2 -0
- package/src/runtime/helpers/dynamic-tag.js +3 -0
- package/src/runtime/helpers/interop-require.js +3 -0
- package/src/taglib/taglib-finder/index.js +1 -1
- package/src/taglib/taglib-loader/Taglib.js +2 -1
- package/src/taglib/taglib-loader/index.js +2 -2
- package/src/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
- package/src/taglib/taglib-loader/loadTaglibFromProps.js +18 -0
@@ -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
|
|
@@ -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
|
@@ -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.
|
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.
|
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
|
|
@@ -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);
|
@@ -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;
|