marko 4.24.4 → 4.24.6
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.
- package/dist/compiler/Normalizer.js +10 -2
- package/dist/taglib/taglib-finder/index.js +2 -9
- package/dist/taglib/taglib-loader/index.js +5 -0
- package/dist/taglib/taglib-loader/loadTaglibFromDir.js +26 -0
- package/dist/taglib/taglib-loader/loaders.js +1 -0
- package/package.json +1 -1
- package/src/compiler/Normalizer.js +10 -6
- package/src/taglib/taglib-finder/index.js +2 -19
- package/src/taglib/taglib-loader/index.js +5 -0
- package/src/taglib/taglib-loader/loadTaglibFromDir.js +32 -0
- package/src/taglib/taglib-loader/loaders.js +1 -0
- package/CHANGELOG.md +0 -2437
|
@@ -104,8 +104,16 @@ class Normalizer {
|
|
|
104
104
|
try {
|
|
105
105
|
if (elNode.rawTagNameExpression) {
|
|
106
106
|
tagName = builder.parseExpression(elNode.rawTagNameExpression);
|
|
107
|
-
} else if (context.ignoreUnrecognizedTags &&
|
|
108
|
-
|
|
107
|
+
} else if (context.ignoreUnrecognizedTags && tagName[0] === "@") {
|
|
108
|
+
let owner = elNode.parentNode;
|
|
109
|
+
|
|
110
|
+
while (owner && /^(?:for|while|if|else(?:-if))$/.test(owner.tagName)) {
|
|
111
|
+
owner = owner.parentNode;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (!owner || !(owner.rawTagNameExpression || owner.tagDef)) {
|
|
115
|
+
tagName = "at_" + tagName.slice(1); // escapes @tags inside unrecognized tags
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
118
|
} catch (e) {
|
|
111
119
|
const type = elNode.rawTagNameExpression === "()" ? "Missing" : "Invalid";
|
|
@@ -4,8 +4,6 @@ var taglibLoader = require("../taglib-loader");
|
|
|
4
4
|
var nodePath = require("path");
|
|
5
5
|
var lassoPackageRoot = require("lasso-package-root");
|
|
6
6
|
var resolveFrom = require("resolve-from");
|
|
7
|
-
var scanTagsDir = require("../taglib-loader/scanTagsDir");
|
|
8
|
-
var DependencyChain = require("../taglib-loader/DependencyChain");
|
|
9
7
|
var lassoCachingFS = require("lasso-caching-fs");
|
|
10
8
|
|
|
11
9
|
var findCache = {};
|
|
@@ -70,9 +68,6 @@ function find(dirname, registeredTaglibs) {
|
|
|
70
68
|
var added = {};
|
|
71
69
|
|
|
72
70
|
var helper = {
|
|
73
|
-
alreadyAdded: function (taglibId) {
|
|
74
|
-
return added.hasOwnProperty(taglibId);
|
|
75
|
-
},
|
|
76
71
|
addTaglib: function (taglib) {
|
|
77
72
|
if (added[taglib.id]) {
|
|
78
73
|
return;
|
|
@@ -106,10 +101,8 @@ function find(dirname, registeredTaglibs) {
|
|
|
106
101
|
if (!taglib || taglib.tagsDir === undefined) {
|
|
107
102
|
let componentsPath = nodePath.join(curDirname, "components");
|
|
108
103
|
|
|
109
|
-
if (existsCached(componentsPath) && !excludedDirs[componentsPath]
|
|
110
|
-
|
|
111
|
-
scanTagsDir(componentsPath, nodePath.dirname(componentsPath), "components", taglib, new DependencyChain([componentsPath]));
|
|
112
|
-
helper.addTaglib(taglib);
|
|
104
|
+
if (existsCached(componentsPath) && !excludedDirs[componentsPath]) {
|
|
105
|
+
helper.addTaglib(taglibLoader.loadTaglibFromDir(curDirname));
|
|
113
106
|
}
|
|
114
107
|
}
|
|
115
108
|
}
|
|
@@ -12,6 +12,10 @@ function loadTaglibFromFile(filePath) {
|
|
|
12
12
|
return loaders.loadTaglibFromFile(filePath);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
function loadTaglibFromDir(filePath) {
|
|
16
|
+
return loaders.loadTaglibFromDir(filePath);
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
function clearCache() {
|
|
16
20
|
cache.clear();
|
|
17
21
|
}
|
|
@@ -30,4 +34,5 @@ exports.clearCache = clearCache;
|
|
|
30
34
|
exports.createTaglib = createTaglib;
|
|
31
35
|
exports.loadTaglibFromProps = loadTaglibFromProps;
|
|
32
36
|
exports.loadTaglibFromFile = loadTaglibFromFile;
|
|
37
|
+
exports.loadTaglibFromDir = loadTaglibFromDir;
|
|
33
38
|
exports.loadTag = loadTag;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var nodePath = require("path");
|
|
2
|
+
var types = require("./types");
|
|
3
|
+
var cache = require("./cache");
|
|
4
|
+
var DependencyChain = require("./DependencyChain");
|
|
5
|
+
var scanTagsDir = require("./scanTagsDir");
|
|
6
|
+
|
|
7
|
+
var ok = require("assert").ok;
|
|
8
|
+
|
|
9
|
+
function loadFromDir(dir) {
|
|
10
|
+
ok(dir, '"dir" is required');
|
|
11
|
+
|
|
12
|
+
var componentsPath = nodePath.join(dir, "components");
|
|
13
|
+
var taglib = cache.get(componentsPath);
|
|
14
|
+
|
|
15
|
+
// Only load a taglib once by caching the loaded taglibs using the file
|
|
16
|
+
// system file path as the key
|
|
17
|
+
if (!taglib) {
|
|
18
|
+
taglib = new types.Taglib(componentsPath);
|
|
19
|
+
cache.put(componentsPath, taglib);
|
|
20
|
+
scanTagsDir(componentsPath, dir, "components", taglib, new DependencyChain([componentsPath]));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return taglib;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
module.exports = loadFromDir;
|
|
@@ -18,6 +18,7 @@ exports.loadTagFromProps = require("./loadTagFromProps");
|
|
|
18
18
|
exports.loadTagFromFile = require("./loadTagFromFile");
|
|
19
19
|
exports.loadTaglibFromProps = require("./loadTaglibFromProps");
|
|
20
20
|
exports.loadTaglibFromFile = require("./loadTaglibFromFile");
|
|
21
|
+
exports.loadTaglibFromDir = require("./loadTaglibFromDir");
|
|
21
22
|
exports.loadAttributes = require("./loadAttributes");
|
|
22
23
|
exports.isSupportedAttributeProperty = isSupportedAttributeProperty;
|
|
23
24
|
exports.isSupportedTagProperty = isSupportedTagProperty;
|
package/package.json
CHANGED
|
@@ -122,12 +122,16 @@ class Normalizer {
|
|
|
122
122
|
try {
|
|
123
123
|
if (elNode.rawTagNameExpression) {
|
|
124
124
|
tagName = builder.parseExpression(elNode.rawTagNameExpression);
|
|
125
|
-
} else if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
125
|
+
} else if (context.ignoreUnrecognizedTags && tagName[0] === "@") {
|
|
126
|
+
let owner = elNode.parentNode;
|
|
127
|
+
|
|
128
|
+
while (owner && /^(?:for|while|if|else(?:-if))$/.test(owner.tagName)) {
|
|
129
|
+
owner = owner.parentNode;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!owner || !(owner.rawTagNameExpression || owner.tagDef)) {
|
|
133
|
+
tagName = "at_" + tagName.slice(1); // escapes @tags inside unrecognized tags
|
|
134
|
+
}
|
|
131
135
|
}
|
|
132
136
|
} catch (e) {
|
|
133
137
|
const type = elNode.rawTagNameExpression === "()" ? "Missing" : "Invalid";
|
|
@@ -3,8 +3,6 @@ var taglibLoader = require("../taglib-loader");
|
|
|
3
3
|
var nodePath = require("path");
|
|
4
4
|
var lassoPackageRoot = require("lasso-package-root");
|
|
5
5
|
var resolveFrom = require("resolve-from");
|
|
6
|
-
var scanTagsDir = require("../taglib-loader/scanTagsDir");
|
|
7
|
-
var DependencyChain = require("../taglib-loader/DependencyChain");
|
|
8
6
|
var lassoCachingFS = require("lasso-caching-fs");
|
|
9
7
|
|
|
10
8
|
var findCache = {};
|
|
@@ -69,9 +67,6 @@ function find(dirname, registeredTaglibs) {
|
|
|
69
67
|
var added = {};
|
|
70
68
|
|
|
71
69
|
var helper = {
|
|
72
|
-
alreadyAdded: function(taglibId) {
|
|
73
|
-
return added.hasOwnProperty(taglibId);
|
|
74
|
-
},
|
|
75
70
|
addTaglib: function(taglib) {
|
|
76
71
|
if (added[taglib.id]) {
|
|
77
72
|
return;
|
|
@@ -105,20 +100,8 @@ function find(dirname, registeredTaglibs) {
|
|
|
105
100
|
if (!taglib || taglib.tagsDir === undefined) {
|
|
106
101
|
let componentsPath = nodePath.join(curDirname, "components");
|
|
107
102
|
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
!excludedDirs[componentsPath] &&
|
|
111
|
-
!helper.alreadyAdded(componentsPath)
|
|
112
|
-
) {
|
|
113
|
-
let taglib = taglibLoader.createTaglib(componentsPath);
|
|
114
|
-
scanTagsDir(
|
|
115
|
-
componentsPath,
|
|
116
|
-
nodePath.dirname(componentsPath),
|
|
117
|
-
"components",
|
|
118
|
-
taglib,
|
|
119
|
-
new DependencyChain([componentsPath])
|
|
120
|
-
);
|
|
121
|
-
helper.addTaglib(taglib);
|
|
103
|
+
if (existsCached(componentsPath) && !excludedDirs[componentsPath]) {
|
|
104
|
+
helper.addTaglib(taglibLoader.loadTaglibFromDir(curDirname));
|
|
122
105
|
}
|
|
123
106
|
}
|
|
124
107
|
}
|
|
@@ -12,6 +12,10 @@ function loadTaglibFromFile(filePath) {
|
|
|
12
12
|
return loaders.loadTaglibFromFile(filePath);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
function loadTaglibFromDir(filePath) {
|
|
16
|
+
return loaders.loadTaglibFromDir(filePath);
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
function clearCache() {
|
|
16
20
|
cache.clear();
|
|
17
21
|
}
|
|
@@ -34,4 +38,5 @@ exports.clearCache = clearCache;
|
|
|
34
38
|
exports.createTaglib = createTaglib;
|
|
35
39
|
exports.loadTaglibFromProps = loadTaglibFromProps;
|
|
36
40
|
exports.loadTaglibFromFile = loadTaglibFromFile;
|
|
41
|
+
exports.loadTaglibFromDir = loadTaglibFromDir;
|
|
37
42
|
exports.loadTag = loadTag;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var nodePath = require("path");
|
|
2
|
+
var types = require("./types");
|
|
3
|
+
var cache = require("./cache");
|
|
4
|
+
var DependencyChain = require("./DependencyChain");
|
|
5
|
+
var scanTagsDir = require("./scanTagsDir");
|
|
6
|
+
|
|
7
|
+
var ok = require("assert").ok;
|
|
8
|
+
|
|
9
|
+
function loadFromDir(dir) {
|
|
10
|
+
ok(dir, '"dir" is required');
|
|
11
|
+
|
|
12
|
+
var componentsPath = nodePath.join(dir, "components");
|
|
13
|
+
var taglib = cache.get(componentsPath);
|
|
14
|
+
|
|
15
|
+
// Only load a taglib once by caching the loaded taglibs using the file
|
|
16
|
+
// system file path as the key
|
|
17
|
+
if (!taglib) {
|
|
18
|
+
taglib = new types.Taglib(componentsPath);
|
|
19
|
+
cache.put(componentsPath, taglib);
|
|
20
|
+
scanTagsDir(
|
|
21
|
+
componentsPath,
|
|
22
|
+
dir,
|
|
23
|
+
"components",
|
|
24
|
+
taglib,
|
|
25
|
+
new DependencyChain([componentsPath])
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return taglib;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = loadFromDir;
|
|
@@ -18,6 +18,7 @@ exports.loadTagFromProps = require("./loadTagFromProps");
|
|
|
18
18
|
exports.loadTagFromFile = require("./loadTagFromFile");
|
|
19
19
|
exports.loadTaglibFromProps = require("./loadTaglibFromProps");
|
|
20
20
|
exports.loadTaglibFromFile = require("./loadTaglibFromFile");
|
|
21
|
+
exports.loadTaglibFromDir = require("./loadTaglibFromDir");
|
|
21
22
|
exports.loadAttributes = require("./loadAttributes");
|
|
22
23
|
exports.isSupportedAttributeProperty = isSupportedAttributeProperty;
|
|
23
24
|
exports.isSupportedTagProperty = isSupportedTagProperty;
|