jsf.js_next_gen 4.0.1-beta.9 → 4.0.2-beta.2
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/window/faces-development.js +12 -2
- package/dist/window/faces-development.js.br +0 -0
- package/dist/window/faces-development.js.gz +0 -0
- package/dist/window/faces-development.js.map +1 -1
- package/dist/window/faces.js +1 -1
- package/dist/window/faces.js.br +0 -0
- package/dist/window/faces.js.gz +0 -0
- package/dist/window/faces.js.map +1 -1
- package/dist/window/jsf-development.js +12 -2
- package/dist/window/jsf-development.js.br +0 -0
- package/dist/window/jsf-development.js.gz +0 -0
- package/dist/window/jsf-development.js.map +1 -1
- package/dist/window/jsf.js +1 -1
- package/dist/window/jsf.js.br +0 -0
- package/dist/window/jsf.js.gz +0 -0
- package/dist/window/jsf.js.map +1 -1
- package/package.json +1 -1
- package/src/main/typescript/impl/util/HiddenInputBuilder.ts +2 -2
- package/src/main/typescript/impl/xhrCore/XhrRequest.ts +11 -0
- package/src/main/typescript/test/frameworkBase/_ext/shared/StandardInits.ts +22 -0
- package/src/main/typescript/test/xhrCore/RequestParamsTest.spec.ts +2 -1
- package/src/main/typescript/test/xhrCore/RequestTest.spec.ts +45 -0
- package/src/main/typescript/test/xhrCore/ResponseTest.spec.ts +3 -3
- package/target/impl/util/HiddenInputBuilder.js +2 -2
- package/target/impl/util/HiddenInputBuilder.js.map +1 -1
- package/target/impl/xhrCore/XhrRequest.js +10 -0
- package/target/impl/xhrCore/XhrRequest.js.map +1 -1
- package/target/test/frameworkBase/_ext/shared/StandardInits.js +20 -0
- package/target/test/frameworkBase/_ext/shared/StandardInits.js.map +1 -1
- package/target/test/xhrCore/RequestParamsTest.spec.js +2 -1
- package/target/test/xhrCore/RequestParamsTest.spec.js.map +1 -1
- package/target/test/xhrCore/RequestTest.spec.js +36 -0
- package/target/test/xhrCore/RequestTest.spec.js.map +1 -1
- package/target/test/xhrCore/ResponseTest.spec.js +3 -3
- package/target/AssocArray.js +0 -281
- package/target/AssocArray.js.map +0 -1
- package/target/Config.js +0 -235
- package/target/Config.js.map +0 -1
- package/target/CryptoExtensions.js +0 -112
- package/target/CryptoExtensions.js.map +0 -1
- package/target/DomQuery.js +0 -1963
- package/target/DomQuery.js.map +0 -1
- package/target/Es2019Array.js +0 -117
- package/target/Es2019Array.js.map +0 -1
- package/target/Global.js +0 -38
- package/target/Global.js.map +0 -1
- package/target/IDomQuery.js +0 -3
- package/target/IDomQuery.js.map +0 -1
- package/target/Lang.js +0 -183
- package/target/Lang.js.map +0 -1
- package/target/Messaging.js +0 -645
- package/target/Messaging.js.map +0 -1
- package/target/Monad.js +0 -330
- package/target/Monad.js.map +0 -1
- package/target/Promise.js +0 -296
- package/target/Promise.js.map +0 -1
- package/target/PromiseShim.js +0 -30
- package/target/PromiseShim.js.map +0 -1
- package/target/SourcesCollectors.js +0 -444
- package/target/SourcesCollectors.js.map +0 -1
- package/target/Stream.js +0 -562
- package/target/Stream.js.map +0 -1
- package/target/TagBuilder.js +0 -178
- package/target/TagBuilder.js.map +0 -1
- package/target/XmlQuery.js +0 -84
- package/target/XmlQuery.js.map +0 -1
- package/target/classes/com/example/jsfs_js_ts/DecoratedFacesJS.class +0 -0
- package/target/classes/com/example/jsfs_js_ts/DecoratingResourceHandlerWrapper.class +0 -0
- package/target/classes/com/example/jsfs_js_ts/FacesJSMapFileResourceWrapper.class +0 -0
- package/target/classes/com/example/jsfs_js_ts/FacesJSMappingDecorator.class +0 -0
- package/target/impl/core/Context.js +0 -10
- package/target/impl/core/Context.js.map +0 -1
- package/target/impl/util/AsyncQueue.js +0 -109
- package/target/impl/util/AsyncQueue.js.map +0 -1
- package/target/impl/util/HiddenElementBuilder.js +0 -7
- package/target/impl/util/HiddenElementBuilder.js.map +0 -1
- package/target/impl/util/IAsyncRunnable.js +0 -27
- package/target/impl/util/IAsyncRunnable.js.map +0 -1
- package/target/impl/util/URLCodec.js +0 -77
- package/target/impl/util/URLCodec.js.map +0 -1
- package/target/impl/xhrCore/RequestContext.js +0 -11
- package/target/impl/xhrCore/RequestContext.js.map +0 -1
- package/target/impl/xhrCore/XhrQueHandler.js +0 -11
- package/target/impl/xhrCore/XhrQueHandler.js.map +0 -1
- package/target/impl/xhrCore/XhrQueueController.js +0 -62
- package/target/impl/xhrCore/XhrQueueController.js.map +0 -1
- package/target/index.js +0 -80
- package/target/index.js.map +0 -1
- package/target/index_core.js +0 -76
- package/target/index_core.js.map +0 -1
- package/target/test/frameworkBase/_ext/monadish/ExtendedArrayTest.spec.js +0 -76
- package/target/test/frameworkBase/_ext/monadish/ExtendedArrayTest.spec.js.map +0 -1
- package/target/test/frameworkBase/_ext/monadish/StreamTest.spec.js +0 -178
- package/target/test/frameworkBase/_ext/monadish/StreamTest.spec.js.map +0 -1
- package/target/test/myfaces/OnLoadSpec.js +0 -57
- package/target/test/myfaces/OnLoadSpec.js.map +0 -1
- package/target/test-classes/.gz +0 -0
- package/target/test-classes/com/example/jsfs_js_ts/JsfsJsTsApplicationTests.class +0 -0
- package/target/test-classes/fileuploadtest.html +0 -24
- package/target/test-classes/jsf-development.js +0 -3559
- package/target/test-classes/jsf-development.js.br +0 -0
- package/target/test-classes/jsf-development.js.gz +0 -0
- package/target/test-classes/jsf-development.js.map +0 -1
- package/target/test-classes/jsf.js +0 -3
- package/target/test-classes/jsf.js.br +0 -0
- package/target/test-classes/jsf.js.gz +0 -0
- package/target/types/main/typescript/AssocArray.d.ts +0 -86
- package/target/types/main/typescript/Config.d.ts +0 -94
- package/target/types/main/typescript/CryptoExtensions.d.ts +0 -87
- package/target/types/main/typescript/DomQuery.d.ts +0 -587
- package/target/types/main/typescript/Es2019Array.d.ts +0 -30
- package/target/types/main/typescript/Global.d.ts +0 -23
- package/target/types/main/typescript/IDomQuery.d.ts +0 -480
- package/target/types/main/typescript/Lang.d.ts +0 -97
- package/target/types/main/typescript/Messaging.d.ts +0 -285
- package/target/types/main/typescript/Monad.d.ts +0 -161
- package/target/types/main/typescript/Promise.d.ts +0 -58
- package/target/types/main/typescript/PromiseShim.d.ts +0 -22
- package/target/types/main/typescript/SourcesCollectors.d.ts +0 -280
- package/target/types/main/typescript/Stream.d.ts +0 -284
- package/target/types/main/typescript/TagBuilder.d.ts +0 -50
- package/target/types/main/typescript/XmlQuery.d.ts +0 -31
- package/target/types/main/typescript/api/_api.d.ts +0 -182
- package/target/types/main/typescript/api/faces.d.ts +0 -17
- package/target/types/main/typescript/api/jsf.d.ts +0 -17
- package/target/types/main/typescript/impl/AjaxImpl.d.ts +0 -164
- package/target/types/main/typescript/impl/PushImpl.d.ts +0 -38
- package/target/types/main/typescript/impl/core/Const.d.ts +0 -138
- package/target/types/main/typescript/impl/core/ImplTypes.d.ts +0 -16
- package/target/types/main/typescript/impl/i18n/Messages.d.ts +0 -102
- package/target/types/main/typescript/impl/util/Assertions.d.ts +0 -46
- package/target/types/main/typescript/impl/util/AsyncRunnable.d.ts +0 -112
- package/target/types/main/typescript/impl/util/ExtDomQuery.d.ts +0 -100
- package/target/types/main/typescript/impl/util/FileUtils.d.ts +0 -25
- package/target/types/main/typescript/impl/util/HiddenInputBuilder.d.ts +0 -37
- package/target/types/main/typescript/impl/util/IListener.d.ts +0 -18
- package/target/types/main/typescript/impl/util/Lang.d.ts +0 -138
- package/target/types/main/typescript/impl/util/XhrQueueController.d.ts +0 -51
- package/target/types/main/typescript/impl/xhrCore/ErrorData.d.ts +0 -37
- package/target/types/main/typescript/impl/xhrCore/EventData.d.ts +0 -25
- package/target/types/main/typescript/impl/xhrCore/IResponseProcessor.d.ts +0 -136
- package/target/types/main/typescript/impl/xhrCore/RequestDataResolver.d.ts +0 -84
- package/target/types/main/typescript/impl/xhrCore/ResonseDataResolver.d.ts +0 -60
- package/target/types/main/typescript/impl/xhrCore/Response.d.ts +0 -29
- package/target/types/main/typescript/impl/xhrCore/ResponseProcessor.d.ts +0 -208
- package/target/types/main/typescript/impl/xhrCore/XhrFormData.d.ts +0 -83
- package/target/types/main/typescript/impl/xhrCore/XhrRequest.d.ts +0 -102
- package/target/types/main/typescript/index.d.ts +0 -34
- package/target/types/main/typescript/index_core.d.ts +0 -29
- package/target/types/main/typescript/myfaces/OamSubmit.d.ts +0 -53
- package/target/types/main/typescript/test/frameworkBase/LangTest.spec.d.ts +0 -1
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/DomQueryTest.spec.d.ts +0 -1
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/LangTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MappingProbes.d.ts +0 -39
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MappingTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/MonadTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/XmlQueryTest.spec.d.ts +0 -0
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-with-header.d.ts +0 -1
- package/target/types/main/typescript/test/frameworkBase/_ext/monadish/markups/tobago-without-header.d.ts +0 -1
- package/target/types/main/typescript/test/frameworkBase/_ext/shared/StandardInits.d.ts +0 -63
- package/target/types/main/typescript/test/frameworkBase/_ext/shared/XmlResponses.d.ts +0 -23
- package/target/types/main/typescript/test/impl/ImplTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/impl/ImplTest_23.spec.d.ts +0 -16
- package/target/types/main/typescript/test/impl/SeparatorCharsTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/myfaces/OamSubmit.spec.d.ts +0 -16
- package/target/types/main/typescript/test/myfaces/OnLoad.spec.d.ts +0 -16
- package/target/types/main/typescript/test/queue/AsynchronousProbe.d.ts +0 -38
- package/target/types/main/typescript/test/queue/AsynchronousQueueTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/ClientWindow.spec.d.ts +0 -1
- package/target/types/main/typescript/test/xhrCore/ErrorChainTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/EventTests.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/FakeWebsocket.d.ts +0 -24
- package/target/types/main/typescript/test/xhrCore/FileUploadTest.spec.d.ts +0 -1
- package/target/types/main/typescript/test/xhrCore/NamespacesRequestTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/OamSubmitTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/RequestParamsTest.spec.d.ts +0 -1
- package/target/types/main/typescript/test/xhrCore/RequestTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/RequestTest_23.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/ResponseTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/ResponseTest23.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/ShadowDomTest.spec.d.ts +0 -16
- package/target/types/main/typescript/test/xhrCore/TobagoFileUploadTest.spec.d.ts +0 -1
- package/target/types/main/typescript/test/xhrCore/WebsocketTest.d.ts +0 -1
- package/target/types/main/typescript/test/xhrCore/XhrFormDataTest.spec.d.ts +0 -16
- package/target/types/test/typescript/AssocArrayTest.spec.d.ts +0 -1
- package/target/types/test/typescript/DomQueryTest.spec.d.ts +0 -1
- package/target/types/test/typescript/ExtendedArrayTest.spec.d.ts +0 -1
- package/target/types/test/typescript/LangTest.spec.d.ts +0 -1
- package/target/types/test/typescript/MappingProbes.d.ts +0 -24
- package/target/types/test/typescript/MappingTest.spec.d.ts +0 -1
- package/target/types/test/typescript/MessagingTest.spec.d.ts +0 -1
- package/target/types/test/typescript/MonadTest.spec.d.ts +0 -16
- package/target/types/test/typescript/PromiseTest.spec.d.ts +0 -1
- package/target/types/test/typescript/StreamTest.spec.d.ts +0 -1
- package/target/types/test/typescript/XmlQueryTest.spec.d.ts +0 -1
- package/target/types/test/typescript/markups/tobago-with-header.d.ts +0 -1
- package/target/types/test/typescript/markups/tobago-without-header.d.ts +0 -1
package/target/Stream.js
DELETED
|
@@ -1,562 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
4
|
-
* contributor license agreements. See the NOTICE file distributed with
|
|
5
|
-
* this work for additional information regarding copyright ownership.
|
|
6
|
-
* The ASF licenses this file to you under the Apache License, Version 2.0
|
|
7
|
-
* (the "License"); you may not use this file except in compliance with
|
|
8
|
-
* the License. You may obtain a copy of the License at
|
|
9
|
-
*
|
|
10
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
*
|
|
12
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
* See the License for the specific language governing permissions and
|
|
16
|
-
* limitations under the License.
|
|
17
|
-
*/
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.LazyStream = exports.Stream = exports.FlatMapStreamDataSource = void 0;
|
|
20
|
-
/*
|
|
21
|
-
* A small stream implementation
|
|
22
|
-
*/
|
|
23
|
-
const Monad_1 = require("./Monad");
|
|
24
|
-
const SourcesCollectors_1 = require("./SourcesCollectors");
|
|
25
|
-
const DomQuery_1 = require("./DomQuery");
|
|
26
|
-
/**
|
|
27
|
-
* Same for flatmap to deal with element -> stream mappings
|
|
28
|
-
*/
|
|
29
|
-
class FlatMapStreamDataSource {
|
|
30
|
-
constructor(func, parent) {
|
|
31
|
-
this.walkedDataSources = [];
|
|
32
|
-
this._currPos = 0;
|
|
33
|
-
this.mapFunc = func;
|
|
34
|
-
this.inputDataSource = parent;
|
|
35
|
-
}
|
|
36
|
-
hasNext() {
|
|
37
|
-
return this.resolveActiveHasNext() || this.resolveNextHasNext();
|
|
38
|
-
}
|
|
39
|
-
resolveActiveHasNext() {
|
|
40
|
-
let next = false;
|
|
41
|
-
if (this.activeDataSource) {
|
|
42
|
-
next = this.activeDataSource.hasNext();
|
|
43
|
-
}
|
|
44
|
-
return next;
|
|
45
|
-
}
|
|
46
|
-
lookAhead(cnt = 1) {
|
|
47
|
-
var _a;
|
|
48
|
-
let lookAhead = (_a = this === null || this === void 0 ? void 0 : this.activeDataSource) === null || _a === void 0 ? void 0 : _a.lookAhead(cnt);
|
|
49
|
-
if ((this === null || this === void 0 ? void 0 : this.activeDataSource) && lookAhead != SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
|
|
50
|
-
//this should cover 95% of all cases
|
|
51
|
-
return lookAhead;
|
|
52
|
-
}
|
|
53
|
-
if (this.activeDataSource) {
|
|
54
|
-
cnt -= (0, SourcesCollectors_1.calculateSkips)(this.activeDataSource);
|
|
55
|
-
}
|
|
56
|
-
//the idea is basically to look into the streams sub-sequentially for a match
|
|
57
|
-
//after each stream we have to take into consideration that the skipCnt is
|
|
58
|
-
//reduced by the number of datasets we already have looked into in the previous stream/datasource
|
|
59
|
-
//unfortunately for now we have to loop into them, so we introduce a small o2 here
|
|
60
|
-
for (let dsLoop = 1; true; dsLoop++) {
|
|
61
|
-
let datasourceData = this.inputDataSource.lookAhead(dsLoop);
|
|
62
|
-
//we have looped out
|
|
63
|
-
//no embedded data anymore? we are done, data
|
|
64
|
-
//can either be a scalar an array or another datasource
|
|
65
|
-
if (datasourceData === SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
|
|
66
|
-
return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
|
|
67
|
-
}
|
|
68
|
-
let mappedData = this.mapFunc(datasourceData);
|
|
69
|
-
//it either comes in as datasource or as array
|
|
70
|
-
//both cases must be unified into a datasource
|
|
71
|
-
let currentDataSource = this.toDatasource(mappedData);
|
|
72
|
-
//we now run again a lookahead
|
|
73
|
-
let ret = currentDataSource.lookAhead(cnt);
|
|
74
|
-
//if the value is found then we are set
|
|
75
|
-
if (ret != SourcesCollectors_1.ITERATION_STATUS.EO_STRM) {
|
|
76
|
-
return ret;
|
|
77
|
-
}
|
|
78
|
-
//reduce the next lookahead by the number of elements
|
|
79
|
-
//we are now skipping in the current data source
|
|
80
|
-
cnt -= (0, SourcesCollectors_1.calculateSkips)(currentDataSource);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
toDatasource(mapped) {
|
|
84
|
-
let ds = Array.isArray(mapped) ? new SourcesCollectors_1.ArrayStreamDataSource(...mapped) : mapped;
|
|
85
|
-
this.walkedDataSources.push(ds);
|
|
86
|
-
return ds;
|
|
87
|
-
}
|
|
88
|
-
resolveNextHasNext() {
|
|
89
|
-
let next = false;
|
|
90
|
-
while (!next && this.inputDataSource.hasNext()) {
|
|
91
|
-
let mapped = this.mapFunc(this.inputDataSource.next());
|
|
92
|
-
this.activeDataSource = this.toDatasource(mapped);
|
|
93
|
-
next = this.activeDataSource.hasNext();
|
|
94
|
-
}
|
|
95
|
-
return next;
|
|
96
|
-
}
|
|
97
|
-
next() {
|
|
98
|
-
if (this.hasNext()) {
|
|
99
|
-
this._currPos++;
|
|
100
|
-
return this.activeDataSource.next();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
reset() {
|
|
104
|
-
this.inputDataSource.reset();
|
|
105
|
-
this.walkedDataSources.forEach(ds => ds.reset());
|
|
106
|
-
this.walkedDataSources = [];
|
|
107
|
-
this._currPos = 0;
|
|
108
|
-
this.activeDataSource = null;
|
|
109
|
-
}
|
|
110
|
-
current() {
|
|
111
|
-
if (!this.activeDataSource) {
|
|
112
|
-
this.hasNext();
|
|
113
|
-
}
|
|
114
|
-
return this.activeDataSource.current();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.FlatMapStreamDataSource = FlatMapStreamDataSource;
|
|
118
|
-
/**
|
|
119
|
-
* A simple typescript based reimplementation of streams
|
|
120
|
-
*
|
|
121
|
-
* This is the early eval version
|
|
122
|
-
* for a lazy eval version check, LazyStream, which is api compatible
|
|
123
|
-
* to this implementation, however with the benefit of being able
|
|
124
|
-
* to provide infinite data sources and generic data providers, the downside
|
|
125
|
-
* is, it might be a tad slower in some situations
|
|
126
|
-
*/
|
|
127
|
-
class Stream {
|
|
128
|
-
constructor(...value) {
|
|
129
|
-
this._limits = -1;
|
|
130
|
-
this.pos = -1;
|
|
131
|
-
this.value = value;
|
|
132
|
-
}
|
|
133
|
-
static of(...data) {
|
|
134
|
-
return new Stream(...data);
|
|
135
|
-
}
|
|
136
|
-
static ofAssoc(data) {
|
|
137
|
-
return this.of(...Object.keys(data)).map(key => [key, data[key]]);
|
|
138
|
-
}
|
|
139
|
-
static ofDataSource(dataSource) {
|
|
140
|
-
let value = [];
|
|
141
|
-
while (dataSource.hasNext()) {
|
|
142
|
-
value.push(dataSource.next());
|
|
143
|
-
}
|
|
144
|
-
return new Stream(...value);
|
|
145
|
-
}
|
|
146
|
-
static ofDomQuery(value) {
|
|
147
|
-
return Stream.of(...value.asArray);
|
|
148
|
-
}
|
|
149
|
-
static ofConfig(value) {
|
|
150
|
-
return Stream.of(...Object.keys(value.value)).map(key => [key, value.value[key]]);
|
|
151
|
-
}
|
|
152
|
-
current() {
|
|
153
|
-
if (this.pos == -1) {
|
|
154
|
-
return SourcesCollectors_1.ITERATION_STATUS.BEF_STRM;
|
|
155
|
-
}
|
|
156
|
-
if (this.pos >= this.value.length) {
|
|
157
|
-
return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
|
|
158
|
-
}
|
|
159
|
-
return this.value[this.pos];
|
|
160
|
-
}
|
|
161
|
-
limits(end) {
|
|
162
|
-
this._limits = end;
|
|
163
|
-
return this;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* concat for streams, so that you can concat two streams together
|
|
167
|
-
* @param toAppend
|
|
168
|
-
*/
|
|
169
|
-
concat(...toAppend) {
|
|
170
|
-
let toConcat = [this].concat(toAppend);
|
|
171
|
-
return Stream.of(...toConcat).flatMap(item => item);
|
|
172
|
-
}
|
|
173
|
-
onElem(fn) {
|
|
174
|
-
for (let cnt = 0; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
|
|
175
|
-
if (fn(this.value[cnt], cnt) === false) {
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return this;
|
|
180
|
-
}
|
|
181
|
-
each(fn) {
|
|
182
|
-
this.onElem(fn);
|
|
183
|
-
this.reset();
|
|
184
|
-
}
|
|
185
|
-
map(fn) {
|
|
186
|
-
if (!fn) {
|
|
187
|
-
fn = (inval) => inval;
|
|
188
|
-
}
|
|
189
|
-
let res = [];
|
|
190
|
-
this.each((item) => {
|
|
191
|
-
res.push(fn(item));
|
|
192
|
-
});
|
|
193
|
-
return new Stream(...res);
|
|
194
|
-
}
|
|
195
|
-
/*
|
|
196
|
-
* we need to implement it to fullfill the contract, although it is used only internally
|
|
197
|
-
* all values are flattened when accessed anyway, so there is no need to call this methiod
|
|
198
|
-
*/
|
|
199
|
-
flatMap(fn) {
|
|
200
|
-
let ret = [];
|
|
201
|
-
this.each(item => {
|
|
202
|
-
let strmR = fn(item);
|
|
203
|
-
ret = Array.isArray(strmR) ? ret.concat(strmR) : ret.concat(strmR.value);
|
|
204
|
-
});
|
|
205
|
-
return Stream.of(...ret);
|
|
206
|
-
}
|
|
207
|
-
filter(fn) {
|
|
208
|
-
let res = [];
|
|
209
|
-
this.each((data) => {
|
|
210
|
-
if (fn(data)) {
|
|
211
|
-
res.push(data);
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
return new Stream(...res);
|
|
215
|
-
}
|
|
216
|
-
reduce(fn, startVal = null) {
|
|
217
|
-
let offset = startVal != null ? 0 : 1;
|
|
218
|
-
let val1 = startVal != null ? startVal : this.value.length ? this.value[0] : null;
|
|
219
|
-
for (let cnt = offset; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
|
|
220
|
-
val1 = fn(val1, this.value[cnt]);
|
|
221
|
-
}
|
|
222
|
-
this.reset();
|
|
223
|
-
return Monad_1.Optional.fromNullable(val1);
|
|
224
|
-
}
|
|
225
|
-
first() {
|
|
226
|
-
this.reset();
|
|
227
|
-
return this.value && this.value.length ? Monad_1.Optional.fromNullable(this.value[0]) : Monad_1.Optional.absent;
|
|
228
|
-
}
|
|
229
|
-
last() {
|
|
230
|
-
//could be done via reduce, but is faster this way
|
|
231
|
-
let length = this._limits > 0 ? Math.min(this._limits, this.value.length) : this.value.length;
|
|
232
|
-
this.reset();
|
|
233
|
-
return Monad_1.Optional.fromNullable(length ? this.value[length - 1] : null);
|
|
234
|
-
}
|
|
235
|
-
anyMatch(fn) {
|
|
236
|
-
for (let cnt = 0; cnt < this.value.length && (this._limits == -1 || cnt < this._limits); cnt++) {
|
|
237
|
-
if (fn(this.value[cnt])) {
|
|
238
|
-
return true;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
this.reset();
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
allMatch(fn) {
|
|
245
|
-
if (!this.value.length) {
|
|
246
|
-
return false;
|
|
247
|
-
}
|
|
248
|
-
let matches = 0;
|
|
249
|
-
for (let cnt = 0; cnt < this.value.length; cnt++) {
|
|
250
|
-
if (fn(this.value[cnt])) {
|
|
251
|
-
matches++;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
this.reset();
|
|
255
|
-
return matches == this.value.length;
|
|
256
|
-
}
|
|
257
|
-
noneMatch(fn) {
|
|
258
|
-
let matches = 0;
|
|
259
|
-
for (let cnt = 0; cnt < this.value.length; cnt++) {
|
|
260
|
-
if (!fn(this.value[cnt])) {
|
|
261
|
-
matches++;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
this.reset();
|
|
265
|
-
return matches == this.value.length;
|
|
266
|
-
}
|
|
267
|
-
sort(comparator) {
|
|
268
|
-
let newArr = this.value.slice().sort(comparator);
|
|
269
|
-
return Stream.of(...newArr);
|
|
270
|
-
}
|
|
271
|
-
collect(collector) {
|
|
272
|
-
this.each(data => collector.collect(data));
|
|
273
|
-
this.reset();
|
|
274
|
-
return collector.finalValue;
|
|
275
|
-
}
|
|
276
|
-
//-- internally exposed methods needed for the interconnectivity
|
|
277
|
-
hasNext() {
|
|
278
|
-
let isLimitsReached = this._limits != -1 && this.pos >= this._limits - 1;
|
|
279
|
-
let isEndOfArray = this.pos >= this.value.length - 1;
|
|
280
|
-
return !(isLimitsReached || isEndOfArray);
|
|
281
|
-
}
|
|
282
|
-
next() {
|
|
283
|
-
if (!this.hasNext()) {
|
|
284
|
-
return null;
|
|
285
|
-
}
|
|
286
|
-
this.pos++;
|
|
287
|
-
return this.value[this.pos];
|
|
288
|
-
}
|
|
289
|
-
lookAhead(cnt = 1) {
|
|
290
|
-
if ((this.pos + cnt) >= this.value.length) {
|
|
291
|
-
return SourcesCollectors_1.ITERATION_STATUS.EO_STRM;
|
|
292
|
-
}
|
|
293
|
-
return this.value[this.pos + cnt];
|
|
294
|
-
}
|
|
295
|
-
[Symbol.iterator]() {
|
|
296
|
-
return {
|
|
297
|
-
next: () => {
|
|
298
|
-
let done = !this.hasNext();
|
|
299
|
-
let val = this.next();
|
|
300
|
-
return {
|
|
301
|
-
done: done,
|
|
302
|
-
value: val
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
/*get observable(): Observable<T> {
|
|
308
|
-
return from(this);
|
|
309
|
-
}*/
|
|
310
|
-
reset() {
|
|
311
|
-
this.pos = -1;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
exports.Stream = Stream;
|
|
315
|
-
/**
|
|
316
|
-
* Lazy implementation of a Stream
|
|
317
|
-
* The idea is to connect the intermediate
|
|
318
|
-
* streams as datasources like a linked list
|
|
319
|
-
* with reverse referencing and for special
|
|
320
|
-
* operations like filtering flatmapping
|
|
321
|
-
* have intermediate datasources in the list
|
|
322
|
-
* with specialized functions.
|
|
323
|
-
*
|
|
324
|
-
* Sort of a modified pipe valve pattern
|
|
325
|
-
* the streams are the pipes the intermediate
|
|
326
|
-
* data sources are the valves
|
|
327
|
-
*
|
|
328
|
-
* We then can use passed in functions to control
|
|
329
|
-
* the flow in the valves
|
|
330
|
-
*
|
|
331
|
-
* That way we can have a lazy evaluating stream
|
|
332
|
-
*
|
|
333
|
-
* So if an endpoint requests data
|
|
334
|
-
* a callback trace goes back the stream list
|
|
335
|
-
* which triggers an operation upwards
|
|
336
|
-
* which sends data down the drain which then is processed
|
|
337
|
-
* and filtered until one element hits the endpoint.
|
|
338
|
-
*
|
|
339
|
-
* That is repeated, until all elements are processed
|
|
340
|
-
* or an internal limit is hit.
|
|
341
|
-
*
|
|
342
|
-
*/
|
|
343
|
-
class LazyStream {
|
|
344
|
-
static of(...values) {
|
|
345
|
-
return new LazyStream(new SourcesCollectors_1.ArrayStreamDataSource(...values));
|
|
346
|
-
}
|
|
347
|
-
static ofAssoc(data) {
|
|
348
|
-
return this.of(...Object.keys(data)).map(key => [key, data[key]]);
|
|
349
|
-
}
|
|
350
|
-
static ofStreamDataSource(value) {
|
|
351
|
-
return new LazyStream(value);
|
|
352
|
-
}
|
|
353
|
-
static ofDomQuery(value) {
|
|
354
|
-
return LazyStream.of(...value.asArray);
|
|
355
|
-
}
|
|
356
|
-
static ofConfig(value) {
|
|
357
|
-
return LazyStream.of(...Object.keys(value.value)).map(key => [key, value.value[key]]);
|
|
358
|
-
}
|
|
359
|
-
constructor(parent) {
|
|
360
|
-
this._limits = -1;
|
|
361
|
-
/*
|
|
362
|
-
* needed to have the limits check working
|
|
363
|
-
* we need to keep track of the current position
|
|
364
|
-
* in the stream
|
|
365
|
-
*/
|
|
366
|
-
this.pos = -1;
|
|
367
|
-
this.dataSource = parent;
|
|
368
|
-
}
|
|
369
|
-
hasNext() {
|
|
370
|
-
if (this.isOverLimits()) {
|
|
371
|
-
return false;
|
|
372
|
-
}
|
|
373
|
-
return this.dataSource.hasNext();
|
|
374
|
-
}
|
|
375
|
-
next() {
|
|
376
|
-
let next = this.dataSource.next();
|
|
377
|
-
// @ts-ignore
|
|
378
|
-
this.pos++;
|
|
379
|
-
return next;
|
|
380
|
-
}
|
|
381
|
-
lookAhead(cnt = 1) {
|
|
382
|
-
return this.dataSource.lookAhead(cnt);
|
|
383
|
-
}
|
|
384
|
-
current() {
|
|
385
|
-
return this.dataSource.current();
|
|
386
|
-
}
|
|
387
|
-
reset() {
|
|
388
|
-
this.dataSource.reset();
|
|
389
|
-
this.pos = -1;
|
|
390
|
-
this._limits = -1;
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* concat for streams, so that you can concat two streams together
|
|
394
|
-
* @param toAppend
|
|
395
|
-
*/
|
|
396
|
-
concat(...toAppend) {
|
|
397
|
-
//this.dataSource = new MultiStreamDatasource<T>(this, ... toAppend);
|
|
398
|
-
//return this;
|
|
399
|
-
return LazyStream.ofStreamDataSource(new SourcesCollectors_1.MultiStreamDatasource(this, toAppend));
|
|
400
|
-
//return LazyStream.of(<IStream<T>>this, ...toAppend).flatMap(item => item);
|
|
401
|
-
}
|
|
402
|
-
nextFilter(fn) {
|
|
403
|
-
if (this.hasNext()) {
|
|
404
|
-
let newVal = this.next();
|
|
405
|
-
if (!fn(newVal)) {
|
|
406
|
-
return this.nextFilter(fn);
|
|
407
|
-
}
|
|
408
|
-
return newVal;
|
|
409
|
-
}
|
|
410
|
-
return null;
|
|
411
|
-
}
|
|
412
|
-
limits(max) {
|
|
413
|
-
this._limits = max;
|
|
414
|
-
return this;
|
|
415
|
-
}
|
|
416
|
-
//main stream methods
|
|
417
|
-
collect(collector) {
|
|
418
|
-
while (this.hasNext()) {
|
|
419
|
-
let t = this.next();
|
|
420
|
-
collector.collect(t);
|
|
421
|
-
}
|
|
422
|
-
this.reset();
|
|
423
|
-
return collector.finalValue;
|
|
424
|
-
}
|
|
425
|
-
onElem(fn) {
|
|
426
|
-
return new LazyStream(new SourcesCollectors_1.MappedStreamDataSource((el) => {
|
|
427
|
-
if (fn(el, this.pos) === false) {
|
|
428
|
-
this.stop();
|
|
429
|
-
}
|
|
430
|
-
return el;
|
|
431
|
-
}, this));
|
|
432
|
-
}
|
|
433
|
-
filter(fn) {
|
|
434
|
-
return new LazyStream(new SourcesCollectors_1.FilteredStreamDatasource(fn, this));
|
|
435
|
-
}
|
|
436
|
-
map(fn) {
|
|
437
|
-
return new LazyStream(new SourcesCollectors_1.MappedStreamDataSource(fn, this));
|
|
438
|
-
}
|
|
439
|
-
flatMap(fn) {
|
|
440
|
-
return new LazyStream(new FlatMapStreamDataSource(fn, this));
|
|
441
|
-
}
|
|
442
|
-
//endpoint
|
|
443
|
-
each(fn) {
|
|
444
|
-
while (this.hasNext()) {
|
|
445
|
-
if (fn(this.next()) === false) {
|
|
446
|
-
this.stop();
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
this.reset();
|
|
450
|
-
}
|
|
451
|
-
reduce(fn, startVal = null) {
|
|
452
|
-
if (!this.hasNext()) {
|
|
453
|
-
return Monad_1.Optional.absent;
|
|
454
|
-
}
|
|
455
|
-
let value1;
|
|
456
|
-
let value2 = null;
|
|
457
|
-
if (startVal != null) {
|
|
458
|
-
value1 = startVal;
|
|
459
|
-
value2 = this.next();
|
|
460
|
-
}
|
|
461
|
-
else {
|
|
462
|
-
value1 = this.next();
|
|
463
|
-
if (!this.hasNext()) {
|
|
464
|
-
return Monad_1.Optional.fromNullable(value1);
|
|
465
|
-
}
|
|
466
|
-
value2 = this.next();
|
|
467
|
-
}
|
|
468
|
-
value1 = fn(value1, value2);
|
|
469
|
-
while (this.hasNext()) {
|
|
470
|
-
value2 = this.next();
|
|
471
|
-
value1 = fn(value1, value2);
|
|
472
|
-
}
|
|
473
|
-
this.reset();
|
|
474
|
-
return Monad_1.Optional.fromNullable(value1);
|
|
475
|
-
}
|
|
476
|
-
last() {
|
|
477
|
-
if (!this.hasNext()) {
|
|
478
|
-
return Monad_1.Optional.absent;
|
|
479
|
-
}
|
|
480
|
-
return this.reduce((el1, el2) => el2);
|
|
481
|
-
}
|
|
482
|
-
first() {
|
|
483
|
-
this.reset();
|
|
484
|
-
if (!this.hasNext()) {
|
|
485
|
-
return Monad_1.Optional.absent;
|
|
486
|
-
}
|
|
487
|
-
return Monad_1.Optional.fromNullable(this.next());
|
|
488
|
-
}
|
|
489
|
-
anyMatch(fn) {
|
|
490
|
-
while (this.hasNext()) {
|
|
491
|
-
if (fn(this.next())) {
|
|
492
|
-
return true;
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
return false;
|
|
496
|
-
}
|
|
497
|
-
allMatch(fn) {
|
|
498
|
-
while (this.hasNext()) {
|
|
499
|
-
if (!fn(this.next())) {
|
|
500
|
-
return false;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
return true;
|
|
504
|
-
}
|
|
505
|
-
noneMatch(fn) {
|
|
506
|
-
while (this.hasNext()) {
|
|
507
|
-
if (fn(this.next())) {
|
|
508
|
-
return false;
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
return true;
|
|
512
|
-
}
|
|
513
|
-
sort(comparator) {
|
|
514
|
-
let arr = this.collect(new SourcesCollectors_1.ArrayCollector());
|
|
515
|
-
arr = arr.sort(comparator);
|
|
516
|
-
return LazyStream.of(...arr);
|
|
517
|
-
}
|
|
518
|
-
get value() {
|
|
519
|
-
return this.collect(new SourcesCollectors_1.ArrayCollector());
|
|
520
|
-
}
|
|
521
|
-
[Symbol.iterator]() {
|
|
522
|
-
return {
|
|
523
|
-
next: () => {
|
|
524
|
-
let done = !this.hasNext();
|
|
525
|
-
let val = this.next();
|
|
526
|
-
return {
|
|
527
|
-
done: done,
|
|
528
|
-
value: val
|
|
529
|
-
};
|
|
530
|
-
}
|
|
531
|
-
};
|
|
532
|
-
}
|
|
533
|
-
/*get observable(): Observable<T> {
|
|
534
|
-
return from(this);
|
|
535
|
-
}*/
|
|
536
|
-
stop() {
|
|
537
|
-
this.pos = this._limits + 1000000000;
|
|
538
|
-
this._limits = 0;
|
|
539
|
-
}
|
|
540
|
-
isOverLimits() {
|
|
541
|
-
return this._limits != -1 && this.pos >= this._limits - 1;
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
exports.LazyStream = LazyStream;
|
|
545
|
-
/**
|
|
546
|
-
* 1.0 backwards compatibility functions
|
|
547
|
-
*
|
|
548
|
-
* this restores the stream and lazy stream
|
|
549
|
-
* property on DomQuery on prototype level
|
|
550
|
-
*
|
|
551
|
-
*/
|
|
552
|
-
Object.defineProperty(DomQuery_1.DomQuery.prototype, "stream", {
|
|
553
|
-
get: function stream() {
|
|
554
|
-
return Stream.ofDomQuery(this);
|
|
555
|
-
}
|
|
556
|
-
});
|
|
557
|
-
Object.defineProperty(DomQuery_1.DomQuery.prototype, "lazyStream", {
|
|
558
|
-
get: function lazyStream() {
|
|
559
|
-
return LazyStream.ofDomQuery(this);
|
|
560
|
-
}
|
|
561
|
-
});
|
|
562
|
-
//# sourceMappingURL=Stream.js.map
|
package/target/Stream.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../src/main/typescript/Stream.ts"],"names":[],"mappings":"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"}
|