marko 4.24.6 → 4.26.0
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/markoc.js +18 -18
- package/dist/compiler/CompileContext.js +3 -8
- package/dist/core-tags/components/init-components-tag.js +1 -52
- package/dist/core-tags/components/package.json +1 -3
- package/dist/core-tags/components/preferred-script-location-tag.js +2 -2
- package/dist/core-tags/components/preserve-tag.js +1 -27
- package/dist/core-tags/core/await/AsyncValue.js +20 -20
- package/dist/core-tags/core/await/renderer.js +11 -12
- package/dist/core-tags/core/await/reorderer-renderer.js +11 -6
- package/dist/index.js +1 -39
- package/dist/node-require/index.js +11 -0
- package/dist/node_modules/@internal/components-beginComponent/index-browser.js +12 -0
- package/dist/{runtime/components/beginComponent.js → node_modules/@internal/components-beginComponent/index.js} +14 -14
- package/dist/node_modules/@internal/components-beginComponent/package.json +11 -0
- package/dist/{runtime/components/legacy/defineWidget-legacy-browser.js → node_modules/@internal/components-define-widget-legacy/index-browser.js} +47 -47
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
- package/dist/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
- package/dist/node_modules/@internal/components-endComponent/index.js +11 -0
- package/dist/node_modules/@internal/components-endComponent/package.json +11 -0
- package/dist/node_modules/@internal/components-entry/index-browser.js +9 -0
- package/dist/node_modules/@internal/components-entry/index.js +285 -0
- package/dist/node_modules/@internal/components-entry/package.json +11 -0
- package/dist/{runtime/components/legacy → node_modules/@internal/components-entry-legacy}/index-browser.js +14 -15
- package/dist/node_modules/@internal/components-entry-legacy/index.js +14 -0
- package/dist/node_modules/@internal/components-entry-legacy/package.json +11 -0
- package/dist/{runtime/components/init-components-browser.js → node_modules/@internal/components-registry/index-browser.js} +180 -79
- package/dist/node_modules/@internal/components-registry/index.js +34 -0
- package/dist/node_modules/@internal/components-registry/package.json +11 -0
- package/dist/{runtime/components/util-browser.js → node_modules/@internal/components-util/index-browser.js} +23 -24
- package/dist/{runtime/components/util.js → node_modules/@internal/components-util/index.js} +10 -12
- package/dist/node_modules/@internal/components-util/package.json +11 -0
- package/dist/node_modules/@internal/create-readable/index-browser.js +25 -0
- package/dist/node_modules/@internal/create-readable/index.js +52 -0
- package/dist/node_modules/@internal/create-readable/package.json +11 -0
- package/dist/node_modules/@internal/init-components-tag/index.js +52 -0
- package/dist/node_modules/@internal/init-components-tag/package.json +11 -0
- package/dist/{loader/index-default.js → node_modules/@internal/loader/index.js} +1 -1
- package/dist/node_modules/@internal/loader/package.json +11 -0
- package/dist/{core-tags/components/preserve-tag-browser.js → node_modules/@internal/preserve-tag/index-browser.js} +8 -8
- package/dist/node_modules/@internal/preserve-tag/index.js +27 -0
- package/dist/node_modules/@internal/preserve-tag/package.json +11 -0
- package/dist/node_modules/@internal/set-immediate/index-browser.js +17 -0
- package/dist/node_modules/@internal/set-immediate/index-worker.js +2 -0
- package/dist/node_modules/@internal/set-immediate/index.js +2 -0
- package/dist/node_modules/@internal/set-immediate/package.json +11 -0
- package/dist/runtime/RenderResult.js +24 -19
- package/dist/runtime/components/Component.js +154 -151
- package/dist/runtime/components/ComponentDef.js +28 -28
- package/dist/runtime/components/ComponentsContext.js +19 -19
- package/dist/runtime/components/GlobalComponentsContext.js +4 -4
- package/dist/runtime/components/KeySequence.js +3 -3
- package/dist/runtime/components/ServerComponent.js +13 -13
- package/dist/runtime/components/State.js +28 -28
- package/dist/runtime/components/attach-detach.js +9 -9
- package/dist/runtime/components/defineComponent.js +5 -5
- package/dist/runtime/components/dom-data.js +6 -6
- package/dist/runtime/components/event-delegation.js +15 -16
- package/dist/runtime/components/index.js +1 -285
- package/dist/runtime/components/legacy/browser.json +1 -1
- package/dist/runtime/components/legacy/defineComponent-legacy.js +1 -1
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +18 -19
- package/dist/runtime/components/legacy/defineWidget-legacy.js +1 -18
- package/dist/runtime/components/legacy/dependencies/html.js +1 -1
- package/dist/runtime/components/legacy/dependencies/index.js +9 -9
- package/dist/runtime/components/legacy/helper-getWidgetFromOut.js +3 -3
- package/dist/runtime/components/legacy/index.js +1 -14
- package/dist/runtime/components/legacy/renderer-legacy.js +43 -43
- package/dist/runtime/components/registry.js +1 -34
- package/dist/runtime/components/renderer.js +38 -38
- package/dist/runtime/components/update-manager.js +10 -10
- package/dist/runtime/createOut.js +1 -1
- package/dist/runtime/dom-insert.js +6 -6
- package/dist/runtime/helpers/_change-case.js +2 -2
- package/dist/runtime/helpers/assign.js +3 -2
- package/dist/runtime/helpers/dynamic-tag.js +14 -16
- package/dist/runtime/helpers/load-template.js +1 -1
- package/dist/runtime/helpers/merge.js +3 -1
- package/dist/runtime/helpers/style-value.js +2 -2
- package/dist/runtime/html/AsyncStream.js +61 -52
- package/dist/runtime/html/BufferedWriter.js +5 -1
- package/dist/runtime/html/StringWriter.js +7 -3
- package/dist/runtime/html/helpers/_dynamic-attr.js +2 -2
- package/dist/runtime/html/helpers/attr.js +4 -4
- package/dist/runtime/html/helpers/attrs.js +3 -3
- package/dist/runtime/html/helpers/data-marko.js +4 -6
- package/dist/runtime/html/helpers/escape-quotes.js +2 -2
- package/dist/runtime/html/helpers/escape-xml.js +1 -1
- package/dist/runtime/html/helpers/props-script.js +1 -1
- package/dist/runtime/html/index.js +15 -12
- package/dist/runtime/renderable.js +5 -5
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +102 -103
- package/dist/runtime/vdom/VComment.js +7 -7
- package/dist/runtime/vdom/VComponent.js +5 -5
- package/dist/runtime/vdom/VDocumentFragment.js +8 -8
- package/dist/runtime/vdom/VElement.js +55 -54
- package/dist/runtime/vdom/VFragment.js +9 -9
- package/dist/runtime/vdom/VNode.js +30 -30
- package/dist/runtime/vdom/VText.js +7 -7
- package/dist/runtime/vdom/helpers/v-element.js +1 -1
- package/dist/runtime/vdom/helpers/v-text.js +1 -1
- package/dist/runtime/vdom/index.js +12 -22
- package/dist/runtime/vdom/morphdom/fragment.js +5 -5
- package/dist/runtime/vdom/morphdom/helpers.js +3 -3
- package/dist/runtime/vdom/morphdom/index.js +72 -68
- package/dist/runtime/vdom/morphdom/specialElHandlers.js +8 -8
- package/dist/runtime/vdom/preserve-attrs.js +1 -1
- package/dist/runtime/vdom/vdom.js +19 -21
- package/docs/body-content.md +2 -2
- package/docs/class-components.md +3 -3
- package/docs/express.md +1 -1
- package/docs/lasso.md +3 -6
- package/docs/marko-v4.md +5 -5
- package/docs/redux.md +1 -1
- package/docs/server-side-rendering.md +2 -2
- package/docs/why-is-marko-fast.md +2 -10
- package/package.json +4 -4
- package/src/browser-refresh.js +2 -2
- package/src/compiler/CodeWriter.js +1 -3
- package/src/compiler/CompileContext.js +3 -8
- package/src/compiler/Compiler.js +4 -4
- package/src/compiler/HtmlJsParser.js +1 -1
- package/src/compiler/Migrator.js +1 -1
- package/src/compiler/Parser.js +3 -3
- package/src/compiler/ast/CustomTag.js +9 -11
- package/src/compiler/ast/HtmlAttribute/html/generateCode.js +2 -2
- package/src/compiler/ast/HtmlAttribute/index.js +1 -1
- package/src/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js +1 -1
- package/src/compiler/ast/HtmlElement/vdom/generateCode.js +1 -1
- package/src/compiler/ast/TemplateRoot.js +1 -1
- package/src/compiler/ast/Text/html/generateCode.js +3 -3
- package/src/compiler/ast/Text/vdom/generateCode.js +1 -1
- package/src/compiler/index.js +4 -4
- package/src/compiler/modules.js +4 -4
- package/src/compiler/util/finger-print.js +1 -1
- package/src/compiler/util/parseExpression.js +1 -1
- package/src/compiler/util/parseStatement.js +1 -1
- package/src/compiler/util/removeDashes.js +1 -1
- package/src/compiler/util/safeVarName.js +1 -1
- package/src/compiler/util/tokenizer.js +1 -1
- package/src/core-tags/cache/cached-fragment-tag-transformer.js +1 -1
- package/src/core-tags/cache/cached-fragment-tag.js +4 -4
- package/src/core-tags/cache/default-cache-manager.js +3 -3
- package/src/core-tags/components/TransformHelper/ComponentArgsCompiler.js +1 -1
- package/src/core-tags/components/TransformHelper/convertToComponent.js +1 -1
- package/src/core-tags/components/TransformHelper/handleComponentPreserveAttrs.js +1 -1
- package/src/core-tags/components/init-components-tag.js +1 -54
- package/src/core-tags/components/package.json +1 -3
- package/src/core-tags/components/preferred-script-location-tag.js +1 -1
- package/src/core-tags/components/preserve-tag.js +1 -27
- package/src/core-tags/components/util/getTransformHelper.js +1 -1
- package/src/core-tags/core/await/AsyncValue.js +3 -3
- package/src/core-tags/core/await/noop-render.js +1 -1
- package/src/core-tags/core/await/renderer.js +8 -7
- package/src/core-tags/core/await/reorderer-renderer.js +35 -14
- package/src/core-tags/core/await/transformer.js +1 -1
- package/src/core-tags/core/core-transformer.js +2 -2
- package/src/core-tags/migrate/all-tags/index.js +1 -1
- package/src/core-tags/migrate/all-templates/index.js +1 -1
- package/src/core-tags/migrate/include-tag.js +3 -2
- package/src/core-tags/migrate/util/parseFor.js +3 -2
- package/src/core-tags/migrate/util/printJS.js +1 -1
- package/src/defineRenderer.js +1 -1
- package/src/express.js +1 -1
- package/src/hot-reload.js +5 -5
- package/src/index.js +1 -41
- package/src/legacy-helpers/notEmpty.js +1 -1
- package/src/node-require/index.js +12 -1
- package/src/{runtime/components/beginComponent-browser.js → node_modules/@internal/components-beginComponent/index-browser.js} +1 -1
- package/src/{runtime/components/beginComponent.js → node_modules/@internal/components-beginComponent/index.js} +2 -2
- package/src/node_modules/@internal/components-beginComponent/package.json +11 -0
- package/src/{runtime/components/legacy/defineWidget-legacy-browser.js → node_modules/@internal/components-define-widget-legacy/index-browser.js} +21 -23
- package/src/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
- package/src/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
- package/src/{runtime/components/endComponent.js → node_modules/@internal/components-endComponent/index.js} +1 -1
- package/src/node_modules/@internal/components-endComponent/package.json +11 -0
- package/src/node_modules/@internal/components-entry/index-browser.js +9 -0
- package/src/node_modules/@internal/components-entry/index.js +301 -0
- package/src/node_modules/@internal/components-entry/package.json +11 -0
- package/src/node_modules/@internal/components-entry-legacy/index-browser.js +74 -0
- package/src/node_modules/@internal/components-entry-legacy/index.js +15 -0
- package/src/node_modules/@internal/components-entry-legacy/package.json +11 -0
- package/src/{runtime/components/init-components-browser.js → node_modules/@internal/components-registry/index-browser.js} +240 -75
- package/src/node_modules/@internal/components-registry/index.js +44 -0
- package/src/node_modules/@internal/components-registry/package.json +11 -0
- package/src/{runtime/components/util-browser.js → node_modules/@internal/components-util/index-browser.js} +11 -10
- package/src/{runtime/components/util.js → node_modules/@internal/components-util/index.js} +0 -2
- package/src/node_modules/@internal/components-util/package.json +11 -0
- package/src/node_modules/@internal/create-readable/index-browser.js +30 -0
- package/src/node_modules/@internal/create-readable/index.js +57 -0
- package/src/node_modules/@internal/create-readable/package.json +11 -0
- package/src/node_modules/@internal/init-components-tag/index.js +54 -0
- package/src/node_modules/@internal/init-components-tag/package.json +11 -0
- package/src/{loader/index-default.js → node_modules/@internal/loader/index.js} +2 -2
- package/src/node_modules/@internal/loader/package.json +11 -0
- package/src/node_modules/@internal/preserve-tag/index.js +27 -0
- package/src/node_modules/@internal/preserve-tag/package.json +11 -0
- package/src/node_modules/@internal/set-immediate/index-browser.js +17 -0
- package/src/node_modules/@internal/set-immediate/index-worker.js +2 -0
- package/src/node_modules/@internal/set-immediate/index.js +2 -0
- package/src/node_modules/@internal/set-immediate/package.json +11 -0
- package/src/runtime/RenderResult.js +20 -18
- package/src/runtime/components/Component.js +44 -41
- package/src/runtime/components/ComponentDef.js +9 -9
- package/src/runtime/components/ComponentsContext.js +4 -5
- package/src/runtime/components/GlobalComponentsContext.js +2 -1
- package/src/runtime/components/KeySequence.js +1 -1
- package/src/runtime/components/State.js +6 -6
- package/src/runtime/components/attach-detach.js +4 -4
- package/src/runtime/components/defineComponent.js +1 -1
- package/src/runtime/components/event-delegation.js +10 -10
- package/src/runtime/components/index.js +1 -301
- package/src/runtime/components/jquery.js +2 -2
- package/src/runtime/components/legacy/browser.json +1 -1
- package/src/runtime/components/legacy/defineRenderer-legacy.js +5 -6
- package/src/runtime/components/legacy/defineWidget-legacy.js +1 -18
- package/src/runtime/components/legacy/dependencies/html.js +1 -1
- package/src/runtime/components/legacy/dependencies/index.js +3 -3
- package/src/runtime/components/legacy/helper-getWidgetFromOut.js +3 -3
- package/src/runtime/components/legacy/index.js +1 -15
- package/src/runtime/components/legacy/renderer-legacy.js +7 -7
- package/src/runtime/components/ready.js +2 -2
- package/src/runtime/components/registry.js +1 -44
- package/src/runtime/components/renderer.js +4 -4
- package/src/runtime/components/update-manager.js +1 -1
- package/src/runtime/dom-insert.js +8 -8
- package/src/runtime/helpers/_weak-map.js +2 -2
- package/src/runtime/helpers/assign.js +3 -1
- package/src/runtime/helpers/bind-component.js +2 -2
- package/src/runtime/helpers/dynamic-tag.js +2 -4
- package/src/runtime/helpers/for-in.js +1 -1
- package/src/runtime/helpers/load-nested-tag.js +1 -1
- package/src/runtime/helpers/load-template.js +1 -1
- package/src/runtime/helpers/merge.js +3 -1
- package/src/runtime/helpers/noop.js +1 -1
- package/src/runtime/helpers/style-value.js +1 -1
- package/src/runtime/helpers/to-string.js +1 -1
- package/src/runtime/html/AsyncStream.js +90 -76
- package/src/runtime/html/BufferedWriter.js +6 -2
- package/src/runtime/html/StringWriter.js +15 -9
- package/src/runtime/html/helpers/attrs.js +3 -3
- package/src/runtime/html/helpers/data-marko.js +0 -2
- package/src/runtime/html/helpers/escape-quotes.js +1 -1
- package/src/runtime/html/helpers/escape-xml.js +1 -1
- package/src/runtime/html/index.js +23 -13
- package/src/runtime/queueMicrotask.js +2 -2
- package/src/runtime/renderable.js +9 -9
- package/src/runtime/vdom/AsyncVDOMBuilder.js +46 -51
- package/src/runtime/vdom/VComment.js +3 -3
- package/src/runtime/vdom/VDocumentFragment.js +3 -3
- package/src/runtime/vdom/VElement.js +17 -13
- package/src/runtime/vdom/VFragment.js +1 -1
- package/src/runtime/vdom/VNode.js +2 -2
- package/src/runtime/vdom/VText.js +3 -3
- package/src/runtime/vdom/helpers/attrs.js +1 -1
- package/src/runtime/vdom/helpers/const.js +2 -2
- package/src/runtime/vdom/helpers/v-element.js +1 -1
- package/src/runtime/vdom/helpers/v-text.js +1 -1
- package/src/runtime/vdom/index.js +21 -23
- package/src/runtime/vdom/morphdom/fragment.js +8 -7
- package/src/runtime/vdom/morphdom/index.js +19 -9
- package/src/runtime/vdom/morphdom/specialElHandlers.js +6 -6
- package/src/runtime/vdom/parse-html.js +4 -4
- package/src/runtime/vdom/preserve-attrs.js +1 -1
- package/src/runtime/vdom/vdom.js +5 -7
- package/src/taglib/taglib-finder/index.js +1 -1
- package/src/taglib/taglib-loader/Tag.js +5 -5
- package/src/taglib/taglib-loader/Taglib.js +2 -2
- package/src/taglib/taglib-loader/json-file-reader.js +1 -1
- package/src/taglib/taglib-loader/loadAttributeFromProps.js +1 -1
- package/src/taglib/taglib-loader/loadTagFromProps.js +5 -6
- package/src/taglib/taglib-loader/tag-def-from-code.js +2 -1
- package/src/taglib/taglib-lookup/TaglibLookup.js +2 -2
- package/src/taglib/taglib-lookup/index.js +1 -1
- package/dist/core-tags/core/await/client-reorder-browser.js +0 -1
- package/dist/core-tags/core/await/client-reorder-runtime.min.js +0 -5
- package/dist/core-tags/core/await/client-reorder.js +0 -11
- package/dist/core-tags/core/await/package.json +0 -6
- package/dist/index-browser.js +0 -4
- package/dist/loader/index.js +0 -7
- package/dist/loader/package.json +0 -5
- package/dist/node-require/index-browser.js +0 -1
- package/dist/package.json +0 -5
- package/dist/runtime/components/beginComponent-browser.js +0 -12
- package/dist/runtime/components/endComponent.js +0 -11
- package/dist/runtime/components/index-browser.js +0 -14
- package/dist/runtime/components/init-components.js +0 -1
- package/dist/runtime/components/legacy/package.json +0 -6
- package/dist/runtime/components/package.json +0 -12
- package/dist/runtime/components/registry-browser.js +0 -73
- package/dist/runtime/html/Template.js +0 -63
- package/dist/runtime/package.json +0 -5
- package/dist/runtime/setImmediate.js +0 -19
- package/src/core-tags/core/await/client-reorder-browser.js +0 -1
- package/src/core-tags/core/await/client-reorder-runtime.min.js +0 -1
- package/src/core-tags/core/await/client-reorder.js +0 -14
- package/src/core-tags/core/await/package.json +0 -6
- package/src/index-browser.js +0 -3
- package/src/loader/index.js +0 -7
- package/src/loader/package.json +0 -5
- package/src/node-require/index-browser.js +0 -1
- package/src/package.json +0 -5
- package/src/runtime/components/index-browser.js +0 -15
- package/src/runtime/components/init-components.js +0 -1
- package/src/runtime/components/legacy/index-browser.js +0 -73
- package/src/runtime/components/legacy/package.json +0 -6
- package/src/runtime/components/package.json +0 -12
- package/src/runtime/components/registry-browser.js +0 -103
- package/src/runtime/html/Template.js +0 -62
- package/src/runtime/package.json +0 -5
- package/src/runtime/setImmediate.js +0 -21
- /package/dist/{runtime/components/endComponent-browser.js → node_modules/@internal/components-endComponent/index-browser.js} +0 -0
- /package/dist/{core-tags/components/init-components-tag-browser.js → node_modules/@internal/init-components-tag/index-browser.js} +0 -0
- /package/dist/{loader → node_modules/@internal/loader}/index-browser.js +0 -0
- /package/src/{runtime/components/endComponent-browser.js → node_modules/@internal/components-endComponent/index-browser.js} +0 -0
- /package/src/{core-tags/components/init-components-tag-browser.js → node_modules/@internal/init-components-tag/index-browser.js} +0 -0
- /package/src/{loader → node_modules/@internal/loader}/index-browser.js +0 -0
- /package/src/{core-tags/components/preserve-tag-browser.js → node_modules/@internal/preserve-tag/index-browser.js} +0 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
var stream = require("stream");
|
2
|
+
|
3
|
+
var OutgoingMessageProto = require("http").OutgoingMessage.prototype;
|
4
|
+
if (String(OutgoingMessageProto.flush).indexOf("deprecated") !== -1) {
|
5
|
+
// Yes, we are monkey-patching http. This method should never have been added and it was introduced on
|
6
|
+
// the iojs fork. It was quickly deprecated and I'm 99% sure no one is actually using it.
|
7
|
+
// See:
|
8
|
+
// - https://github.com/marko-js/async-writer/issues/3
|
9
|
+
// - https://github.com/nodejs/node/issues/2920
|
10
|
+
//
|
11
|
+
// This method causes problems since marko looks for the flush method and calls it found.
|
12
|
+
// The `res.flush()` method is introduced by the [compression](https://www.npmjs.com/package/compression)
|
13
|
+
// middleware, but, otherwise, it should typically not exist.
|
14
|
+
delete OutgoingMessageProto.flush;
|
15
|
+
}
|
16
|
+
|
17
|
+
class Readable extends stream.Readable {
|
18
|
+
constructor(template, data) {
|
19
|
+
super();
|
20
|
+
this._X_ = template;
|
21
|
+
this._Y_ = data;
|
22
|
+
this._Z_ = false;
|
23
|
+
}
|
24
|
+
|
25
|
+
write(data) {
|
26
|
+
if (data != null) {
|
27
|
+
this.push(data);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
end() {
|
32
|
+
this.push(null);
|
33
|
+
}
|
34
|
+
|
35
|
+
_read() {
|
36
|
+
if (this._Z_) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
|
40
|
+
this._Z_ = true;
|
41
|
+
var template = this._X_;
|
42
|
+
var data = this._Y_;
|
43
|
+
var globalData = data && data.$global;
|
44
|
+
var out = this._X_.createOut(globalData, this, undefined, template._W_);
|
45
|
+
template.render(data, out);
|
46
|
+
out.end();
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
module.exports = function (data) {
|
51
|
+
return new Readable(this, data);
|
52
|
+
};
|
@@ -0,0 +1,52 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
const INIT_COMPONENTS_KEY = Symbol();
|
4
|
+
|
5
|
+
const addComponentsFromContext = require("@internal/components-entry")._i_;
|
6
|
+
const getInitComponentsCode = require("@internal/components-entry")._h_;
|
7
|
+
|
8
|
+
function addComponentsFromOut(source, target) {
|
9
|
+
const sourceOut = source.out || source;
|
10
|
+
const targetOut = target || sourceOut;
|
11
|
+
const componentsContext = sourceOut.t_;
|
12
|
+
const componentDefs = targetOut.writer.get("componentDefs");
|
13
|
+
addComponentsFromContext(componentsContext, componentDefs);
|
14
|
+
}
|
15
|
+
|
16
|
+
function addInitScript(writer) {
|
17
|
+
const out = writer.state.root;
|
18
|
+
const componentDefs = writer.get("componentDefs");
|
19
|
+
writer.script(getInitComponentsCode(out, componentDefs));
|
20
|
+
}
|
21
|
+
|
22
|
+
module.exports = function render(input, out) {
|
23
|
+
const $global = out.global;
|
24
|
+
if ($global[INIT_COMPONENTS_KEY] === undefined) {
|
25
|
+
$global[INIT_COMPONENTS_KEY] = true;
|
26
|
+
|
27
|
+
out.on("await:finish", addComponentsFromOut);
|
28
|
+
out.on("p_", addInitScript);
|
29
|
+
|
30
|
+
if (out.isSync() === true) {
|
31
|
+
// Generate initialization code for any of the UI components that were
|
32
|
+
// rendered synchronously
|
33
|
+
addComponentsFromOut(out);
|
34
|
+
} else {
|
35
|
+
// Generate initialization code for any of the UI components that were
|
36
|
+
// rendered asynchronously, but were outside an `<await>` tag
|
37
|
+
// (each `<await>` tag will have its own component initialization block)
|
38
|
+
const asyncOut = out.beginAsync({ last: true, timeout: -1 });
|
39
|
+
out.onLast(function (next) {
|
40
|
+
// Ensure we're getting init code starting from the root
|
41
|
+
let rootOut = out;
|
42
|
+
while (rootOut._parentOut) {
|
43
|
+
rootOut = rootOut._parentOut;
|
44
|
+
}
|
45
|
+
// Write out all of the component init code from the main out
|
46
|
+
addComponentsFromOut(rootOut, asyncOut);
|
47
|
+
asyncOut.end();
|
48
|
+
next();
|
49
|
+
});
|
50
|
+
}
|
51
|
+
}
|
52
|
+
};
|
@@ -3,7 +3,7 @@
|
|
3
3
|
var nodePath = require("path");
|
4
4
|
var fs = require("fs");
|
5
5
|
var Module = require("module").Module;
|
6
|
-
var compilerPath = nodePath.join(__dirname, "
|
6
|
+
var compilerPath = nodePath.join(__dirname, "../../../compiler");
|
7
7
|
var markoCompiler = require(compilerPath);
|
8
8
|
var cwd = process.cwd();
|
9
9
|
var fsOptions = { encoding: "utf8" };
|
@@ -1,16 +1,16 @@
|
|
1
1
|
var autoKeyReg = /^\d[\d[\]]*$/;
|
2
2
|
|
3
3
|
module.exports = function render(input, out) {
|
4
|
-
var componentsContext = out.
|
5
|
-
var isHydrate = componentsContext && componentsContext.
|
6
|
-
var ownerComponent = out.
|
4
|
+
var componentsContext = out.t_;
|
5
|
+
var isHydrate = componentsContext && componentsContext.r_.a__;
|
6
|
+
var ownerComponent = out.aa_.v_;
|
7
7
|
var shouldPreserve = !("i" in input) || input.i;
|
8
8
|
var referenceComponent = ownerComponent;
|
9
|
-
var key = out.
|
9
|
+
var key = out.ab_;
|
10
10
|
var checkKey = key;
|
11
11
|
|
12
12
|
if (autoKeyReg.test(key)) {
|
13
|
-
var parentComponent = componentsContext.
|
13
|
+
var parentComponent = componentsContext.q_.v_;
|
14
14
|
if (ownerComponent !== parentComponent) {
|
15
15
|
referenceComponent = parentComponent;
|
16
16
|
checkKey += ":" + ownerComponent.id;
|
@@ -19,15 +19,15 @@ module.exports = function render(input, out) {
|
|
19
19
|
key = checkKey = "@" + key;
|
20
20
|
}
|
21
21
|
|
22
|
-
var isPreserved = Boolean(shouldPreserve && (isHydrate || referenceComponent.
|
22
|
+
var isPreserved = Boolean(shouldPreserve && (isHydrate || referenceComponent.N_[checkKey]));
|
23
23
|
|
24
24
|
if (input.n) {
|
25
25
|
if (isPreserved) {
|
26
26
|
if (input.b) {
|
27
|
-
out.
|
27
|
+
out.ac_.ad_ = true;
|
28
28
|
} else {
|
29
29
|
out.beginElement("", null, key, ownerComponent);
|
30
|
-
out.
|
30
|
+
out.ac_.ae_ = true;
|
31
31
|
out.endElement();
|
32
32
|
}
|
33
33
|
} else if (input.renderBody) {
|
@@ -0,0 +1,27 @@
|
|
1
|
+
var ComponentsContext = require("../../../runtime/components/ComponentsContext");
|
2
|
+
var getComponentsContext = ComponentsContext.U_;
|
3
|
+
|
4
|
+
module.exports = function render(input, out) {
|
5
|
+
var shouldPreserve = Boolean(!("i" in input) || input.i);
|
6
|
+
var isComponent = !input.n;
|
7
|
+
|
8
|
+
if (isComponent) {
|
9
|
+
out.bf(out.ab_, out.aa_.v_, true);
|
10
|
+
}
|
11
|
+
|
12
|
+
if (input.renderBody) {
|
13
|
+
if (shouldPreserve) {
|
14
|
+
var componentsContext = getComponentsContext(out);
|
15
|
+
var parentPreserved = componentsContext.y_;
|
16
|
+
componentsContext.y_ = true;
|
17
|
+
input.renderBody(out);
|
18
|
+
componentsContext.y_ = parentPreserved;
|
19
|
+
} else {
|
20
|
+
input.renderBody(out);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
if (isComponent) {
|
25
|
+
out.ef();
|
26
|
+
}
|
27
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
var queue = [];
|
2
|
+
var msg = "" + Math.random();
|
3
|
+
window.addEventListener("message", function (ev) {
|
4
|
+
if (ev.data === msg) {
|
5
|
+
var callbacks = queue;
|
6
|
+
queue = [];
|
7
|
+
for (var i = 0; i < callbacks.length; i++) {
|
8
|
+
callbacks[i]();
|
9
|
+
}
|
10
|
+
}
|
11
|
+
});
|
12
|
+
|
13
|
+
exports.af_ = function (callback) {
|
14
|
+
if (queue.push(callback) === 1) {
|
15
|
+
window.postMessage(msg, "*");
|
16
|
+
}
|
17
|
+
};
|
@@ -1,8 +1,14 @@
|
|
1
1
|
var domInsert = require("./dom-insert");
|
2
2
|
var complain;
|
3
3
|
|
4
|
+
function getRootNode(el) {
|
5
|
+
var cur = el;
|
6
|
+
while (cur.parentNode) cur = cur.parentNode;
|
7
|
+
return cur;
|
8
|
+
}
|
9
|
+
|
4
10
|
function getComponentDefs(result) {
|
5
|
-
var componentDefs = result.
|
11
|
+
var componentDefs = result.t_;
|
6
12
|
|
7
13
|
if (!componentDefs) {
|
8
14
|
throw Error("No component");
|
@@ -11,8 +17,8 @@ function getComponentDefs(result) {
|
|
11
17
|
}
|
12
18
|
|
13
19
|
function RenderResult(out) {
|
14
|
-
this.out = this.
|
15
|
-
this.
|
20
|
+
this.out = this.u_ = out;
|
21
|
+
this.t_ = undefined;
|
16
22
|
}
|
17
23
|
|
18
24
|
module.exports = RenderResult;
|
@@ -22,7 +28,7 @@ var proto = RenderResult.prototype = {
|
|
22
28
|
return this.getComponents()[0];
|
23
29
|
},
|
24
30
|
getComponents: function (selector) {
|
25
|
-
if (this.
|
31
|
+
if (this.t_ === undefined) {
|
26
32
|
throw Error("Not added to DOM");
|
27
33
|
}
|
28
34
|
|
@@ -31,7 +37,7 @@ var proto = RenderResult.prototype = {
|
|
31
37
|
var components = [];
|
32
38
|
|
33
39
|
componentDefs.forEach(function (componentDef) {
|
34
|
-
var component = componentDef.
|
40
|
+
var component = componentDef.v_;
|
35
41
|
if (!selector || selector(component)) {
|
36
42
|
components.push(component);
|
37
43
|
}
|
@@ -40,27 +46,27 @@ var proto = RenderResult.prototype = {
|
|
40
46
|
return components;
|
41
47
|
},
|
42
48
|
|
43
|
-
afterInsert: function (
|
44
|
-
var out = this.
|
45
|
-
var componentsContext = out.
|
49
|
+
afterInsert: function (host) {
|
50
|
+
var out = this.u_;
|
51
|
+
var componentsContext = out.t_;
|
46
52
|
if (componentsContext) {
|
47
|
-
this.
|
53
|
+
this.t_ = componentsContext.ah_(host);
|
48
54
|
} else {
|
49
|
-
this.
|
55
|
+
this.t_ = null;
|
50
56
|
}
|
51
57
|
|
52
58
|
return this;
|
53
59
|
},
|
54
|
-
getNode: function (
|
55
|
-
return this.
|
60
|
+
getNode: function (host) {
|
61
|
+
return this.u_.ai_(host);
|
56
62
|
},
|
57
63
|
getOutput: function () {
|
58
|
-
return this.
|
64
|
+
return this.u_.aj_();
|
59
65
|
},
|
60
66
|
toString: function () {
|
61
|
-
return this.
|
67
|
+
return this.u_.toString();
|
62
68
|
},
|
63
|
-
document: typeof document
|
69
|
+
document: typeof document === "object" && document
|
64
70
|
};
|
65
71
|
|
66
72
|
Object.defineProperty(proto, "html", {
|
@@ -72,7 +78,7 @@ Object.defineProperty(proto, "html", {
|
|
72
78
|
|
73
79
|
Object.defineProperty(proto, "context", {
|
74
80
|
get: function () {
|
75
|
-
return this.
|
81
|
+
return this.u_;
|
76
82
|
// eslint-disable-next-line no-constant-condition
|
77
83
|
}
|
78
84
|
});
|
@@ -85,8 +91,7 @@ Object.defineProperty(proto, "context", {
|
|
85
91
|
// - insertAfter(referenceEl)
|
86
92
|
// - prependTo(referenceEl)
|
87
93
|
domInsert(proto, function getEl(renderResult, referenceEl) {
|
88
|
-
return renderResult.getNode(referenceEl
|
94
|
+
return renderResult.getNode(getRootNode(referenceEl));
|
89
95
|
}, function afterInsert(renderResult, referenceEl) {
|
90
|
-
|
91
|
-
return renderResult.afterInsert(isShadow ? referenceEl : referenceEl.ownerDocument);
|
96
|
+
return renderResult.afterInsert(getRootNode(referenceEl));
|
92
97
|
});
|