marko 5.31.0 → 5.31.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/compiler/index.js +10 -10
- package/dist/core-tags/components/preserve-tag.js +1 -81
- package/dist/core-tags/core/await/AsyncValue.js +25 -25
- package/dist/core-tags/core/await/renderer.js +11 -11
- package/dist/core-tags/core/await/reorderer-renderer.js +31 -31
- package/dist/node-require/hot-reload.js +5 -5
- package/dist/node-require/index.js +8 -8
- package/dist/node_modules/@internal/components-beginComponent/index-browser.js +8 -8
- package/dist/node_modules/@internal/components-beginComponent/index.js +25 -25
- package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +53 -51
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +3 -3
- package/dist/node_modules/@internal/components-endComponent/index.js +3 -3
- package/dist/node_modules/@internal/components-entry/index-browser.js +3 -2
- package/dist/node_modules/@internal/components-entry/index.js +24 -24
- package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +10 -9
- package/dist/node_modules/@internal/components-entry-legacy/index.js +2 -1
- package/dist/node_modules/@internal/components-registry/index-browser.js +84 -92
- package/dist/node_modules/@internal/components-registry/index.js +2 -2
- package/dist/node_modules/@internal/components-util/index-browser.js +23 -23
- package/dist/node_modules/@internal/components-util/index.js +10 -10
- package/dist/node_modules/@internal/create-readable/index-browser.js +5 -5
- package/dist/node_modules/@internal/create-readable/index.js +13 -13
- package/dist/node_modules/@internal/loader/fallback-node.js +89 -0
- package/dist/node_modules/@internal/loader/index-browser.js +1 -3
- package/dist/node_modules/@internal/loader/index.js +20 -85
- package/dist/node_modules/@internal/loader/package.json +2 -3
- package/dist/node_modules/@internal/preserve-tag/index-browser.js +45 -0
- package/dist/node_modules/@internal/preserve-tag/index.js +34 -0
- package/dist/node_modules/@internal/preserve-tag/package.json +11 -0
- package/dist/node_modules/@internal/require/index-browser.js +13 -0
- package/dist/node_modules/@internal/require/index-legacy-browser.js +20 -0
- package/dist/node_modules/@internal/require/index-webpack.js +11 -0
- package/dist/node_modules/@internal/require/index.js +15 -0
- package/dist/node_modules/@internal/require/package.json +11 -0
- package/dist/runtime/RenderResult.js +15 -14
- package/dist/runtime/components/Component.js +106 -106
- package/dist/runtime/components/ComponentDef.js +19 -19
- package/dist/runtime/components/ComponentsContext.js +14 -14
- package/dist/runtime/components/GlobalComponentsContext.js +2 -2
- package/dist/runtime/components/ServerComponent.js +12 -12
- package/dist/runtime/components/State.js +19 -19
- package/dist/runtime/components/attach-detach.js +1 -1
- package/dist/runtime/components/defineComponent.js +5 -5
- package/dist/runtime/components/dom-data.js +5 -5
- package/dist/runtime/components/event-delegation.js +55 -55
- package/dist/runtime/components/legacy/defineComponent-legacy.js +1 -6
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +16 -21
- package/dist/runtime/components/legacy/dependencies/index.js +7 -7
- package/dist/runtime/components/legacy/renderer-legacy.js +82 -82
- package/dist/runtime/components/renderer.js +44 -44
- package/dist/runtime/dom-insert.js +2 -2
- package/dist/runtime/helpers/_change-case.js +3 -3
- package/dist/runtime/helpers/class-value.js +2 -2
- package/dist/runtime/helpers/dynamic-tag.js +35 -35
- package/dist/runtime/helpers/render-tag.js +4 -4
- package/dist/runtime/html/AsyncStream.js +16 -16
- package/dist/runtime/html/BufferedWriter.js +14 -14
- package/dist/runtime/html/StringWriter.js +1 -1
- package/dist/runtime/html/helpers/_dynamic-attr.js +2 -2
- package/dist/runtime/html/helpers/attr.js +6 -6
- package/dist/runtime/html/helpers/attrs.js +2 -2
- package/dist/runtime/html/helpers/data-marko.js +6 -6
- package/dist/runtime/html/helpers/escape-quotes.js +1 -1
- package/dist/runtime/html/helpers/escape-xml.js +2 -2
- package/dist/runtime/html/helpers/props-script.js +1 -1
- package/dist/runtime/html/index.js +10 -10
- package/dist/runtime/renderable.js +5 -5
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +61 -61
- package/dist/runtime/vdom/VComponent.js +2 -2
- package/dist/runtime/vdom/VDocumentFragment.js +1 -1
- package/dist/runtime/vdom/VElement.js +38 -38
- package/dist/runtime/vdom/VFragment.js +4 -4
- package/dist/runtime/vdom/VNode.js +2 -2
- package/dist/runtime/vdom/hot-reload.js +11 -11
- package/dist/runtime/vdom/index.js +9 -9
- package/dist/runtime/vdom/morphdom/fragment.js +9 -9
- package/dist/runtime/vdom/morphdom/helpers.js +7 -7
- package/dist/runtime/vdom/morphdom/index.js +126 -126
- package/dist/runtime/vdom/morphdom/specialElHandlers.js +11 -11
- package/dist/runtime/vdom/vdom.js +2 -2
- package/dist/taglib/index.js +3 -3
- package/package.json +1 -1
- package/src/core-tags/components/preserve-tag.js +1 -81
- package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +17 -15
- package/src/node_modules/@internal/components-define-widget-legacy/index.js +1 -1
- package/src/node_modules/@internal/components-entry/index-browser.js +2 -1
- package/src/node_modules/@internal/components-entry/index.js +2 -2
- package/src/node_modules/@internal/components-entry-legacy/index-browser.js +4 -3
- package/src/node_modules/@internal/components-entry-legacy/index.js +2 -1
- package/src/node_modules/@internal/components-registry/index-browser.js +9 -17
- package/src/node_modules/@internal/create-readable/index-browser.js +2 -2
- package/src/node_modules/@internal/loader/fallback-node.js +89 -0
- package/src/node_modules/@internal/loader/index-browser.js +1 -3
- package/src/node_modules/@internal/loader/index.js +21 -86
- package/src/node_modules/@internal/loader/package.json +2 -3
- package/src/node_modules/@internal/preserve-tag/index-browser.js +45 -0
- package/src/node_modules/@internal/preserve-tag/index.js +34 -0
- package/src/node_modules/@internal/preserve-tag/package.json +11 -0
- package/src/node_modules/@internal/require/index-browser.js +13 -0
- package/src/node_modules/@internal/require/index-legacy-browser.js +20 -0
- package/src/node_modules/@internal/require/index-webpack.js +11 -0
- package/src/node_modules/@internal/require/index.js +15 -0
- package/src/node_modules/@internal/require/package.json +11 -0
- package/src/runtime/components/legacy/defineComponent-legacy.js +0 -5
- package/src/runtime/components/legacy/defineRenderer-legacy.js +3 -8
@@ -4,7 +4,7 @@
|
|
4
4
|
var BaseState;
|
5
5
|
var BaseComponent;
|
6
6
|
var inherit;
|
7
|
-
var
|
7
|
+
var req = require("@internal/require");
|
8
8
|
var registry = require("@internal/components-registry");
|
9
9
|
var jQuery = require("../../../runtime/components/legacy/jquery");
|
10
10
|
var ready = require("../../../runtime/components/legacy/ready");
|
@@ -14,9 +14,9 @@ var stateToJSONDef = {
|
|
14
14
|
enumerable: false,
|
15
15
|
value: function returnSelf() {
|
16
16
|
return this;
|
17
|
-
}
|
17
|
+
},
|
18
18
|
};
|
19
|
-
function noop() {
|
19
|
+
function noop() {}
|
20
20
|
|
21
21
|
module.exports = function defineWidget(def, renderer) {
|
22
22
|
def = def.Widget || def;
|
@@ -25,7 +25,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
25
25
|
return def;
|
26
26
|
}
|
27
27
|
|
28
|
-
var ComponentClass = function () {
|
28
|
+
var ComponentClass = function () {};
|
29
29
|
var proto;
|
30
30
|
var legacyInit;
|
31
31
|
|
@@ -94,7 +94,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
94
94
|
}
|
95
95
|
|
96
96
|
this.setState(newState);
|
97
|
-
}
|
97
|
+
},
|
98
98
|
});
|
99
99
|
|
100
100
|
Object.defineProperty(proto, "__document", {
|
@@ -104,7 +104,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
104
104
|
complain("__document is deprecated");
|
105
105
|
}
|
106
106
|
return this.___host;
|
107
|
-
}
|
107
|
+
},
|
108
108
|
});
|
109
109
|
|
110
110
|
Object.defineProperty(proto, "el", {
|
@@ -122,7 +122,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
122
122
|
}
|
123
123
|
|
124
124
|
return this.___currentLegacyBindEl;
|
125
|
-
}
|
125
|
+
},
|
126
126
|
});
|
127
127
|
|
128
128
|
// get legacy methods
|
@@ -132,7 +132,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
132
132
|
get: noop,
|
133
133
|
set: function (v) {
|
134
134
|
proto.___legacyOnRender = v;
|
135
|
-
}
|
135
|
+
},
|
136
136
|
});
|
137
137
|
|
138
138
|
proto.___legacyOnUpdate = proto.onUpdate;
|
@@ -142,7 +142,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
142
142
|
},
|
143
143
|
set: function (v) {
|
144
144
|
proto.___legacyOnUpdate = v;
|
145
|
-
}
|
145
|
+
},
|
146
146
|
});
|
147
147
|
|
148
148
|
proto.___legacyOnDestroy = proto.onDestroy;
|
@@ -152,7 +152,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
152
152
|
},
|
153
153
|
set: function (v) {
|
154
154
|
proto.___legacyOnDestroy = v;
|
155
|
-
}
|
155
|
+
},
|
156
156
|
});
|
157
157
|
|
158
158
|
proto.getWidget = proto.getComponent;
|
@@ -172,7 +172,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
172
172
|
complain(
|
173
173
|
"widget was updated after it was destroyed, if this widget is migrated to a modern component this will become a noop.",
|
174
174
|
{
|
175
|
-
location: this.___type
|
175
|
+
location: this.___type,
|
176
176
|
}
|
177
177
|
);
|
178
178
|
}
|
@@ -216,7 +216,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
216
216
|
get: function () {
|
217
217
|
complain("__widget is deprecated");
|
218
218
|
return self;
|
219
|
-
}
|
219
|
+
},
|
220
220
|
});
|
221
221
|
} else {
|
222
222
|
el.__widget = this;
|
@@ -308,7 +308,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
308
308
|
get: function () {
|
309
309
|
complain("_isWidget is deprecated");
|
310
310
|
return true;
|
311
|
-
}
|
311
|
+
},
|
312
312
|
});
|
313
313
|
} else {
|
314
314
|
Component._isWidget = true;
|
@@ -317,10 +317,12 @@ module.exports = function defineWidget(def, renderer) {
|
|
317
317
|
var template = def.template;
|
318
318
|
if (template) {
|
319
319
|
if (typeof template === "string") {
|
320
|
-
template =
|
320
|
+
template = req(template);
|
321
321
|
}
|
322
322
|
|
323
|
-
registry.r(template.___typeName, function () {
|
323
|
+
registry.r(template.___typeName, function () {
|
324
|
+
return Component;
|
325
|
+
});
|
324
326
|
}
|
325
327
|
|
326
328
|
return Component;
|
@@ -10,7 +10,7 @@ module.exports = function defineWidget(def, renderer) {
|
|
10
10
|
renderer: renderer,
|
11
11
|
render: renderer.render,
|
12
12
|
renderSync: renderer.renderSync,
|
13
|
-
template: renderer.template
|
13
|
+
template: renderer.template,
|
14
14
|
};
|
15
15
|
} else {
|
16
16
|
return { ___isComponent: true, _isWidget: true };
|
@@ -1,6 +1,7 @@
|
|
1
1
|
var registry = require("@internal/components-registry");
|
2
2
|
|
3
|
-
exports.getComponentForEl =
|
3
|
+
exports.getComponentForEl =
|
4
|
+
require("@internal/components-util").___getComponentForEl;
|
4
5
|
exports.init = registry.___initServerRendered;
|
5
6
|
exports.register = function (id, component) {
|
6
7
|
registry.r(id, function () {
|
@@ -152,7 +152,7 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
152
152
|
s: needsState && state,
|
153
153
|
u: undefinedPropNames,
|
154
154
|
w: serializedProps,
|
155
|
-
r: renderBody
|
155
|
+
r: renderBody,
|
156
156
|
};
|
157
157
|
|
158
158
|
var parts = [id, typeName];
|
@@ -233,7 +233,7 @@ function getInitComponentsData(out, componentDefs) {
|
|
233
233
|
l: isLast && 1,
|
234
234
|
g: serializedGlobals,
|
235
235
|
w: componentDefs,
|
236
|
-
t: newTypes
|
236
|
+
t: newTypes,
|
237
237
|
};
|
238
238
|
}
|
239
239
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
var Component = require("../../../runtime/components/Component");
|
2
|
-
var
|
2
|
+
var req = require("@internal/require");
|
3
3
|
var getComponentForEl =
|
4
4
|
require("@internal/components-util").___getComponentForEl;
|
5
5
|
|
@@ -8,14 +8,15 @@ var complain = "MARKO_DEBUG" && require("complain");
|
|
8
8
|
// expose legacy
|
9
9
|
require("@internal/components-registry").___legacy = exports;
|
10
10
|
exports.load = function (typeName) {
|
11
|
-
return exports.defineWidget(
|
11
|
+
return exports.defineWidget(req(typeName));
|
12
12
|
};
|
13
13
|
|
14
14
|
// legacy api
|
15
15
|
exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
|
16
16
|
exports.defineWidget = require("@internal/components-define-widget-legacy");
|
17
17
|
exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
|
18
|
-
exports.makeRenderable =
|
18
|
+
exports.makeRenderable =
|
19
|
+
exports.renderable = require("../../../runtime/renderable");
|
19
20
|
|
20
21
|
// browser only
|
21
22
|
var Widget = (exports.Widget = Component);
|
@@ -4,7 +4,8 @@ var modernMarko = require("@internal/components-entry");
|
|
4
4
|
exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
|
5
5
|
exports.defineWidget = require("@internal/components-define-widget-legacy");
|
6
6
|
exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
|
7
|
-
exports.makeRenderable =
|
7
|
+
exports.makeRenderable =
|
8
|
+
exports.renderable = require("../../../runtime/renderable");
|
8
9
|
|
9
10
|
// server only
|
10
11
|
exports.writeInitWidgetsCode = modernMarko.writeInitComponentsCode;
|
@@ -8,7 +8,7 @@ var createFragmentNode =
|
|
8
8
|
var ComponentDef = require("../../../runtime/components/ComponentDef");
|
9
9
|
var domData = require("../../../runtime/components/dom-data");
|
10
10
|
var componentsUtil = require("@internal/components-util");
|
11
|
-
var
|
11
|
+
var req = require("@internal/require");
|
12
12
|
var componentLookup = componentsUtil.___componentLookup;
|
13
13
|
var addComponentRootToKeyedElements =
|
14
14
|
componentsUtil.___addComponentRootToKeyedElements;
|
@@ -69,7 +69,7 @@ function addPendingDef(def, type, meta, host, runtimeId) {
|
|
69
69
|
def,
|
70
70
|
meta,
|
71
71
|
host,
|
72
|
-
runtimeId
|
72
|
+
runtimeId,
|
73
73
|
]);
|
74
74
|
}
|
75
75
|
|
@@ -83,7 +83,7 @@ function load(typeName, isLegacy) {
|
|
83
83
|
} else if (isLegacy) {
|
84
84
|
target = exports.___legacy.load(typeName);
|
85
85
|
} else {
|
86
|
-
target =
|
86
|
+
target = req(typeName);
|
87
87
|
// eslint-disable-next-line no-constant-condition
|
88
88
|
if ("MARKO_DEBUG") {
|
89
89
|
complain(
|
@@ -140,7 +140,7 @@ function getComponentClass(typeName, isLegacy) {
|
|
140
140
|
ComponentClass = {
|
141
141
|
[className]: function (id, doc) {
|
142
142
|
OldComponentClass.call(this, id, doc);
|
143
|
-
}
|
143
|
+
},
|
144
144
|
}[className];
|
145
145
|
ComponentClass.prototype = OldComponentClass.prototype;
|
146
146
|
}
|
@@ -414,7 +414,7 @@ function initServerRendered(renderedComponents, host) {
|
|
414
414
|
|
415
415
|
var fakeArray = (win[globalKey] = {
|
416
416
|
r: runtimeId,
|
417
|
-
concat: initServerRendered
|
417
|
+
concat: initServerRendered,
|
418
418
|
});
|
419
419
|
|
420
420
|
// eslint-disable-next-line no-constant-condition
|
@@ -495,18 +495,9 @@ function initServerRendered(renderedComponents, host) {
|
|
495
495
|
.map(function (componentDef) {
|
496
496
|
var typeName = meta.___types[componentDef[1]];
|
497
497
|
|
498
|
-
return
|
499
|
-
registered[typeName] ||
|
498
|
+
return registered[typeName] ||
|
500
499
|
document.readyState === "complete" ||
|
501
|
-
(
|
502
|
-
// loader.runtime is only going to exist for lasso apps
|
503
|
-
// this code is used to detect if a module was registered
|
504
|
-
// via a browser.json but not executed.
|
505
|
-
loader.runtime &&
|
506
|
-
loader.runtime.resolve &&
|
507
|
-
loader.runtime.resolve(typeName)
|
508
|
-
)
|
509
|
-
)
|
500
|
+
req.e(typeName)
|
510
501
|
? tryHydrateComponent(componentDef, meta, host, runtimeId)
|
511
502
|
: addPendingDef(componentDef, typeName, meta, host, runtimeId);
|
512
503
|
})
|
@@ -594,4 +585,5 @@ exports.___createComponent = createComponent;
|
|
594
585
|
exports.___getComponentClass = getComponentClass;
|
595
586
|
exports.___initServerRendered = win.$initComponents = initServerRendered;
|
596
587
|
|
597
|
-
require("../../../runtime/components/ComponentsContext").___initClientRendered =
|
588
|
+
require("../../../runtime/components/ComponentsContext").___initClientRendered =
|
589
|
+
initClientRendered;
|
@@ -11,7 +11,7 @@ module.exports = function (data) {
|
|
11
11
|
},
|
12
12
|
end: function () {
|
13
13
|
writer.close();
|
14
|
-
}
|
14
|
+
},
|
15
15
|
};
|
16
16
|
var out = this.createOut(
|
17
17
|
data && data.$global,
|
@@ -19,7 +19,7 @@ module.exports = function (data) {
|
|
19
19
|
undefined,
|
20
20
|
this.___shouldBuffer
|
21
21
|
);
|
22
|
-
out.once("error", err => {
|
22
|
+
out.once("error", (err) => {
|
23
23
|
facade.write = facade.end = noop;
|
24
24
|
writer.abort(err);
|
25
25
|
});
|
@@ -0,0 +1,89 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var nodePath = require("path");
|
4
|
+
var fs = require("fs");
|
5
|
+
var Module = require("module").Module;
|
6
|
+
var markoCompiler = require("../../../compiler");
|
7
|
+
var cwd = process.cwd();
|
8
|
+
var fsOptions = { encoding: "utf8" };
|
9
|
+
var requiredCompilerOptions = { modules: "cjs" };
|
10
|
+
|
11
|
+
module.exports = function load(templatePath, templateSrc, options) {
|
12
|
+
if (arguments.length === 1) {
|
13
|
+
return doLoad(templatePath);
|
14
|
+
} else if (arguments.length === 2) {
|
15
|
+
// see if second argument is templateSrc (a String)
|
16
|
+
// or options (an Object)
|
17
|
+
var lastArg = arguments[arguments.length - 1];
|
18
|
+
if (typeof lastArg === "string") {
|
19
|
+
return doLoad(templatePath, templateSrc);
|
20
|
+
} else {
|
21
|
+
var finalOptions = templateSrc;
|
22
|
+
return doLoad(templatePath, null, finalOptions);
|
23
|
+
}
|
24
|
+
} else if (arguments.length === 3) {
|
25
|
+
// assume function called according to function signature
|
26
|
+
return doLoad(templatePath, templateSrc, options);
|
27
|
+
} else {
|
28
|
+
throw new Error("Illegal arguments");
|
29
|
+
}
|
30
|
+
};
|
31
|
+
|
32
|
+
function loadSource(templatePath, compiledSrc) {
|
33
|
+
// Short-circuit loading if the template has already been cached in the Node.js require cache
|
34
|
+
var cached = require.cache[templatePath];
|
35
|
+
if (cached) {
|
36
|
+
return cached.exports;
|
37
|
+
}
|
38
|
+
|
39
|
+
var templateModule = new Module(templatePath, module);
|
40
|
+
templateModule.paths = Module._nodeModulePaths(
|
41
|
+
nodePath.dirname(templatePath)
|
42
|
+
);
|
43
|
+
templateModule.filename = templatePath;
|
44
|
+
|
45
|
+
Module._cache[templatePath] = templateModule;
|
46
|
+
|
47
|
+
templateModule._compile(compiledSrc, templatePath);
|
48
|
+
|
49
|
+
return templateModule.exports;
|
50
|
+
}
|
51
|
+
|
52
|
+
function getCachedTemplate(templatePath) {
|
53
|
+
var precompiledTemplatePath = templatePath + ".js";
|
54
|
+
var templateModule =
|
55
|
+
require.cache[templatePath] || require.cache[precompiledTemplatePath];
|
56
|
+
|
57
|
+
if (templateModule) {
|
58
|
+
return templateModule.exports;
|
59
|
+
} else if (fs.existsSync(precompiledTemplatePath)) {
|
60
|
+
return require(precompiledTemplatePath);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
function doLoad(templatePath, templateSrc, options) {
|
65
|
+
options = Object.assign(
|
66
|
+
{},
|
67
|
+
markoCompiler.defaultOptions,
|
68
|
+
options,
|
69
|
+
requiredCompilerOptions
|
70
|
+
);
|
71
|
+
templatePath = nodePath.resolve(cwd, templatePath);
|
72
|
+
var template = getCachedTemplate(templatePath);
|
73
|
+
|
74
|
+
if (!template) {
|
75
|
+
if (templateSrc == null) {
|
76
|
+
templateSrc = fs.readFileSync(templatePath, fsOptions);
|
77
|
+
}
|
78
|
+
|
79
|
+
var compiledSrc = markoCompiler.compile(templateSrc, templatePath, options);
|
80
|
+
|
81
|
+
template = loadSource(templatePath, compiledSrc);
|
82
|
+
}
|
83
|
+
|
84
|
+
if (template.default) {
|
85
|
+
template = template.default;
|
86
|
+
}
|
87
|
+
|
88
|
+
return template;
|
89
|
+
}
|
@@ -1,88 +1,23 @@
|
|
1
1
|
"use strict";
|
2
|
-
var nodePath = require("path");
|
3
|
-
var fs = require("fs");
|
4
|
-
var Module = require("module").Module;
|
5
|
-
var markoCompiler = require("../../../compiler");
|
6
|
-
var cwd = process.cwd();
|
7
|
-
var fsOptions = { encoding: "utf8" };
|
8
|
-
var requiredCompilerOptions = { modules: "cjs" };
|
9
2
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
function loadSource(templatePath, compiledSrc) {
|
32
|
-
// Short-circuit loading if the template has already been cached in the Node.js require cache
|
33
|
-
var cached = require.cache[templatePath];
|
34
|
-
if (cached) {
|
35
|
-
return cached.exports;
|
36
|
-
}
|
37
|
-
|
38
|
-
var templateModule = new Module(templatePath, module);
|
39
|
-
templateModule.paths = Module._nodeModulePaths(
|
40
|
-
nodePath.dirname(templatePath)
|
41
|
-
);
|
42
|
-
templateModule.filename = templatePath;
|
43
|
-
|
44
|
-
Module._cache[templatePath] = templateModule;
|
45
|
-
|
46
|
-
templateModule._compile(compiledSrc, templatePath);
|
47
|
-
|
48
|
-
return templateModule.exports;
|
49
|
-
}
|
50
|
-
|
51
|
-
function getCachedTemplate(templatePath) {
|
52
|
-
var precompiledTemplatePath = templatePath + ".js";
|
53
|
-
var templateModule =
|
54
|
-
require.cache[templatePath] || require.cache[precompiledTemplatePath];
|
55
|
-
|
56
|
-
if (templateModule) {
|
57
|
-
return templateModule.exports;
|
58
|
-
} else if (fs.existsSync(precompiledTemplatePath)) {
|
59
|
-
return require(precompiledTemplatePath);
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
function doLoad(templatePath, templateSrc, options) {
|
64
|
-
options = Object.assign(
|
65
|
-
{},
|
66
|
-
markoCompiler.defaultOptions,
|
67
|
-
options,
|
68
|
-
requiredCompilerOptions
|
69
|
-
);
|
70
|
-
templatePath = nodePath.resolve(cwd, templatePath);
|
71
|
-
var template = getCachedTemplate(templatePath);
|
72
|
-
|
73
|
-
if (!template) {
|
74
|
-
if (templateSrc == null) {
|
75
|
-
templateSrc = fs.readFileSync(templatePath, fsOptions);
|
76
|
-
}
|
77
|
-
|
78
|
-
var compiledSrc = markoCompiler.compile(templateSrc, templatePath, options);
|
79
|
-
|
80
|
-
template = loadSource(templatePath, compiledSrc);
|
81
|
-
}
|
82
|
-
|
83
|
-
if (template.default) {
|
84
|
-
template = template.default;
|
85
|
-
}
|
86
|
-
|
87
|
-
return template;
|
88
|
-
}
|
3
|
+
const req = require("@internal/require");
|
4
|
+
let fallback;
|
5
|
+
module.exports = !require.extensions[".marko"]
|
6
|
+
? require("./fallback-node")
|
7
|
+
: function load(templatePath, templateSrc, options) {
|
8
|
+
switch (arguments.length) {
|
9
|
+
case 1:
|
10
|
+
return req(templatePath);
|
11
|
+
case 2:
|
12
|
+
return (fallback = fallback || require("./fallback-node"))(
|
13
|
+
templatePath,
|
14
|
+
templateSrc
|
15
|
+
);
|
16
|
+
case 3:
|
17
|
+
return (fallback = fallback || require("./fallback-node"))(
|
18
|
+
templatePath,
|
19
|
+
templateSrc,
|
20
|
+
options
|
21
|
+
);
|
22
|
+
}
|
23
|
+
};
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module.exports = function render(input, out) {
|
2
|
+
var isComponent = !input.n;
|
3
|
+
var shouldPreserve = !("i" in input) || input.i;
|
4
|
+
var componentsContext = out.___components;
|
5
|
+
var isHydrate =
|
6
|
+
componentsContext && componentsContext.___globalContext.___isHydrate;
|
7
|
+
var ownerComponent = out.___assignedComponentDef.___component;
|
8
|
+
var referenceComponent = ownerComponent;
|
9
|
+
var key = out.___assignedKey;
|
10
|
+
var checkKey = key;
|
11
|
+
|
12
|
+
if (key[0] !== "@") {
|
13
|
+
var parentComponent = componentsContext.___componentDef.___component;
|
14
|
+
if (ownerComponent !== parentComponent) {
|
15
|
+
referenceComponent = parentComponent;
|
16
|
+
checkKey += ":" + ownerComponent.id;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
var isPreserved =
|
21
|
+
shouldPreserve &&
|
22
|
+
(isHydrate || referenceComponent.___keyedElements[checkKey]);
|
23
|
+
|
24
|
+
if (isComponent) {
|
25
|
+
out.bf(key, ownerComponent, shouldPreserve);
|
26
|
+
|
27
|
+
if (!isPreserved && input.renderBody) {
|
28
|
+
input.renderBody(out);
|
29
|
+
}
|
30
|
+
|
31
|
+
out.ef();
|
32
|
+
} else {
|
33
|
+
if (isPreserved) {
|
34
|
+
if (input.b) {
|
35
|
+
out.___parent.___preserveBody = true;
|
36
|
+
} else {
|
37
|
+
out.beginElement("", null, key, ownerComponent);
|
38
|
+
out.___parent.___preserve = true;
|
39
|
+
out.endElement();
|
40
|
+
}
|
41
|
+
} else if (input.renderBody) {
|
42
|
+
input.renderBody(out);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
var ComponentsContext = require("../../../runtime/components/ComponentsContext");
|
2
|
+
var getComponentsContext = ComponentsContext.___getComponentsContext;
|
3
|
+
|
4
|
+
module.exports = function render(input, out) {
|
5
|
+
var isComponent = !input.n;
|
6
|
+
var shouldPreserve = !("i" in input) || input.i;
|
7
|
+
var componentsContext = out.___components;
|
8
|
+
|
9
|
+
if (isComponent) {
|
10
|
+
out.bf(out.___assignedKey, out.___assignedComponentDef.___component, true);
|
11
|
+
}
|
12
|
+
|
13
|
+
if (input.renderBody) {
|
14
|
+
if (shouldPreserve) {
|
15
|
+
var parentPreserved = false;
|
16
|
+
|
17
|
+
if (componentsContext) {
|
18
|
+
parentPreserved = componentsContext.___isPreserved;
|
19
|
+
} else {
|
20
|
+
componentsContext = getComponentsContext(out);
|
21
|
+
}
|
22
|
+
|
23
|
+
componentsContext.___isPreserved = true;
|
24
|
+
input.renderBody(out);
|
25
|
+
componentsContext.___isPreserved = parentPreserved;
|
26
|
+
} else {
|
27
|
+
input.renderBody(out);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
if (isComponent) {
|
32
|
+
out.ef();
|
33
|
+
}
|
34
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
load.e = exists;
|
3
|
+
module.exports = load;
|
4
|
+
|
5
|
+
function load(id) {
|
6
|
+
return interopRequire(require(id));
|
7
|
+
}
|
8
|
+
|
9
|
+
function exists(id) {
|
10
|
+
// In lasso this helper is used to determine if a module was loaded but not run.
|
11
|
+
return !!(
|
12
|
+
require.runtime &&
|
13
|
+
require.runtime.resolve &&
|
14
|
+
require.runtime.resolve(id, "/")
|
15
|
+
);
|
16
|
+
}
|
17
|
+
|
18
|
+
function interopRequire(mod) {
|
19
|
+
return mod.default || mod;
|
20
|
+
}
|