@sankhyalabs/core 1.0.33 → 1.0.36
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/dataunit/DataUnit.d.ts +5 -3
- package/dist/dataunit/DataUnit.js +10 -3
- package/dist/dataunit/DataUnit.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/ApplicationContext.d.ts +5 -0
- package/dist/utils/ApplicationContext.js +17 -0
- package/dist/utils/ApplicationContext.js.map +1 -0
- package/package.json +1 -1
- package/src/dataunit/DataUnit.ts +15 -7
- package/src/index.ts +0 -5
- package/src/utils/ApplicationContext.ts +19 -0
- package/dist/http/data-fetcher/HttpFetcher.d.ts +0 -14
- package/dist/http/data-fetcher/HttpFetcher.js +0 -164
- package/dist/http/data-fetcher/HttpFetcher.js.map +0 -1
- package/dist/http/data-fetcher/state/LoadStateManager.d.ts +0 -23
- package/dist/http/data-fetcher/state/LoadStateManager.js +0 -78
- package/dist/http/data-fetcher/state/LoadStateManager.js.map +0 -1
- package/src/http/data-fetcher/HttpFetcher.ts +0 -164
- package/src/http/data-fetcher/state/LoadStateManager.ts +0 -74
|
@@ -7,9 +7,9 @@ export default class DataUnit {
|
|
|
7
7
|
private _filterProviders;
|
|
8
8
|
private _stateManager;
|
|
9
9
|
private _interceptors;
|
|
10
|
-
metadataLoader?: (dataUnit:
|
|
11
|
-
dataLoader?: (dataUnit:
|
|
12
|
-
saveLoader?: (dataUnit:
|
|
10
|
+
metadataLoader?: (dataUnit: DataUnit) => Promise<UnitMetadata>;
|
|
11
|
+
dataLoader?: (dataUnit: DataUnit, sort?: Array<Sort>, filters?: Array<Filter>) => Promise<Array<Record>>;
|
|
12
|
+
saveLoader?: (dataUnit: DataUnit, changes: Array<Change>) => Promise<Array<SavedRecord>>;
|
|
13
13
|
constructor(name: string);
|
|
14
14
|
get name(): string;
|
|
15
15
|
private validateAndTypeValue;
|
|
@@ -18,6 +18,7 @@ export default class DataUnit {
|
|
|
18
18
|
loadMetadata(): Promise<UnitMetadata>;
|
|
19
19
|
loadData(): Promise<Array<Record>>;
|
|
20
20
|
saveData(): Promise<void>;
|
|
21
|
+
valueFromString(fieldName: string, value: string): any;
|
|
21
22
|
addInterceptor(interceptor: DUActionInterceptor): void;
|
|
22
23
|
addFilterProvider(provider: FilterProvider): void;
|
|
23
24
|
set sortingProvider(provider: SortingProvider);
|
|
@@ -45,6 +46,7 @@ export default class DataUnit {
|
|
|
45
46
|
canRedo(): boolean;
|
|
46
47
|
undo(): void;
|
|
47
48
|
redo(): void;
|
|
49
|
+
toString(): string;
|
|
48
50
|
private dispatchAction;
|
|
49
51
|
subscribe(observer: (action: DataUnitAction) => void): void;
|
|
50
52
|
unsubscribe(observer: Function): void;
|
|
@@ -64,7 +64,7 @@ export default class DataUnit {
|
|
|
64
64
|
this.dispatchAction(Action.LOADING_METADATA);
|
|
65
65
|
return new Promise((resolve, fail) => {
|
|
66
66
|
if (this.metadataLoader) {
|
|
67
|
-
this.metadataLoader(this
|
|
67
|
+
this.metadataLoader(this).then(metadata => {
|
|
68
68
|
this.metadata = metadata;
|
|
69
69
|
resolve(this.metadata);
|
|
70
70
|
}).catch(error => fail(error));
|
|
@@ -79,7 +79,7 @@ export default class DataUnit {
|
|
|
79
79
|
if (this.dataLoader) {
|
|
80
80
|
const sort = this.getSort();
|
|
81
81
|
const filters = this.getFilters();
|
|
82
|
-
this.dataLoader(this
|
|
82
|
+
this.dataLoader(this, sort, filters).then(records => {
|
|
83
83
|
this.records = records;
|
|
84
84
|
resolve(this.records);
|
|
85
85
|
}).catch(error => fail(error));
|
|
@@ -94,7 +94,7 @@ export default class DataUnit {
|
|
|
94
94
|
this.dispatchAction(Action.SAVING_DATA);
|
|
95
95
|
return new Promise((resolve, fail) => {
|
|
96
96
|
if (this.saveLoader) {
|
|
97
|
-
this.saveLoader(this
|
|
97
|
+
this.saveLoader(this, changes).then(records => this.dispatchAction(Action.DATA_SAVED, { changes, records })).catch(error => fail(error));
|
|
98
98
|
}
|
|
99
99
|
});
|
|
100
100
|
}
|
|
@@ -102,6 +102,10 @@ export default class DataUnit {
|
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
// API
|
|
105
|
+
valueFromString(fieldName, value) {
|
|
106
|
+
const descriptor = this.getField(fieldName);
|
|
107
|
+
return descriptor ? convertType(descriptor.dataType, value) : value;
|
|
108
|
+
}
|
|
105
109
|
addInterceptor(interceptor) {
|
|
106
110
|
this._interceptors.push(interceptor);
|
|
107
111
|
}
|
|
@@ -198,6 +202,9 @@ export default class DataUnit {
|
|
|
198
202
|
redo() {
|
|
199
203
|
this.dispatchAction(Action.CHANGE_REDONE);
|
|
200
204
|
}
|
|
205
|
+
toString() {
|
|
206
|
+
return this.name;
|
|
207
|
+
}
|
|
201
208
|
// Actions / State manager
|
|
202
209
|
dispatchAction(actionType, payload) {
|
|
203
210
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataUnit.js","sourceRoot":"","sources":["../../src/dataunit/DataUnit.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"DataUnit.js","sourceRoot":"","sources":["../../src/dataunit/DataUnit.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,5 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
|
|
|
11
11
|
import DataUnit, { SavedRecord, Record, Change, ChangeOperation, DUActionInterceptor } from "./dataunit/DataUnit";
|
|
12
12
|
import { DataType } from "./dataunit/metadata/DataType";
|
|
13
13
|
import { UnitMetadata, FieldDescriptor, UserInterface, Sort, Filter } from "./dataunit/metadata/UnitMetadata";
|
|
14
|
-
import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
|
|
15
|
-
import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
|
|
16
14
|
import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
|
|
17
|
-
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface,
|
|
15
|
+
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, Record, SavedRecord, DataType, UnitMetadata, FieldDescriptor, UserInterface, DataUnitAction, Action, Change, Sort, Filter, ChangeOperation, DUActionInterceptor };
|
package/dist/index.js
CHANGED
|
@@ -11,9 +11,7 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
|
|
|
11
11
|
import DataUnit, { Change, ChangeOperation } from "./dataunit/DataUnit";
|
|
12
12
|
import { DataType } from "./dataunit/metadata/DataType";
|
|
13
13
|
import { UserInterface } from "./dataunit/metadata/UnitMetadata";
|
|
14
|
-
import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
|
|
15
|
-
import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
|
|
16
14
|
import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
|
|
17
15
|
/*Classes públicas no pacote*/
|
|
18
|
-
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface,
|
|
16
|
+
export { StringUtils, MaskFormatter, NumberUtils, FloatingManager, DateUtils, TimeFormatter, SkwHttpProvider, HttpProvider, RequestMetadata, AuthorizedServiceCaller, DataUnit, DataType, UserInterface, DataUnitAction, Action, Change, ChangeOperation };
|
|
19
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAiC,aAAa,EAAgB,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,QAAQ,EAAE,EAAsB,MAAM,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAiC,aAAa,EAAgB,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAEhF,8BAA8B;AAC9B,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,QAAQ,EAGR,QAAQ,EAGR,aAAa,EACb,cAAc,EACd,MAAM,EACN,MAAM,EAGN,eAAe,EAElB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default class ApplicationContext {
|
|
2
|
+
static getContextValue(key) {
|
|
3
|
+
return ApplicationContext.getCtx()[key].deref();
|
|
4
|
+
}
|
|
5
|
+
static setContextValue(key, value) {
|
|
6
|
+
ApplicationContext.getCtx()[key] = new WeakRef(value);
|
|
7
|
+
}
|
|
8
|
+
static getCtx() {
|
|
9
|
+
let ctx = window.___snkcore___ctx___;
|
|
10
|
+
if (!ctx) {
|
|
11
|
+
ctx = {};
|
|
12
|
+
window.___snkcore___ctx___ = ctx;
|
|
13
|
+
}
|
|
14
|
+
return ctx;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ApplicationContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplicationContext.js","sourceRoot":"","sources":["../../src/utils/ApplicationContext.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAE5B,MAAM,CAAC,eAAe,CAAC,GAAW;QACrC,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,GAAW,EAAE,KAAU;QACjD,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEO,MAAM,CAAC,MAAM;QACjB,IAAI,GAAG,GAAI,MAAc,CAAC,mBAAmB,CAAC;QAC9C,IAAG,CAAC,GAAG,EAAC;YACJ,GAAG,GAAG,EAAE,CAAC;YACR,MAAc,CAAC,mBAAmB,GAAG,GAAG,CAAC;SAC7C;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ"}
|
package/package.json
CHANGED
package/src/dataunit/DataUnit.ts
CHANGED
|
@@ -13,7 +13,6 @@ import { RemovedRecordsReducer } from "./state/slice/RemovedRecordsSlice";
|
|
|
13
13
|
import { AddedRecordsReducer, prepareAddedRecordId } from "./state/slice/AddedRecordsSlice";
|
|
14
14
|
import { CurrentRecordsReducer, getCurrentRecords, getFieldValue } from "./state/slice/CurrentRecordsSlice";
|
|
15
15
|
|
|
16
|
-
|
|
17
16
|
export default class DataUnit {
|
|
18
17
|
|
|
19
18
|
private _name: string;
|
|
@@ -23,9 +22,9 @@ export default class DataUnit {
|
|
|
23
22
|
private _stateManager: StateManager;
|
|
24
23
|
private _interceptors: Array<DUActionInterceptor>;
|
|
25
24
|
|
|
26
|
-
public metadataLoader?: (dataUnit:
|
|
27
|
-
public dataLoader?: (dataUnit:
|
|
28
|
-
public saveLoader?: (dataUnit:
|
|
25
|
+
public metadataLoader?: (dataUnit: DataUnit) => Promise<UnitMetadata>;
|
|
26
|
+
public dataLoader?: (dataUnit: DataUnit, sort?: Array<Sort>, filters?: Array<Filter>) => Promise<Array<Record>>;
|
|
27
|
+
public saveLoader?: (dataUnit: DataUnit, changes: Array<Change>) => Promise<Array<SavedRecord>>;
|
|
29
28
|
|
|
30
29
|
constructor(name: string) {
|
|
31
30
|
this._name = name;
|
|
@@ -78,7 +77,7 @@ export default class DataUnit {
|
|
|
78
77
|
this.dispatchAction(Action.LOADING_METADATA);
|
|
79
78
|
return new Promise((resolve, fail) => {
|
|
80
79
|
if (this.metadataLoader) {
|
|
81
|
-
this.metadataLoader(this
|
|
80
|
+
this.metadataLoader(this).then(
|
|
82
81
|
metadata => {
|
|
83
82
|
this.metadata = metadata
|
|
84
83
|
resolve(this.metadata);
|
|
@@ -94,7 +93,7 @@ export default class DataUnit {
|
|
|
94
93
|
if (this.dataLoader) {
|
|
95
94
|
const sort = this.getSort();
|
|
96
95
|
const filters = this.getFilters();
|
|
97
|
-
this.dataLoader(this
|
|
96
|
+
this.dataLoader(this, sort, filters).then(
|
|
98
97
|
records => {
|
|
99
98
|
this.records = records;
|
|
100
99
|
resolve(this.records);
|
|
@@ -112,7 +111,7 @@ export default class DataUnit {
|
|
|
112
111
|
this.dispatchAction(Action.SAVING_DATA);
|
|
113
112
|
return new Promise((resolve, fail) => {
|
|
114
113
|
if (this.saveLoader) {
|
|
115
|
-
this.saveLoader(this
|
|
114
|
+
this.saveLoader(this, changes).then(
|
|
116
115
|
records => this.dispatchAction(Action.DATA_SAVED, { changes, records })
|
|
117
116
|
).catch(error => fail(error));
|
|
118
117
|
}
|
|
@@ -122,6 +121,11 @@ export default class DataUnit {
|
|
|
122
121
|
}
|
|
123
122
|
|
|
124
123
|
// API
|
|
124
|
+
public valueFromString(fieldName: string, value: string): any {
|
|
125
|
+
const descriptor: FieldDescriptor | undefined = this.getField(fieldName);
|
|
126
|
+
return descriptor ? convertType(descriptor.dataType, value) : value;
|
|
127
|
+
}
|
|
128
|
+
|
|
125
129
|
public addInterceptor(interceptor: DUActionInterceptor): void {
|
|
126
130
|
this._interceptors.push(interceptor);
|
|
127
131
|
}
|
|
@@ -247,6 +251,10 @@ export default class DataUnit {
|
|
|
247
251
|
this.dispatchAction(Action.CHANGE_REDONE);
|
|
248
252
|
}
|
|
249
253
|
|
|
254
|
+
public toString(){
|
|
255
|
+
return this.name;
|
|
256
|
+
}
|
|
257
|
+
|
|
250
258
|
// Actions / State manager
|
|
251
259
|
private dispatchAction(actionType: Action, payload?: any): void {
|
|
252
260
|
let action = new DataUnitAction(actionType, payload);
|
package/src/index.ts
CHANGED
|
@@ -11,8 +11,6 @@ import { AuthorizedServiceCaller } from "./http/AuthorizedServiceCaller";
|
|
|
11
11
|
import DataUnit, {SavedRecord, Record, Change, ChangeOperation, DUActionInterceptor} from "./dataunit/DataUnit";
|
|
12
12
|
import { DataType } from "./dataunit/metadata/DataType";
|
|
13
13
|
import { UnitMetadata, FieldDescriptor, UserInterface, Sort, Filter } from "./dataunit/metadata/UnitMetadata";
|
|
14
|
-
import { HttpFetcher } from "./http/data-fetcher/HttpFetcher";
|
|
15
|
-
import { LoadStateManager, LoadStatus } from "./http/data-fetcher/state/LoadStateManager";
|
|
16
14
|
import { DataUnitAction, Action } from "./dataunit/state/action/DataUnitAction";
|
|
17
15
|
|
|
18
16
|
/*Classes públicas no pacote*/
|
|
@@ -34,9 +32,6 @@ export {
|
|
|
34
32
|
UnitMetadata,
|
|
35
33
|
FieldDescriptor,
|
|
36
34
|
UserInterface,
|
|
37
|
-
HttpFetcher,
|
|
38
|
-
LoadStateManager,
|
|
39
|
-
LoadStatus,
|
|
40
35
|
DataUnitAction,
|
|
41
36
|
Action,
|
|
42
37
|
Change,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default class ApplicationContext{
|
|
2
|
+
|
|
3
|
+
public static getContextValue(key: string):any{
|
|
4
|
+
return ApplicationContext.getCtx()[key].deref();
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
public static setContextValue(key: string, value: any):any{
|
|
8
|
+
ApplicationContext.getCtx()[key] = new WeakRef(value);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
private static getCtx():any{
|
|
12
|
+
let ctx = (window as any).___snkcore___ctx___;
|
|
13
|
+
if(!ctx){
|
|
14
|
+
ctx = {};
|
|
15
|
+
(window as any).___snkcore___ctx___ = ctx;
|
|
16
|
+
}
|
|
17
|
+
return ctx;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare class HttpFetcher {
|
|
2
|
-
private static instance;
|
|
3
|
-
private static loadStateManager;
|
|
4
|
-
private static watingRequestsById;
|
|
5
|
-
private constructor();
|
|
6
|
-
static get(): HttpFetcher;
|
|
7
|
-
callGraphQL(req: any): Promise<any>;
|
|
8
|
-
private getReqKey;
|
|
9
|
-
private static getQueryTemplate;
|
|
10
|
-
private static getWatingRequest;
|
|
11
|
-
private onApplicationLoaded;
|
|
12
|
-
private static fecthGrapql;
|
|
13
|
-
private hashCode;
|
|
14
|
-
}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { LoadStateManager, LoadType } from "./state/LoadStateManager";
|
|
11
|
-
import { batchRequests } from 'graphql-request';
|
|
12
|
-
export class HttpFetcher {
|
|
13
|
-
constructor() {
|
|
14
|
-
HttpFetcher.loadStateManager = LoadStateManager.get(LoadType.APP_LOAD);
|
|
15
|
-
HttpFetcher.loadStateManager.onLoaded(this.onApplicationLoaded);
|
|
16
|
-
}
|
|
17
|
-
static get() {
|
|
18
|
-
if (!HttpFetcher.instance) {
|
|
19
|
-
HttpFetcher.instance = new HttpFetcher();
|
|
20
|
-
}
|
|
21
|
-
return HttpFetcher.instance;
|
|
22
|
-
}
|
|
23
|
-
callGraphQL(req) {
|
|
24
|
-
var _a;
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const reqKey = this.getReqKey(req);
|
|
27
|
-
req.queryID = reqKey;
|
|
28
|
-
req.values.queryID = reqKey;
|
|
29
|
-
if (HttpFetcher.loadStateManager.isPreInitialize()) {
|
|
30
|
-
if (!HttpFetcher.watingRequestsById.has(reqKey)) {
|
|
31
|
-
HttpFetcher.watingRequestsById.set(reqKey, new WaitingRequest(req));
|
|
32
|
-
}
|
|
33
|
-
return (_a = HttpFetcher.getWatingRequest(reqKey)) === null || _a === void 0 ? void 0 : _a.promise;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
let query = HttpFetcher.getQueryTemplate(req);
|
|
38
|
-
const res = yield HttpFetcher.fecthGrapql([{ document: query, variables: req.values }]);
|
|
39
|
-
if (res.errors.length > 0) {
|
|
40
|
-
reject(res);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
//resolve(res);
|
|
44
|
-
//FIXME: Precisamos trabalhar melhor a resposta, quem chamou
|
|
45
|
-
//a API não pode ficar responsavel por desempacotar... fiz uma
|
|
46
|
-
//gambiarra aqui...
|
|
47
|
-
resolve(res.data[0][reqKey]);
|
|
48
|
-
}
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
getReqKey(req) {
|
|
54
|
-
return window.btoa(this.hashCode(`${req.query}${JSON.stringify(req.values || "")}`)).replaceAll("=", "");
|
|
55
|
-
}
|
|
56
|
-
static getQueryTemplate(re) {
|
|
57
|
-
return (re.query || "").replaceAll("$queryAlias$", re.queryID);
|
|
58
|
-
}
|
|
59
|
-
static getWatingRequest(reqID) {
|
|
60
|
-
return HttpFetcher.watingRequestsById.get(reqID);
|
|
61
|
-
}
|
|
62
|
-
onApplicationLoaded() {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
if (HttpFetcher.watingRequestsById.size > 0) {
|
|
65
|
-
const requestsBatch = [];
|
|
66
|
-
HttpFetcher.watingRequestsById.forEach((waitingReq) => __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
let query = HttpFetcher.getQueryTemplate(waitingReq.request);
|
|
68
|
-
requestsBatch.push({ document: query, variables: Object.assign({}, waitingReq.request.values) });
|
|
69
|
-
}));
|
|
70
|
-
let res = undefined;
|
|
71
|
-
let dataResponse = [];
|
|
72
|
-
let errorsResponse = [];
|
|
73
|
-
res = yield HttpFetcher.fecthGrapql(requestsBatch);
|
|
74
|
-
dataResponse = res.data;
|
|
75
|
-
errorsResponse = res.errors;
|
|
76
|
-
//Reject promises with errors from query
|
|
77
|
-
errorsResponse.forEach((errorResponse) => {
|
|
78
|
-
Object.entries(errorResponse).forEach(([key, val]) => {
|
|
79
|
-
var _a;
|
|
80
|
-
(((_a = HttpFetcher.getWatingRequest(val.request.variables[val.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(val);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//Resolve promises with data from query
|
|
84
|
-
dataResponse.forEach((data) => {
|
|
85
|
-
Object.entries(data).forEach(([key, val]) => {
|
|
86
|
-
var _a;
|
|
87
|
-
(((_a = HttpFetcher.getWatingRequest(key)) === null || _a === void 0 ? void 0 : _a.resolve) || Promise.resolve)(val);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
HttpFetcher.watingRequestsById.clear();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
static fecthGrapql(request) {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
let res = undefined;
|
|
97
|
-
let dataResponse = [];
|
|
98
|
-
let errorsResponse = [];
|
|
99
|
-
try {
|
|
100
|
-
res = yield batchRequests('http://localhost:8082/', request);
|
|
101
|
-
res.forEach((resItem) => {
|
|
102
|
-
dataResponse.push(resItem.data);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
catch (err) {
|
|
106
|
-
//TODO: Tratar erro quando não existir err.response
|
|
107
|
-
res = err.response;
|
|
108
|
-
const req = err.request;
|
|
109
|
-
Object.entries(res).forEach(([key, val]) => {
|
|
110
|
-
if (val.errors) {
|
|
111
|
-
errorsResponse.push(val.errors.map((item) => {
|
|
112
|
-
item.request = req;
|
|
113
|
-
item.index = Number(key);
|
|
114
|
-
return item;
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
else if (val.data) {
|
|
118
|
-
dataResponse.push(val.data);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
return { data: dataResponse, errors: errorsResponse };
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
//TODO: Mover este metodo para o @sankhyalabs/core classe string utils.
|
|
126
|
-
hashCode(txt) {
|
|
127
|
-
var hash = 0, i, chr;
|
|
128
|
-
if (txt.length === 0)
|
|
129
|
-
return hash.toString();
|
|
130
|
-
for (i = 0; i < txt.length; i++) {
|
|
131
|
-
chr = txt.charCodeAt(i);
|
|
132
|
-
hash = ((hash << 5) - hash) + chr;
|
|
133
|
-
hash |= 0; // Convert to 32bit integer
|
|
134
|
-
}
|
|
135
|
-
return hash.toString();
|
|
136
|
-
}
|
|
137
|
-
;
|
|
138
|
-
}
|
|
139
|
-
HttpFetcher.watingRequestsById = new Map();
|
|
140
|
-
class WaitingRequest {
|
|
141
|
-
constructor(req) {
|
|
142
|
-
this._resolve = () => { };
|
|
143
|
-
this._reject = () => { };
|
|
144
|
-
this._request = undefined;
|
|
145
|
-
this._request = req;
|
|
146
|
-
this._promisse = new Promise((resolve, reject) => {
|
|
147
|
-
this._resolve = resolve;
|
|
148
|
-
this._reject = reject;
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
get resolve() {
|
|
152
|
-
return this._resolve;
|
|
153
|
-
}
|
|
154
|
-
get reject() {
|
|
155
|
-
return this._reject;
|
|
156
|
-
}
|
|
157
|
-
get promise() {
|
|
158
|
-
return this._promisse;
|
|
159
|
-
}
|
|
160
|
-
get request() {
|
|
161
|
-
return this._request;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=HttpFetcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpFetcher.js","sourceRoot":"","sources":["../../../src/http/data-fetcher/HttpFetcher.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAyB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,OAAO,WAAW;IAKpB;QACI,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpE,CAAC;IAEM,MAAM,CAAC,GAAG;QACb,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YACvB,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;SAC5C;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEY,WAAW,CAAC,GAAO;;;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;YAC1B,IAAG,WAAW,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAC;gBAC9C,IAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;oBAC7C,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;iBACrE;gBACD,OAAO,MAAA,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,0CAAE,OAAO,CAAC;aACxD;iBAAI;gBACD,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,IAAI,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC9C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAEvF,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzB,MAAM,CAAC,GAAG,CAAC,CAAC;qBACb;yBAAM;wBACL,eAAe;wBACf,6DAA6D;wBAC7D,8DAA8D;wBAC9D,mBAAmB;wBACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC9B;gBACH,CAAC,CAAA,CAAC,CAAA;aACL;;KACJ;IAEO,SAAS,CAAC,GAAO;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3G,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,EAAM;QACpC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,KAAY;QAC1C,OAAO,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEa,mBAAmB;;YAC/B,IAAG,WAAW,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAC;gBACzC,MAAM,aAAa,GAA+B,EAAE,CAAC;gBAErD,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAO,UAAyB,EAAE,EAAE;oBACvE,IAAI,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC7D,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,oBAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAE,EAAE,CAAC,CAAC;gBACxF,CAAC,CAAA,CAAC,CAAC;gBAEH,IAAI,GAAG,GAAO,SAAS,CAAC;gBACxB,IAAI,YAAY,GAAc,EAAE,CAAC;gBACjC,IAAI,cAAc,GAAc,EAAE,CAAC;gBACnC,GAAG,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAEnD,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;gBACxB,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;gBAE5B,wCAAwC;gBACxC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAiB,EAAE,EAAE;oBAC3C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAY,EAAE,EAAE;;wBAC9D,CAAC,CAAA,MAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,0CAAE,MAAM,KAAI,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1G,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,uCAAuC;gBACvC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAQ,EAAE,EAAE;oBAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAY,EAAE,EAAE;;wBACrD,CAAC,CAAA,MAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,0CAAE,OAAO,KAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;aACxC;QACH,CAAC;KAAA;IAEO,MAAM,CAAO,WAAW,CAAC,OAAoC;;YACnE,IAAI,GAAG,GAAO,SAAS,CAAC;YACxB,IAAI,YAAY,GAAc,EAAE,CAAC;YACjC,IAAI,cAAc,GAAc,EAAE,CAAC;YAEnC,IAAG;gBACD,GAAG,GAAG,MAAM,aAAa,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,OAAW,EAAE,EAAE;oBAC1B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;aACJ;YAAA,OAAM,GAAO,EAAC;gBACb,mDAAmD;gBACnD,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;gBACnB,MAAM,GAAG,GAAO,GAAG,CAAC,OAAO,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAY,EAAE,EAAE;oBACpD,IAAG,GAAG,CAAC,MAAM,EAAC;wBACZ,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAQ,EAAE,EAAE;4BAC9C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;4BACnB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;4BACzB,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC,CAAC;qBACL;yBAAK,IAAG,GAAG,CAAC,IAAI,EAAC;wBAChB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAC,CAAA;QACrD,CAAC;KAAA;IAED,uEAAuE;IAC/D,QAAQ,CAAE,GAAU;QAC1B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QACrB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,GAAG,GAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;YACnC,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;SACvC;QACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAAA,CAAC;;AA7Ha,8BAAkB,GAAgC,IAAI,GAAG,EAA0B,CAAC;AAgIvG,MAAM,cAAc;IAMlB,YAAY,GAAO;QALX,aAAQ,GAAa,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,YAAO,GAAa,GAAG,EAAE,GAAE,CAAC,CAAC;QAE7B,aAAQ,GAAQ,SAAS,CAAC;QAGhC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export declare class LoadStateManager {
|
|
2
|
-
private static instanceByStatus;
|
|
3
|
-
private _state;
|
|
4
|
-
private _application;
|
|
5
|
-
private static listenersByType;
|
|
6
|
-
private constructor();
|
|
7
|
-
private onStatusChange;
|
|
8
|
-
private addListener;
|
|
9
|
-
onPreInitialize(listener: () => void): LoadStateManager;
|
|
10
|
-
onLoaded(listener: () => void): LoadStateManager;
|
|
11
|
-
getStatus(): LoadStatus;
|
|
12
|
-
isPreInitialize(): boolean;
|
|
13
|
-
isLoaded(): boolean;
|
|
14
|
-
static get(type?: LoadType): LoadStateManager;
|
|
15
|
-
}
|
|
16
|
-
export declare enum LoadStatus {
|
|
17
|
-
DOM_LOADED = "DOM_LOADED",
|
|
18
|
-
PRE_INITIALIZE = "PRE_INITIALIZE",
|
|
19
|
-
LOADED = "LOADED"
|
|
20
|
-
}
|
|
21
|
-
export declare enum LoadType {
|
|
22
|
-
APP_LOAD = "APP_LOAD"
|
|
23
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
export class LoadStateManager {
|
|
11
|
-
constructor(appName = 'ez-application') {
|
|
12
|
-
var _a;
|
|
13
|
-
this._state = LoadStatus.DOM_LOADED;
|
|
14
|
-
this._application = document.querySelector(appName);
|
|
15
|
-
if (this._application === null) {
|
|
16
|
-
console.warn(`application${appName} not found, then state is loadded`);
|
|
17
|
-
this.onStatusChange(LoadStatus.LOADED);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
(_a = this._application) === null || _a === void 0 ? void 0 : _a.addEventListener('applicationLoaded', () => this.onStatusChange(LoadStatus.LOADED));
|
|
21
|
-
this.onStatusChange(LoadStatus.PRE_INITIALIZE);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
onStatusChange(newStatus) {
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
this._state = newStatus;
|
|
27
|
-
(LoadStateManager.listenersByType.get(newStatus) || []).forEach((listener) => {
|
|
28
|
-
listener();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
addListener(status, listener) {
|
|
33
|
-
var _a;
|
|
34
|
-
if (!LoadStateManager.listenersByType.has(status)) {
|
|
35
|
-
LoadStateManager.listenersByType.set(status, []);
|
|
36
|
-
}
|
|
37
|
-
(_a = LoadStateManager.listenersByType.get(status)) === null || _a === void 0 ? void 0 : _a.push(listener);
|
|
38
|
-
if (status === this._state) {
|
|
39
|
-
listener();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
onPreInitialize(listener) {
|
|
43
|
-
this.addListener(LoadStatus.PRE_INITIALIZE, listener);
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
onLoaded(listener) {
|
|
47
|
-
this.addListener(LoadStatus.LOADED, listener);
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
getStatus() {
|
|
51
|
-
return this._state;
|
|
52
|
-
}
|
|
53
|
-
isPreInitialize() {
|
|
54
|
-
return this._state === LoadStatus.PRE_INITIALIZE;
|
|
55
|
-
}
|
|
56
|
-
isLoaded() {
|
|
57
|
-
return this._state === LoadStatus.LOADED;
|
|
58
|
-
}
|
|
59
|
-
static get(type = LoadType.APP_LOAD) {
|
|
60
|
-
if (!LoadStateManager.instanceByStatus.has(type)) {
|
|
61
|
-
LoadStateManager.instanceByStatus.set(type, new LoadStateManager());
|
|
62
|
-
}
|
|
63
|
-
return LoadStateManager.instanceByStatus.get(type) || new LoadStateManager();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
LoadStateManager.instanceByStatus = new Map();
|
|
67
|
-
LoadStateManager.listenersByType = new Map();
|
|
68
|
-
export var LoadStatus;
|
|
69
|
-
(function (LoadStatus) {
|
|
70
|
-
LoadStatus["DOM_LOADED"] = "DOM_LOADED";
|
|
71
|
-
LoadStatus["PRE_INITIALIZE"] = "PRE_INITIALIZE";
|
|
72
|
-
LoadStatus["LOADED"] = "LOADED";
|
|
73
|
-
})(LoadStatus || (LoadStatus = {}));
|
|
74
|
-
export var LoadType;
|
|
75
|
-
(function (LoadType) {
|
|
76
|
-
LoadType["APP_LOAD"] = "APP_LOAD";
|
|
77
|
-
})(LoadType || (LoadType = {}));
|
|
78
|
-
//# sourceMappingURL=LoadStateManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoadStateManager.js","sourceRoot":"","sources":["../../../../src/http/data-fetcher/state/LoadStateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { LoadStateManager, LoadType } from "./state/LoadStateManager";
|
|
2
|
-
import { batchRequests, BatchRequestDocument } from 'graphql-request';
|
|
3
|
-
|
|
4
|
-
export class HttpFetcher{
|
|
5
|
-
private static instance: HttpFetcher;
|
|
6
|
-
private static loadStateManager: LoadStateManager;
|
|
7
|
-
private static watingRequestsById: Map<string, WaitingRequest >= new Map<string, WaitingRequest>();
|
|
8
|
-
|
|
9
|
-
private constructor() {
|
|
10
|
-
HttpFetcher.loadStateManager = LoadStateManager.get(LoadType.APP_LOAD);
|
|
11
|
-
HttpFetcher.loadStateManager.onLoaded(this.onApplicationLoaded);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public static get(): HttpFetcher {
|
|
15
|
-
if (!HttpFetcher.instance) {
|
|
16
|
-
HttpFetcher.instance = new HttpFetcher();
|
|
17
|
-
}
|
|
18
|
-
return HttpFetcher.instance;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public async callGraphQL(req:any):Promise<any>{
|
|
22
|
-
const reqKey = this.getReqKey(req);
|
|
23
|
-
req.queryID = reqKey;
|
|
24
|
-
req.values.queryID = reqKey;
|
|
25
|
-
if(HttpFetcher.loadStateManager.isPreInitialize()){
|
|
26
|
-
if(!HttpFetcher.watingRequestsById.has(reqKey)){
|
|
27
|
-
HttpFetcher.watingRequestsById.set(reqKey, new WaitingRequest(req));
|
|
28
|
-
}
|
|
29
|
-
return HttpFetcher.getWatingRequest(reqKey)?.promise;
|
|
30
|
-
}else{
|
|
31
|
-
return new Promise(async (resolve, reject) => {
|
|
32
|
-
let query = HttpFetcher.getQueryTemplate(req);
|
|
33
|
-
const res = await HttpFetcher.fecthGrapql([{document: query, variables: req.values }]);
|
|
34
|
-
|
|
35
|
-
if (res.errors.length > 0) {
|
|
36
|
-
reject(res);
|
|
37
|
-
} else {
|
|
38
|
-
//resolve(res);
|
|
39
|
-
//FIXME: Precisamos trabalhar melhor a resposta, quem chamou
|
|
40
|
-
//a API não pode ficar responsavel por desempacotar... fiz uma
|
|
41
|
-
//gambiarra aqui...
|
|
42
|
-
resolve(res.data[0][reqKey]);
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
private getReqKey(req:any):string{
|
|
49
|
-
return window.btoa(this.hashCode(`${req.query}${JSON.stringify(req.values || "")}`)).replaceAll("=", "");
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
private static getQueryTemplate(re:any):string{
|
|
53
|
-
return (re.query || "").replaceAll("$queryAlias$", re.queryID);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private static getWatingRequest(reqID:string):WaitingRequest|undefined{
|
|
57
|
-
return HttpFetcher.watingRequestsById.get(reqID);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
private async onApplicationLoaded():Promise<any>{
|
|
61
|
-
if(HttpFetcher.watingRequestsById.size > 0){
|
|
62
|
-
const requestsBatch:Array<BatchRequestDocument> = [];
|
|
63
|
-
|
|
64
|
-
HttpFetcher.watingRequestsById.forEach(async (waitingReq:WaitingRequest) => {
|
|
65
|
-
let query = HttpFetcher.getQueryTemplate(waitingReq.request);
|
|
66
|
-
requestsBatch.push({ document: query, variables: {...waitingReq.request.values } });
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
let res:any = undefined;
|
|
70
|
-
let dataResponse:Array<any> = [];
|
|
71
|
-
let errorsResponse:Array<any> = [];
|
|
72
|
-
res = await HttpFetcher.fecthGrapql(requestsBatch);
|
|
73
|
-
|
|
74
|
-
dataResponse = res.data;
|
|
75
|
-
errorsResponse = res.errors;
|
|
76
|
-
|
|
77
|
-
//Reject promises with errors from query
|
|
78
|
-
errorsResponse.forEach((errorResponse:any) => {
|
|
79
|
-
Object.entries(errorResponse).forEach(([key, val]:Array<any>) => {
|
|
80
|
-
(HttpFetcher.getWatingRequest(val.request.variables[val.index].queryID)?.reject || Promise.reject)(val);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//Resolve promises with data from query
|
|
84
|
-
dataResponse.forEach((data:any) => {
|
|
85
|
-
Object.entries(data).forEach(([key, val]:Array<any>) => {
|
|
86
|
-
(HttpFetcher.getWatingRequest(key)?.resolve || Promise.resolve)(val);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
HttpFetcher.watingRequestsById.clear();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private static async fecthGrapql(request :Array<BatchRequestDocument>):Promise<any> {
|
|
94
|
-
let res:any = undefined;
|
|
95
|
-
let dataResponse:Array<any> = [];
|
|
96
|
-
let errorsResponse:Array<any> = [];
|
|
97
|
-
|
|
98
|
-
try{
|
|
99
|
-
res = await batchRequests('http://localhost:8082/', request);
|
|
100
|
-
res.forEach((resItem:any) => {
|
|
101
|
-
dataResponse.push(resItem.data);
|
|
102
|
-
});
|
|
103
|
-
}catch(err:any){
|
|
104
|
-
//TODO: Tratar erro quando não existir err.response
|
|
105
|
-
res = err.response;
|
|
106
|
-
const req:any = err.request;
|
|
107
|
-
Object.entries(res).forEach(([key, val]:Array<any>) => {
|
|
108
|
-
if(val.errors){
|
|
109
|
-
errorsResponse.push(val.errors.map((item:any) => {
|
|
110
|
-
item.request = req;
|
|
111
|
-
item.index = Number(key);
|
|
112
|
-
return item;
|
|
113
|
-
}));
|
|
114
|
-
}else if(val.data){
|
|
115
|
-
dataResponse.push(val.data);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
return {data: dataResponse, errors: errorsResponse}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
//TODO: Mover este metodo para o @sankhyalabs/core classe string utils.
|
|
123
|
-
private hashCode (txt:string):string {
|
|
124
|
-
var hash = 0, i, chr;
|
|
125
|
-
if (txt.length === 0) return hash.toString();
|
|
126
|
-
for (i = 0; i < txt.length; i++) {
|
|
127
|
-
chr = txt.charCodeAt(i);
|
|
128
|
-
hash = ((hash << 5) - hash) + chr;
|
|
129
|
-
hash |= 0; // Convert to 32bit integer
|
|
130
|
-
}
|
|
131
|
-
return hash.toString();
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
class WaitingRequest {
|
|
136
|
-
private _resolve: Function = () => {};
|
|
137
|
-
private _reject: Function = () => {};
|
|
138
|
-
private _promisse: Promise<any>;
|
|
139
|
-
private _request: any = undefined;
|
|
140
|
-
|
|
141
|
-
constructor(req:any){
|
|
142
|
-
this._request = req;
|
|
143
|
-
this._promisse = new Promise((resolve, reject) => {
|
|
144
|
-
this._resolve = resolve;
|
|
145
|
-
this._reject = reject;
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
public get resolve():Function{
|
|
150
|
-
return this._resolve;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
public get reject():Function{
|
|
154
|
-
return this._reject;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public get promise():Promise<any>{
|
|
158
|
-
return this._promisse;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
public get request():any{
|
|
162
|
-
return this._request;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
export class LoadStateManager {
|
|
2
|
-
private static instanceByStatus: Map<LoadType, LoadStateManager> = new Map<LoadType, LoadStateManager>();
|
|
3
|
-
private _state:LoadStatus = LoadStatus.DOM_LOADED;
|
|
4
|
-
private _application:Element|null;
|
|
5
|
-
private static listenersByType: Map<LoadStatus, Array<() => void>> = new Map<LoadStatus, Array<() => void>>();
|
|
6
|
-
|
|
7
|
-
private constructor(appName:string = 'ez-application') {
|
|
8
|
-
this._application = document.querySelector(appName);
|
|
9
|
-
if(this._application === null){
|
|
10
|
-
console.warn(`application${appName} not found, then state is loadded`);
|
|
11
|
-
this.onStatusChange(LoadStatus.LOADED);
|
|
12
|
-
}else{
|
|
13
|
-
this._application?.addEventListener('applicationLoaded',
|
|
14
|
-
() => this.onStatusChange(LoadStatus.LOADED));
|
|
15
|
-
this.onStatusChange(LoadStatus.PRE_INITIALIZE);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private async onStatusChange(newStatus:LoadStatus){
|
|
20
|
-
this._state = newStatus;
|
|
21
|
-
(LoadStateManager.listenersByType.get(newStatus) || []).forEach((listener:() => void) => {
|
|
22
|
-
listener();
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
private addListener(status:LoadStatus, listener:() => void){
|
|
27
|
-
if(!LoadStateManager.listenersByType.has(status)){
|
|
28
|
-
LoadStateManager.listenersByType.set(status, []);
|
|
29
|
-
}
|
|
30
|
-
LoadStateManager.listenersByType.get(status)?.push(listener);
|
|
31
|
-
if(status === this._state){
|
|
32
|
-
listener();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public onPreInitialize(listener:() => void):LoadStateManager{
|
|
37
|
-
this.addListener(LoadStatus.PRE_INITIALIZE, listener);
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public onLoaded(listener:() => void):LoadStateManager{
|
|
42
|
-
this.addListener(LoadStatus.LOADED, listener);
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public getStatus():LoadStatus{
|
|
47
|
-
return this._state;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public isPreInitialize():boolean{
|
|
51
|
-
return this._state === LoadStatus.PRE_INITIALIZE;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public isLoaded():boolean{
|
|
55
|
-
return this._state === LoadStatus.LOADED;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public static get(type:LoadType = LoadType.APP_LOAD): LoadStateManager{
|
|
59
|
-
if (!LoadStateManager.instanceByStatus.has(type)) {
|
|
60
|
-
LoadStateManager.instanceByStatus.set(type, new LoadStateManager());
|
|
61
|
-
}
|
|
62
|
-
return LoadStateManager.instanceByStatus.get(type) || new LoadStateManager();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export enum LoadStatus{
|
|
67
|
-
DOM_LOADED = "DOM_LOADED",
|
|
68
|
-
PRE_INITIALIZE = "PRE_INITIALIZE",
|
|
69
|
-
LOADED = "LOADED"
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export enum LoadType{
|
|
73
|
-
APP_LOAD = "APP_LOAD",
|
|
74
|
-
}
|