@marko/compiler 5.24.0 → 5.25.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.
- package/dist/babel-plugin/index.js +7 -7
- package/dist/config.js +2 -2
- package/dist/taglib/config.js +6 -0
- package/dist/taglib/finder/index.js +2 -2
- package/dist/taglib/index.js +25 -8
- package/dist/taglib/loader/json-file-reader.js +2 -2
- package/dist/taglib/loader/loadAttributeFromProps.js +1 -1
- package/dist/taglib/loader/loadTagFromProps.js +3 -3
- package/dist/taglib/loader/loadTaglibFromProps.js +3 -3
- package/dist/taglib/loader/property-handlers.js +85 -0
- package/dist/taglib/loader/scanTagsDir.js +6 -6
- package/index.d.ts +5 -3
- package/package.json +2 -3
- package/dist/taglib/fs.js +0 -4
|
@@ -8,7 +8,7 @@ var _parser = require("./parser");
|
|
|
8
8
|
var _migrate = require("./plugins/migrate");
|
|
9
9
|
var _transform = require("./plugins/transform");
|
|
10
10
|
var _file = require("./file");
|
|
11
|
-
var
|
|
11
|
+
var _config = _interopRequireDefault(require("../taglib/config"));
|
|
12
12
|
var _tryLoadTranslator = _interopRequireDefault(require("../util/try-load-translator"));
|
|
13
13
|
var _shouldOptimize = _interopRequireDefault(require("../util/should-optimize"));function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function (nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
|
|
14
14
|
|
|
@@ -49,21 +49,21 @@ const SOURCE_FILES = new WeakMap();var _default =
|
|
|
49
49
|
curOpts = opts;
|
|
50
50
|
},
|
|
51
51
|
parserOverride(code) {
|
|
52
|
-
let prevFS =
|
|
53
|
-
|
|
52
|
+
let prevFS = _config.default.fs;
|
|
53
|
+
_config.default.fs = markoOpts.fileSystem;
|
|
54
54
|
try {
|
|
55
55
|
const file = getMarkoFile(code, curOpts, markoOpts);
|
|
56
56
|
const finalAst = t.cloneNode(file.ast, true);
|
|
57
57
|
SOURCE_FILES.set(finalAst, file);
|
|
58
58
|
return finalAst;
|
|
59
59
|
} finally {
|
|
60
|
-
|
|
60
|
+
_config.default.fs = prevFS;
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
pre(file) {
|
|
64
|
-
let prevFS =
|
|
64
|
+
let prevFS = _config.default.fs;
|
|
65
|
+
_config.default.fs = markoOpts.fileSystem;
|
|
65
66
|
curOpts = undefined;
|
|
66
|
-
(0, _fs.setFS)(markoOpts.fileSystem);
|
|
67
67
|
try {
|
|
68
68
|
if (markoOpts.output === "source" || markoOpts.output === "migrate") {
|
|
69
69
|
return file;
|
|
@@ -104,7 +104,7 @@ const SOURCE_FILES = new WeakMap();var _default =
|
|
|
104
104
|
metadata.marko.watchFiles = metadata.marko.watchFiles.filter(unique);
|
|
105
105
|
file.path.scope.crawl(); // Ensure all scopes are accurate for subsequent babel plugins
|
|
106
106
|
} finally {
|
|
107
|
-
|
|
107
|
+
_config.default.fs = prevFS;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
};
|
package/dist/config.js
CHANGED
|
@@ -156,7 +156,7 @@ var _lassoPackageRoot = require("lasso-package-root");
|
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
|
|
159
|
-
var
|
|
159
|
+
var _config = _interopRequireDefault(require("./taglib/config"));let config;const globalThis = typeof window === "undefined" ? global : window;const MARKO_CONFIG_KEY = Symbol("Default Marko Compiler Config");if (globalThis[MARKO_CONFIG_KEY]) {config = globalThis[MARKO_CONFIG_KEY];} else {config = globalThis[MARKO_CONFIG_KEY] = { // The default output mode for compiled templates
|
|
160
160
|
output: "html", // Override the runtimeid used when calling `marko/components.init` in the `hydrate` output.
|
|
161
161
|
runtimeId: null, /**
|
|
162
162
|
* Remove all typescript types from the output.
|
|
@@ -206,4 +206,4 @@ var _fs2 = require("./taglib/fs");let config;const globalThis = typeof window ==
|
|
|
206
206
|
* A regexp or function that receives an import path that matches file types known to be client side assets.
|
|
207
207
|
*/hydrateIncludeImports: /\.(css|less|s[ac]ss|styl|png|jpe?g|gif|svg|ico|webp|avif|mp4|webm|ogg|mp3|wav|flac|aac|woff2?|eot|ttf|otf)$/, /**
|
|
208
208
|
* Set to true in order to bring in the hot module replacement runtime.
|
|
209
|
-
*/hot: false };if (process.env.MARKO_CONFIG) {Object.assign(config, JSON.parse(process.env.MARKO_CONFIG));}}var _default = config;exports.default = _default;
|
|
209
|
+
*/hot: false };if (process.env.MARKO_CONFIG) {Object.assign(config, JSON.parse(process.env.MARKO_CONFIG));}}var _default = config;exports.default = _default;_config.default.fs = config.fileSystem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var nodePath = require("path");
|
|
3
3
|
var resolveFrom = require("resolve-from").silent;
|
|
4
|
-
var
|
|
4
|
+
var taglibConfig = require("../config");
|
|
5
5
|
var taglibLoader = require("../loader");
|
|
6
6
|
var lassoPackageRoot = require("lasso-package-root");
|
|
7
7
|
var findCache = {};
|
|
@@ -148,7 +148,7 @@ function excludePackage(name) {
|
|
|
148
148
|
|
|
149
149
|
function existsSync(file) {
|
|
150
150
|
try {
|
|
151
|
-
|
|
151
|
+
taglibConfig.fs.statSync(file);
|
|
152
152
|
return true;
|
|
153
153
|
} catch (_) {
|
|
154
154
|
return false;
|
package/dist/taglib/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports._loader = exports._finder = void 0;exports.buildLookup = buildLookup;exports.clearCaches = clearCaches;exports.excludePackage = exports.excludeDir = void 0;exports.register = register;var _loader2 = _interopRequireDefault(require("./loader"));
|
|
2
2
|
var _finder2 = _interopRequireDefault(require("./finder"));
|
|
3
3
|
var _lookup = _interopRequireDefault(require("./lookup"));
|
|
4
|
+
var _config = _interopRequireDefault(require("./config"));
|
|
4
5
|
var _tryLoadTranslator = _interopRequireDefault(require("../util/try-load-translator"));
|
|
5
6
|
|
|
6
7
|
|
|
@@ -18,7 +19,7 @@ register("marko/html", _markoHtml.default);
|
|
|
18
19
|
register("marko/svg", _markoSvg.default);
|
|
19
20
|
register("marko/math", _markoMath.default);
|
|
20
21
|
|
|
21
|
-
function buildLookup(dirname, requestedTranslator) {
|
|
22
|
+
function buildLookup(dirname, requestedTranslator, onError) {
|
|
22
23
|
const translator = (0, _tryLoadTranslator.default)(requestedTranslator);
|
|
23
24
|
if (!translator || !Array.isArray(translator.taglibs)) {
|
|
24
25
|
throw new Error(
|
|
@@ -26,19 +27,35 @@ function buildLookup(dirname, requestedTranslator) {
|
|
|
26
27
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
let taglibsForDir = loadedTranslatorsTaglibs.get(translator);
|
|
31
|
+
|
|
32
|
+
if (!taglibsForDir) {
|
|
30
33
|
loadedTranslatorsTaglibs.set(
|
|
31
34
|
translator,
|
|
32
|
-
|
|
35
|
+
taglibsForDir = registeredTaglibs.concat(
|
|
36
|
+
translator.taglibs.map(([id, props]) => loadTaglib(id, props))));
|
|
33
37
|
|
|
34
|
-
}
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
dirname,
|
|
38
|
-
registeredTaglibs.concat(loadedTranslatorsTaglibs.get(translator)));
|
|
39
|
+
}
|
|
39
40
|
|
|
41
|
+
if (onError) {
|
|
42
|
+
const prevOnError = _config.default.onError;
|
|
43
|
+
_config.default.onError = onError;
|
|
44
|
+
try {
|
|
45
|
+
taglibsForDir = _finder2.default.find(dirname, taglibsForDir);
|
|
46
|
+
} catch (err) {
|
|
47
|
+
_config.default.onError(err);
|
|
48
|
+
} finally {
|
|
49
|
+
_config.default.onError = prevOnError;
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
taglibsForDir = _finder2.default.find(dirname, taglibsForDir);
|
|
53
|
+
}
|
|
40
54
|
|
|
41
|
-
const cacheKey = taglibsForDir.
|
|
55
|
+
const cacheKey = taglibsForDir.
|
|
56
|
+
map((it) => it.id).
|
|
57
|
+
sort().
|
|
58
|
+
join();
|
|
42
59
|
let lookup = lookupCache[cacheKey];
|
|
43
60
|
|
|
44
61
|
if (!lookup) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var taglibConfig = require("../config");
|
|
2
2
|
var stripJsonComments = require("strip-json-comments");
|
|
3
3
|
var fsReadOptions = { encoding: "utf8" };
|
|
4
4
|
|
|
5
5
|
exports.readFileSync = function (path) {
|
|
6
|
-
var json = String(
|
|
6
|
+
var json = String(taglibConfig.fs.readFileSync(path, fsReadOptions));
|
|
7
7
|
|
|
8
8
|
try {
|
|
9
9
|
var taglibProps = JSON.parse(stripJsonComments(json));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var assert = require("assert");
|
|
4
4
|
var raptorRegexp = require("raptor-regexp");
|
|
5
|
-
var propertyHandlers = require("property-handlers");
|
|
5
|
+
var propertyHandlers = require("./property-handlers");
|
|
6
6
|
var types = require("./types");
|
|
7
7
|
var createError = require("raptor-util/createError");
|
|
8
8
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var ok = require("assert").ok;
|
|
4
4
|
var resolveFrom = require("resolve-from").silent;
|
|
5
|
-
var propertyHandlers = require("property-handlers");
|
|
5
|
+
var propertyHandlers = require("./property-handlers");
|
|
6
6
|
var isObjectEmpty = require("raptor-util/isObjectEmpty");
|
|
7
7
|
var nodePath = require("path");
|
|
8
8
|
var createError = require("raptor-util/createError");
|
|
9
|
-
var
|
|
9
|
+
var taglibConfig = require("../config");
|
|
10
10
|
var types = require("./types");
|
|
11
11
|
var loaders = require("./loaders");
|
|
12
12
|
var markoModules = require("../../../modules");
|
|
@@ -315,7 +315,7 @@ class TagLoader {
|
|
|
315
315
|
var path = nodePath.resolve(dirname, value);
|
|
316
316
|
|
|
317
317
|
try {
|
|
318
|
-
|
|
318
|
+
taglibConfig.fs.statSync(path);
|
|
319
319
|
tag.template = path;
|
|
320
320
|
} catch (_) {
|
|
321
321
|
throw new Error('Template at path "' + path + '" does not exist.');
|
|
@@ -4,9 +4,9 @@ var ok = require("assert").ok;
|
|
|
4
4
|
var resolveFrom = require("resolve-from").silent;
|
|
5
5
|
var nodePath = require("path");
|
|
6
6
|
var types = require("./types");
|
|
7
|
-
var taglibFS = require("../
|
|
7
|
+
var taglibFS = require("../config");
|
|
8
8
|
var scanTagsDir = require("./scanTagsDir");
|
|
9
|
-
var propertyHandlers = require("property-handlers");
|
|
9
|
+
var propertyHandlers = require("./property-handlers");
|
|
10
10
|
var jsonFileReader = require("./json-file-reader");
|
|
11
11
|
var DependencyChain = require("./DependencyChain");
|
|
12
12
|
var createError = require("raptor-util/createError");
|
|
@@ -98,7 +98,7 @@ class TaglibLoader {
|
|
|
98
98
|
tagFilePath = nodePath.resolve(this.dirname, value);
|
|
99
99
|
|
|
100
100
|
try {
|
|
101
|
-
taglibFS.
|
|
101
|
+
taglibFS.fs.statSync(tagFilePath);
|
|
102
102
|
} catch (_) {
|
|
103
103
|
throw new Error(
|
|
104
104
|
'Tag at path "' +
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const { hasOwnProperty } = Object.prototype;
|
|
4
|
+
const taglibConfig = require("../config");
|
|
5
|
+
|
|
6
|
+
function removeDashes(str) {
|
|
7
|
+
return str.replace(/-([a-z])/g, function (match, lower) {
|
|
8
|
+
return lower.toUpperCase();
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
module.exports = function invokeHandlers(config, handlers, path) {
|
|
13
|
+
function error(message, cause) {
|
|
14
|
+
if (cause) {
|
|
15
|
+
if (cause.__propertyHandlers) {
|
|
16
|
+
throw cause;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
message += ". Cause: " + (cause.stack || cause);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (path) {
|
|
23
|
+
message += " (" + path + ")";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var e = new Error(message);
|
|
27
|
+
e.__propertyHandlers = true;
|
|
28
|
+
taglibConfig.onError(e);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (!config) {
|
|
32
|
+
error('"config" argument is required');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (typeof config !== "object") {
|
|
36
|
+
error("object expected");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
for (var k in config) {
|
|
40
|
+
if (hasOwnProperty.call(config, k)) {
|
|
41
|
+
var value = config[k];
|
|
42
|
+
var keyNoDashes = removeDashes(k);
|
|
43
|
+
var handler = handlers[keyNoDashes];
|
|
44
|
+
var isDefaultHandler = false;
|
|
45
|
+
|
|
46
|
+
if (!handler) {
|
|
47
|
+
handler = handlers["*"];
|
|
48
|
+
isDefaultHandler = true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!handler) {
|
|
52
|
+
var badProperty = JSON.stringify(k);
|
|
53
|
+
if (k !== keyNoDashes) {
|
|
54
|
+
badProperty += "/" + JSON.stringify(keyNoDashes);
|
|
55
|
+
}
|
|
56
|
+
error(
|
|
57
|
+
"Invalid option of " +
|
|
58
|
+
badProperty +
|
|
59
|
+
". Allowed: " +
|
|
60
|
+
Object.keys(handlers).join(", "));
|
|
61
|
+
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
if (isDefaultHandler) {
|
|
66
|
+
if (handler.call(handlers, k, value) === false) {
|
|
67
|
+
error("Invalid option: " + k);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
handler.call(handlers, value);
|
|
71
|
+
}
|
|
72
|
+
} catch (e) {
|
|
73
|
+
error('Error while applying option of "' + k + '"', e);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (handlers._end) {
|
|
79
|
+
try {
|
|
80
|
+
handlers._end();
|
|
81
|
+
} catch (e) {
|
|
82
|
+
error("Error after applying properties", e);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const nodePath = require("path");
|
|
4
|
-
const
|
|
4
|
+
const taglibConfig = require("../config");
|
|
5
5
|
const jsonFileReader = require("./json-file-reader");
|
|
6
6
|
const tagDefFromCode = require("./tag-def-from-code");
|
|
7
7
|
const loaders = require("./loaders");
|
|
@@ -48,7 +48,7 @@ function createDefaultTagDef() {
|
|
|
48
48
|
|
|
49
49
|
function getFileMap(dirname) {
|
|
50
50
|
let fileMap = {};
|
|
51
|
-
let files =
|
|
51
|
+
let files = taglibConfig.fs.readdirSync(dirname);
|
|
52
52
|
|
|
53
53
|
files.forEach((file) => {
|
|
54
54
|
let extName = nodePath.extname(file);
|
|
@@ -77,7 +77,7 @@ function getPath(filename, fileMap) {
|
|
|
77
77
|
|
|
78
78
|
function findAndSetFile(tagDef, tagDirname) {
|
|
79
79
|
try {
|
|
80
|
-
if (!
|
|
80
|
+
if (!taglibConfig.fs.statSync(tagDirname).isDirectory()) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
} catch (_) {
|
|
@@ -133,7 +133,7 @@ dependencyChain)
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
dir = nodePath.resolve(tagsConfigDirname, dir);
|
|
136
|
-
let children =
|
|
136
|
+
let children = taglibConfig.fs.readdirSync(dir);
|
|
137
137
|
|
|
138
138
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
139
139
|
let childFilename = children[i];
|
|
@@ -160,7 +160,7 @@ dependencyChain)
|
|
|
160
160
|
|
|
161
161
|
let hasTagJson = false;
|
|
162
162
|
try {
|
|
163
|
-
|
|
163
|
+
taglibConfig.fs.statSync(tagJsonPath);
|
|
164
164
|
hasTagJson = true;
|
|
165
165
|
// eslint-disable-next-line no-empty
|
|
166
166
|
} catch (_) {}
|
|
@@ -191,7 +191,7 @@ dependencyChain)
|
|
|
191
191
|
|
|
192
192
|
if (!hasTagJson && (tagDef.renderer || tagDef.template)) {
|
|
193
193
|
let templateCode = String(
|
|
194
|
-
|
|
194
|
+
taglibConfig.fs.readFileSync(
|
|
195
195
|
tagDef.renderer || tagDef.template,
|
|
196
196
|
fsReadOptions));
|
|
197
197
|
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { SourceMap } from "magic-string";
|
|
2
2
|
import { TaglibLookup } from "@marko/babel-utils";
|
|
3
3
|
import * as types from "./babel-types";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
export { types };
|
|
5
|
+
|
|
6
|
+
export type Config = typeof import("./config");
|
|
6
7
|
|
|
7
8
|
type Dep = {
|
|
8
9
|
type: string;
|
|
@@ -65,7 +66,8 @@ export namespace taglib {
|
|
|
65
66
|
export function register(id: string, props: { [x: string]: unknown }): void;
|
|
66
67
|
export function buildLookup(
|
|
67
68
|
dirname: string,
|
|
68
|
-
translator?: unknown
|
|
69
|
+
translator?: unknown,
|
|
70
|
+
onError?: (err: Error) => void
|
|
69
71
|
): TaglibLookup;
|
|
70
72
|
export function clearCaches(): void;
|
|
71
73
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/compiler",
|
|
3
3
|
"description": "Marko template to JS compiler.",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.25.0",
|
|
5
5
|
"author": "Dylan Piercey <dpiercey@ebay.com>",
|
|
6
6
|
"bugs": "https://github.com/marko-js/marko/issues/new?template=Bug_report.md",
|
|
7
7
|
"dependencies": {
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
"htmljs-parser": "^5.1.5",
|
|
22
22
|
"jsesc": "^3.0.2",
|
|
23
23
|
"lasso-package-root": "^1.0.1",
|
|
24
|
-
"property-handlers": "^1.1.1",
|
|
25
24
|
"raptor-regexp": "^1.0.1",
|
|
26
25
|
"raptor-util": "^3.2.0",
|
|
27
26
|
"resolve-from": "^5.0.0",
|
|
@@ -30,7 +29,7 @@
|
|
|
30
29
|
"strip-json-comments": "^3.1.1"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
|
-
"@marko/translator-default": "^5.
|
|
32
|
+
"@marko/translator-default": "^5.23.0"
|
|
34
33
|
},
|
|
35
34
|
"files": [
|
|
36
35
|
"dist",
|
package/dist/taglib/fs.js
DELETED