jpf 5.0.25 → 5.0.26

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.
@@ -1,8 +1,12 @@
1
1
  type ResponseType = "void" | "json" | "blob" | "arrayBuffer";
2
+ interface IResponseHanderResult {
3
+ handled: boolean;
4
+ value: any;
5
+ }
2
6
  export declare function setIsTestRun(value: boolean): void;
3
7
  export declare function setTestSecret(secret: string): void;
4
8
  export declare function setTestUserId(userId: number): void;
5
- export declare function initialize(headersProvider?: (headers: HeadersInit) => void, responseHandler?: (response: Response, responseType: ResponseType) => void, loginHandler?: () => Promise<void>): void;
9
+ export declare function initialize(preFetchHandler?: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit) => Promise<boolean>, responseHandler?: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit, response: Response) => Promise<IResponseHanderResult>): void;
6
10
  export declare function get(input: RequestInfo, authorized: boolean, responseType: ResponseType, init?: RequestInit): Promise<any>;
7
11
  export declare function post(input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit): Promise<any>;
8
12
  export {};
@@ -11,34 +11,50 @@ var testUserId;
11
11
  export function setTestUserId(userId) {
12
12
  testUserId = userId;
13
13
  }
14
- var additionalHeaders;
15
- var additionalResponseHandler;
16
- var authenticationHandler;
17
- export function initialize(headersProvider, responseHandler, loginHandler) {
18
- additionalHeaders = headersProvider;
19
- additionalResponseHandler = responseHandler;
20
- authenticationHandler = loginHandler;
14
+ let preFetch;
15
+ let alternativeResponseHandler;
16
+ export function initialize(preFetchHandler, responseHandler) {
17
+ preFetch = preFetchHandler;
18
+ alternativeResponseHandler = responseHandler;
21
19
  }
22
20
  export async function get(input, authorized, responseType, init) {
23
21
  if (!init) {
24
22
  init = {};
25
23
  }
26
- if (authorized && authenticationHandler) {
27
- await authenticationHandler();
24
+ if (preFetch) {
25
+ var canFetch = await preFetch(input, null, authorized, responseType, init);
26
+ if (!canFetch) {
27
+ return null;
28
+ }
28
29
  }
29
30
  await setGetInitValues(init, authorized, responseType);
30
31
  const response = await fetch(input, init);
32
+ if (alternativeResponseHandler) {
33
+ var result = await alternativeResponseHandler(input, null, authorized, responseType, init, response);
34
+ if (result.handled) {
35
+ return result.value;
36
+ }
37
+ }
31
38
  return await getResponseValue(response, responseType);
32
39
  }
33
40
  export async function post(input, data, authorized, responseType, init) {
34
41
  if (!init) {
35
42
  init = {};
36
43
  }
37
- if (authorized && authenticationHandler) {
38
- await authenticationHandler();
44
+ if (preFetch) {
45
+ var canFetch = await preFetch(input, null, authorized, responseType, init);
46
+ if (!canFetch) {
47
+ return null;
48
+ }
39
49
  }
40
50
  await setPostInitValues(init, authorized, responseType, data);
41
51
  const response = await fetch(input, init);
52
+ if (alternativeResponseHandler) {
53
+ var result = await alternativeResponseHandler(input, null, authorized, responseType, init, response);
54
+ if (result.handled) {
55
+ return result.value;
56
+ }
57
+ }
42
58
  return await getResponseValue(response, responseType);
43
59
  }
44
60
  function getFilename(response) {
@@ -57,9 +73,6 @@ function isJson(response) {
57
73
  return response.headers.get("Content-Type")?.includes("application/json");
58
74
  }
59
75
  async function getResponseValue(response, responseType) {
60
- if (additionalResponseHandler) {
61
- additionalResponseHandler(response, responseType);
62
- }
63
76
  if (response.ok) {
64
77
  switch (responseType) {
65
78
  case "void":
@@ -145,8 +158,5 @@ async function setHeaders(init, authorized, responsetype) {
145
158
  }
146
159
  }
147
160
  init.headers["X-Request-ID"] = newGuid();
148
- if (additionalHeaders) {
149
- additionalHeaders(init.headers);
150
- }
151
161
  }
152
162
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utilities/fetch/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAQ/C,IAAI,SAAS,GAAY,KAAK,CAAC;AAC/B,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,SAAS,GAAG,KAAK,CAAC;AACtB,CAAC;AAED,IAAI,UAAU,GAAW,IAAI,CAAC;AAC9B,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,UAAU,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,IAAI,UAAkB,CAAC;AACvB,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,UAAU,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,IAAI,iBAAiD,CAAC;AACtD,IAAI,yBAAmF,CAAC;AACxF,IAAI,qBAA0C,CAAC;AAE/C,MAAM,UAAU,UAAU,CAAC,eAAgD,EAAE,eAA0E,EAAE,YAAkC;IACvL,iBAAiB,GAAG,eAAe,CAAC;IACpC,yBAAyB,GAAG,eAAe,CAAC;IAC5C,qBAAqB,GAAG,YAAY,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,KAAkB,EAAE,UAAmB,EAAE,YAA0B,EAAE,IAAkB;IAC7G,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,GAAG,EAAE,CAAA;IACb,CAAC;IAED,IAAI,UAAU,IAAI,qBAAqB,EAAE,CAAC;QACtC,MAAM,qBAAqB,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE1C,OAAO,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAkB,EAAE,IAAS,EAAE,UAAmB,EAAE,YAA0B,EAAE,IAAiB;IACxH,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,GAAG,EAAE,CAAC;IACd,CAAC;IAED,IAAI,UAAU,IAAI,qBAAqB,EAAE,CAAC;QACtC,MAAM,qBAAqB,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE1C,OAAO,MAAM,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACnC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC7E,IAAI,wBAAwB,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,QAAkB;IAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB,EAAE,YAA0B;IAC1E,IAAI,yBAAyB,EAAE,CAAC;QAC5B,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QACd,QAAQ,YAAY,EAAE,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC;YAChB,KAAK,MAAM;gBACP,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,MAAM;gBACP,OAAO;oBACH,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;oBAC3B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC9B,CAAC;YACN,KAAK,aAAa;gBACd,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClC;gBACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,YAAY,GAAG,eAAe,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAED,IAAI,YAAY,GAAW,IAAI,CAAC;IAGhC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEnB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAG3C,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC;QACxC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAEhB,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAiB,EAAE,UAAmB,EAAE,YAA0B;IAC9F,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAiB,EAAE,UAAmB,EAAE,YAA0B,EAAE,IAAS;IAC1G,MAAM,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IACtD,CAAC;IACD,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAiB,EAAE,UAAmB,EAAE,YAA0B;IACxF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QACxC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,EAAE,CAAC;IAGzC,IAAI,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utilities/fetch/fetch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jpf",
3
- "version": "5.0.25",
3
+ "version": "5.0.26",
4
4
  "description": "Javascript Presentation Foundation base classes and interfaces",
5
5
  "keywords": [
6
6
  "mvvm",
@@ -2,6 +2,11 @@
2
2
 
3
3
  type ResponseType = "void" | "json" | "blob" | "arrayBuffer";
4
4
 
5
+ interface IResponseHanderResult {
6
+ handled: boolean;
7
+ value: any;
8
+ }
9
+
5
10
  interface IException {
6
11
  message: string;
7
12
  }
@@ -21,14 +26,15 @@ export function setTestUserId(userId: number) {
21
26
  testUserId = userId;
22
27
  }
23
28
 
24
- var additionalHeaders: (headers: HeadersInit) => void;
25
- var additionalResponseHandler: (response: Response, responseType: ResponseType) => void;
26
- var authenticationHandler: () => Promise<void>;
29
+ let preFetch: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit) => Promise<boolean>;
30
+ let alternativeResponseHandler: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit, response: Response) => Promise<IResponseHanderResult>;
27
31
 
28
- export function initialize(headersProvider?: (headers: HeadersInit) => void, responseHandler?: (response: Response, responseType: ResponseType) => void, loginHandler?: () => Promise<void>) {
29
- additionalHeaders = headersProvider;
30
- additionalResponseHandler = responseHandler;
31
- authenticationHandler = loginHandler;
32
+ export function initialize(
33
+ preFetchHandler?: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit) => Promise<boolean>,
34
+ responseHandler?: (input: RequestInfo, data: any, authorized: boolean, responseType: ResponseType, init: RequestInit, response: Response) => Promise<IResponseHanderResult>
35
+ ) {
36
+ preFetch = preFetchHandler;
37
+ alternativeResponseHandler = responseHandler;
32
38
  }
33
39
 
34
40
  export async function get(input: RequestInfo, authorized: boolean, responseType: ResponseType, init?: RequestInit): Promise<any> {
@@ -36,14 +42,29 @@ export async function get(input: RequestInfo, authorized: boolean, responseType:
36
42
  init = {}
37
43
  }
38
44
 
39
- if (authorized && authenticationHandler) {
40
- await authenticationHandler();
45
+ if (preFetch) {
46
+ var canFetch = await preFetch(input, null, authorized, responseType, init);
47
+ if (!canFetch) {
48
+ //Abort the fetch
49
+ return null;
50
+ }
41
51
  }
42
52
 
43
53
  await setGetInitValues(init, authorized, responseType);
44
54
 
45
55
  const response = await fetch(input, init);
46
56
 
57
+ if (alternativeResponseHandler) {
58
+ //Execute the alternative response handler
59
+ var result = await alternativeResponseHandler(input, null, authorized, responseType, init, response);
60
+
61
+ //Check if the response was handled
62
+ if (result.handled) {
63
+ //Return the value from the alternative response handler
64
+ return result.value;
65
+ }
66
+ }
67
+
47
68
  return await getResponseValue(response, responseType);
48
69
  }
49
70
 
@@ -52,14 +73,30 @@ export async function post(input: RequestInfo, data: any, authorized: boolean, r
52
73
  init = {};
53
74
  }
54
75
 
55
- if (authorized && authenticationHandler) {
56
- await authenticationHandler();
76
+ if (preFetch) {
77
+ var canFetch = await preFetch(input, null, authorized, responseType, init);
78
+ if (!canFetch) {
79
+ //Abort the fetch
80
+ return null;
81
+ }
57
82
  }
58
83
 
59
84
  await setPostInitValues(init, authorized, responseType, data);
60
85
 
61
86
  const response = await fetch(input, init);
62
87
 
88
+
89
+ if (alternativeResponseHandler) {
90
+ //Execute the alternative response handler
91
+ var result = await alternativeResponseHandler(input, null, authorized, responseType, init, response);
92
+
93
+ //Check if the response was handled
94
+ if (result.handled) {
95
+ //Return the value from the alternative response handler
96
+ return result.value;
97
+ }
98
+ }
99
+
63
100
  return await getResponseValue(response, responseType);
64
101
  }
65
102
 
@@ -82,9 +119,6 @@ function isJson(response: Response): boolean {
82
119
  }
83
120
 
84
121
  async function getResponseValue(response: Response, responseType: ResponseType): Promise<any> {
85
- if (additionalResponseHandler) {
86
- additionalResponseHandler(response, responseType);
87
- }
88
122
 
89
123
  if (response.ok) {
90
124
  switch (responseType) {
@@ -185,9 +219,4 @@ async function setHeaders(init: RequestInit, authorized: boolean, responsetype:
185
219
  }
186
220
 
187
221
  init.headers["X-Request-ID"] = newGuid();
188
-
189
- //Check if there are additional headers to be set.
190
- if (additionalHeaders) {
191
- additionalHeaders(init.headers);
192
- }
193
222
  }