@dooboostore/simple-boot-http-server-ssr 1.0.13 → 1.0.15

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.
Files changed (170) hide show
  1. package/README.MD +131 -2
  2. package/dist/cjs/SimpleBootHttpSSRFactory.js.map +1 -1
  3. package/dist/cjs/SimpleBootHttpSSRServer.js +1 -0
  4. package/dist/cjs/SimpleBootHttpSSRServer.js.map +2 -2
  5. package/dist/cjs/bundle-entry.js +0 -2
  6. package/dist/cjs/bundle-entry.js.map +2 -2
  7. package/dist/cjs/decorators/LoadAroundBefore.js +2 -2
  8. package/dist/cjs/decorators/LoadAroundBefore.js.map +2 -2
  9. package/dist/cjs/filters/SSRDomParserFilter.js +151 -0
  10. package/dist/cjs/filters/SSRDomParserFilter.js.map +7 -0
  11. package/dist/cjs/filters/SSRFilter.js +10 -14
  12. package/dist/cjs/filters/SSRFilter.js.map +2 -2
  13. package/dist/cjs/filters/SSRLinkDomDomFilter.js +10 -14
  14. package/dist/cjs/filters/SSRLinkDomDomFilter.js.map +2 -2
  15. package/dist/cjs/filters/SSRSimpleWebComponentFilter.js +93 -0
  16. package/dist/cjs/filters/SSRSimpleWebComponentFilter.js.map +7 -0
  17. package/dist/cjs/filters/SSRWorker.js +2 -2
  18. package/dist/cjs/filters/SSRWorker.js.map +2 -2
  19. package/dist/cjs/filters/index.js +2 -2
  20. package/dist/cjs/filters/index.js.map +2 -2
  21. package/dist/cjs/index.js +18 -8
  22. package/dist/cjs/index.js.map +2 -2
  23. package/dist/cjs/initializers/DomParserInitializer.js +82 -0
  24. package/dist/cjs/initializers/DomParserInitializer.js.map +7 -0
  25. package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js +92 -0
  26. package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
  27. package/dist/cjs/proxy/index.js +2 -8
  28. package/dist/cjs/proxy/index.js.map +2 -2
  29. package/dist/esm/SimpleBootHttpSSRFactory.js.map +1 -1
  30. package/dist/esm/SimpleBootHttpSSRServer.js +1 -0
  31. package/dist/esm/SimpleBootHttpSSRServer.js.map +2 -2
  32. package/dist/esm/bundle-entry.js +0 -1
  33. package/dist/esm/bundle-entry.js.map +2 -2
  34. package/dist/esm/decorators/LoadAroundBefore.js +1 -1
  35. package/dist/esm/decorators/LoadAroundBefore.js.map +1 -1
  36. package/dist/esm/filters/SSRDomParserFilter.js +128 -0
  37. package/dist/esm/filters/SSRDomParserFilter.js.map +7 -0
  38. package/dist/esm/filters/SSRFilter.js +7 -11
  39. package/dist/esm/filters/SSRFilter.js.map +2 -2
  40. package/dist/esm/filters/SSRLinkDomDomFilter.js +7 -11
  41. package/dist/esm/filters/SSRLinkDomDomFilter.js.map +2 -2
  42. package/dist/esm/filters/SSRSimpleWebComponentFilter.js +70 -0
  43. package/dist/esm/filters/SSRSimpleWebComponentFilter.js.map +7 -0
  44. package/dist/esm/filters/SSRWorker.js +1 -1
  45. package/dist/esm/filters/SSRWorker.js.map +2 -2
  46. package/dist/esm/filters/index.js +1 -1
  47. package/dist/esm/filters/index.js.map +1 -1
  48. package/dist/esm/index.js +7 -4
  49. package/dist/esm/index.js.map +2 -2
  50. package/dist/esm/initializers/DomParserInitializer.js +49 -0
  51. package/dist/esm/initializers/DomParserInitializer.js.map +7 -0
  52. package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js +69 -0
  53. package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
  54. package/dist/esm/proxy/index.js +1 -4
  55. package/dist/esm/proxy/index.js.map +2 -2
  56. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +21225 -8576
  57. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +4 -4
  58. package/dist/types/SimpleBootHttpSSRFactory.d.ts +1 -1
  59. package/dist/types/SimpleBootHttpSSRFactory.d.ts.map +1 -1
  60. package/dist/types/SimpleBootHttpSSRServer.d.ts +3 -2
  61. package/dist/types/SimpleBootHttpSSRServer.d.ts.map +1 -1
  62. package/dist/types/bundle-entry.d.ts +0 -1
  63. package/dist/types/bundle-entry.d.ts.map +1 -1
  64. package/dist/types/filters/SSRDomParserFilter.d.ts +51 -0
  65. package/dist/types/filters/SSRDomParserFilter.d.ts.map +1 -0
  66. package/dist/types/filters/SSRFilter.d.ts +1 -1
  67. package/dist/types/filters/SSRFilter.d.ts.map +1 -1
  68. package/dist/types/filters/SSRLinkDomDomFilter.d.ts +1 -1
  69. package/dist/types/filters/SSRLinkDomDomFilter.d.ts.map +1 -1
  70. package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts +37 -0
  71. package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts.map +1 -0
  72. package/dist/types/filters/SSRWorker.d.ts +1 -1
  73. package/dist/types/filters/SSRWorker.d.ts.map +1 -1
  74. package/dist/types/filters/index.d.ts +1 -1
  75. package/dist/types/filters/index.d.ts.map +1 -1
  76. package/dist/types/index.d.ts +7 -2
  77. package/dist/types/index.d.ts.map +1 -1
  78. package/dist/types/initializers/DomParserInitializer.d.ts +13 -0
  79. package/dist/types/initializers/DomParserInitializer.d.ts.map +1 -0
  80. package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts +7 -0
  81. package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts.map +1 -0
  82. package/dist/types/proxy/index.d.ts +1 -4
  83. package/dist/types/proxy/index.d.ts.map +1 -1
  84. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +22093 -9448
  85. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +4 -4
  86. package/package.json +15 -8
  87. package/src/SimpleBootHttpSSRFactory.ts +1 -1
  88. package/src/SimpleBootHttpSSRServer.ts +5 -3
  89. package/src/bundle-entry.ts +0 -1
  90. package/src/decorators/LoadAroundBefore.ts +1 -1
  91. package/src/filters/SSRDomParserFilter.ts +220 -0
  92. package/src/filters/SSRFilter.ts +7 -12
  93. package/src/filters/SSRLinkDomDomFilter.ts +7 -12
  94. package/src/filters/SSRSimpleWebComponentFilter.ts +103 -0
  95. package/src/filters/SSRWorker.ts +1 -2
  96. package/src/filters/index.ts +1 -1
  97. package/src/index.ts +7 -9
  98. package/src/initializers/DomParserInitializer.ts +77 -0
  99. package/src/proxy/SSRDomParserFilterDataHydrationProxy.ts +63 -0
  100. package/src/proxy/index.ts +1 -4
  101. package/tsconfig.json +3 -1
  102. package/dist/cjs/codes/HttpHeaders.js +0 -41
  103. package/dist/cjs/codes/HttpHeaders.js.map +0 -7
  104. package/dist/cjs/codes/Mimes.js +0 -33
  105. package/dist/cjs/codes/Mimes.js.map +0 -7
  106. package/dist/cjs/codes/index.js +0 -24
  107. package/dist/cjs/codes/index.js.map +0 -7
  108. package/dist/cjs/filters/IntentSchemeFilter.js +0 -92
  109. package/dist/cjs/filters/IntentSchemeFilter.js.map +0 -7
  110. package/dist/cjs/proxy/IntentSchemeFrontProxy.js +0 -87
  111. package/dist/cjs/proxy/IntentSchemeFrontProxy.js.map +0 -7
  112. package/dist/cjs/proxy/IntentSchemeServerProxy.js +0 -67
  113. package/dist/cjs/proxy/IntentSchemeServerProxy.js.map +0 -7
  114. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +0 -126
  115. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
  116. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +0 -110
  117. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
  118. package/dist/esm/codes/HttpHeaders.js +0 -17
  119. package/dist/esm/codes/HttpHeaders.js.map +0 -7
  120. package/dist/esm/codes/Mimes.js +0 -10
  121. package/dist/esm/codes/Mimes.js.map +0 -7
  122. package/dist/esm/codes/index.js +0 -3
  123. package/dist/esm/codes/index.js.map +0 -7
  124. package/dist/esm/filters/IntentSchemeFilter.js +0 -69
  125. package/dist/esm/filters/IntentSchemeFilter.js.map +0 -7
  126. package/dist/esm/proxy/IntentSchemeFrontProxy.js +0 -64
  127. package/dist/esm/proxy/IntentSchemeFrontProxy.js.map +0 -7
  128. package/dist/esm/proxy/IntentSchemeServerProxy.js +0 -44
  129. package/dist/esm/proxy/IntentSchemeServerProxy.js.map +0 -7
  130. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +0 -103
  131. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
  132. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +0 -87
  133. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
  134. package/dist/types/codes/HttpHeaders.d.ts +0 -45
  135. package/dist/types/codes/HttpHeaders.d.ts.map +0 -1
  136. package/dist/types/codes/Mimes.d.ts +0 -31
  137. package/dist/types/codes/Mimes.d.ts.map +0 -1
  138. package/dist/types/codes/index.d.ts +0 -3
  139. package/dist/types/codes/index.d.ts.map +0 -1
  140. package/dist/types/filters/IntentSchemeFilter.d.ts +0 -20
  141. package/dist/types/filters/IntentSchemeFilter.d.ts.map +0 -1
  142. package/dist/types/proxy/IntentSchemeFrontProxy.d.ts +0 -4
  143. package/dist/types/proxy/IntentSchemeFrontProxy.d.ts.map +0 -1
  144. package/dist/types/proxy/IntentSchemeServerProxy.d.ts +0 -4
  145. package/dist/types/proxy/IntentSchemeServerProxy.d.ts.map +0 -1
  146. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +0 -16
  147. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +0 -1
  148. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts +0 -13
  149. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +0 -1
  150. package/src/codes/HttpHeaders.ts +0 -17
  151. package/src/codes/Mimes.ts +0 -6
  152. package/src/codes/index.ts +0 -2
  153. package/src/filters/IntentSchemeFilter.ts +0 -66
  154. package/src/node_modules/.bin/acorn +0 -17
  155. package/src/node_modules/.bin/browserslist +0 -17
  156. package/src/node_modules/.bin/eslint +0 -17
  157. package/src/node_modules/.bin/jest +0 -17
  158. package/src/node_modules/.bin/ts-jest +0 -17
  159. package/src/node_modules/.bin/ts-node +0 -17
  160. package/src/node_modules/.bin/ts-node-cwd +0 -17
  161. package/src/node_modules/.bin/ts-node-esm +0 -17
  162. package/src/node_modules/.bin/ts-node-script +0 -17
  163. package/src/node_modules/.bin/ts-node-transpile-only +0 -17
  164. package/src/node_modules/.bin/ts-script +0 -17
  165. package/src/node_modules/.bin/tsc +0 -17
  166. package/src/node_modules/.bin/tsserver +0 -17
  167. package/src/proxy/IntentSchemeFrontProxy.ts +0 -67
  168. package/src/proxy/IntentSchemeServerProxy.ts +0 -35
  169. package/src/proxy/SymbolIntentApiServiceProxy.ts +0 -131
  170. package/src/proxy/SymbolIntentApiServiceProxyBase.ts +0 -97
@@ -1,17 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
- esac
7
-
8
- if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/node_modules"
10
- else
11
- export NODE_PATH="/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/node_modules:$NODE_PATH"
12
- fi
13
- if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
15
- else
16
- exec node "$basedir/../typescript/bin/tsc" "$@"
17
- fi
@@ -1,17 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
- esac
7
-
8
- if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/node_modules"
10
- else
11
- export NODE_PATH="/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/bin/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules/typescript/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/typescript@5.9.2/node_modules:/Users/hyunhakim/workspace/dooboostore/source/dooboostore-develop/dooboostore-develop.github.io/source/packages/node_modules/.pnpm/node_modules:$NODE_PATH"
12
- fi
13
- if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
15
- else
16
- exec node "$basedir/../typescript/bin/tsserver" "$@"
17
- fi
@@ -1,67 +0,0 @@
1
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
2
- import { HttpHeaders } from '@dooboostore/simple-boot-http-server/codes/HttpHeaders';
3
- import { HttpHeaders as SSRHttpHeaders } from '../codes/HttpHeaders';
4
- import { Mimes as SSRMimes } from '../codes/Mimes';
5
- import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
6
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
7
-
8
- @Sim
9
- export class IntentSchemeFrontProxy implements ProxyHandler<any> {
10
- public get(target: any, prop: string): any {
11
- const t = target[prop];
12
- // TODO: 여기에 추가적인 프로퍼티 작성으 추가적으로 해야된다..
13
- // if (typeof t === 'function') {
14
- if (!['constructor', 'onProxyDomRender', 'toString'].includes(prop)) {
15
- return (...args: any[]) => {
16
- // const simstanceManager = target._SimpleBoot_simstanceManager;
17
- const simOption = target._SimpleBoot_simOption;
18
- const config = getSim(target);
19
- // const scheme = getSim(target)?.scheme;
20
- const firstScheme = ConvertUtils.flatArray(config?.scheme)[0];
21
- const key = firstScheme + '_' + prop;
22
- const type = ReflectUtils.getReturnType(target, prop);
23
- const isHas = (key in (simOption.window.server_side_data ?? {}));
24
- if (isHas) {
25
- const data = simOption.window.server_side_data?.[key];
26
- delete simOption.window.server_side_data?.[key];
27
- let rdata;
28
- if (type instanceof Promise) {
29
- rdata = Promise.resolve(data);
30
- } else {
31
- rdata = data;
32
- }
33
- return rdata;
34
- } else {
35
- return fetch(`/${prop.toString()}`,
36
- {
37
- method: 'POST',
38
- headers: {[HttpHeaders.ContentType]: SSRMimes.ApplicationJsonPostSimpleBootSsrIntentScheme, [SSRHttpHeaders.XSimpleBootSsrIntentScheme]: firstScheme ?? ''},
39
- body: JSON.stringify(args[0])
40
- }
41
- ).then(async (res) => {
42
- try {
43
- const data = await res.json();
44
- return data;
45
- } catch(e) {
46
- try {
47
- return await res.text();
48
- } catch(e) {
49
- return undefined;
50
- }
51
- }
52
- });
53
- }
54
- // return t.apply(target, args);
55
- }
56
- } else {
57
- return t;
58
- }
59
- }
60
-
61
-
62
- // apply(target: Function, thisArg: any, ...argumentsList: any[]): any {
63
- // console.log('-IntentSchemeFrontProxyHandler----?????')
64
- // return target(...argumentsList);
65
- // }
66
-
67
- }
@@ -1,35 +0,0 @@
1
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
2
-
3
- @Sim
4
- export class IntentSchemeServerProxy implements ProxyHandler<any> {
5
- public get(target: any, prop: string): any {
6
- const t = target[prop];
7
- if (typeof t === 'function') {
8
- return (...args: any[]) => {
9
-
10
- const simstanceManager = target._SimpleBoot_simstanceManager;
11
- const simOption = target._SimpleBoot_simOption;
12
- const config = getSim(target);
13
- const data = t.apply(target, args);
14
- if (simstanceManager && simOption && config?.scheme && simOption.window) {
15
- if (!simOption.window.server_side_data) {
16
- simOption.window.server_side_data = {};
17
- }
18
- const key = config.scheme + '_' + prop;
19
- if (data instanceof Promise) {
20
- data.then((it) => {
21
- simOption.window.server_side_data[key] = JSON.stringify(it);
22
- return it;
23
- });
24
- } else {
25
- simOption.window.server_side_data[key] = JSON.stringify(data);
26
- }
27
- }
28
- return data;
29
- }
30
- } else {
31
- return t;
32
- }
33
- }
34
-
35
- }
@@ -1,131 +0,0 @@
1
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
2
- import { makeIntentHeaderBySymbol } from '../codes/HttpHeaders';
3
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
4
- import { ApiService } from '@dooboostore/simple-boot/fetch/ApiService';
5
-
6
-
7
- export type Config<T = any> = { method?:'get' | 'post' | 'petch' | 'delete' | 'head', multipartFormData?: boolean, bypassTransform?: boolean; transformText?: boolean, headers?: HeadersInit, body?: T };
8
- const _ = ApiService;
9
- @Sim
10
- export class SymbolIntentApiServiceProxy<T extends object> implements ProxyHandler<T> {
11
-
12
-
13
- constructor(private apiService: ApiService) {
14
- console.log('-------apiService', apiService);
15
- }
16
-
17
- get(target: T, prop: string | symbol, receiver: any): any {
18
- const simConfig = getSim(target)
19
- const apiService = this.apiService;
20
- const value = Reflect.get(target, prop, receiver);
21
- if (typeof value === 'function' && simConfig?.symbol) {
22
- return function (...args: any[]) {
23
- const f = value as Function;
24
- const p = (userConfig: Config) => {
25
-
26
- const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbol(simConfig.symbol as Symbol)};
27
- const method = userConfig?.method ?? 'post';
28
- if(method === 'post' && userConfig?.multipartFormData) {
29
- return apiService.post({
30
- target: `/${String(prop)}`,
31
- config: {
32
- bypassTransform: userConfig?.bypassTransform,
33
- transformText: userConfig?.transformText,
34
- fetch: {
35
- credentials: 'include',
36
- headers: headers,
37
- body: ConvertUtils.toFormData(userConfig?.body)
38
- }
39
- }
40
- });
41
- } else if (method === 'post') {
42
- return apiService.postJson({
43
- target: `/${String(prop)}`,
44
- config: {
45
- bypassTransform: userConfig?.bypassTransform,
46
- transformText: userConfig?.transformText,
47
- fetch: {
48
- credentials: 'include',
49
- headers: headers,
50
- body: userConfig?.body
51
- }
52
- }
53
- });
54
- }else if (method === 'petch') {
55
- return apiService.patchJson({
56
- target: `/${String(prop)}`,
57
- config: {
58
- bypassTransform: userConfig?.bypassTransform,
59
- transformText: userConfig?.transformText,
60
- fetch: {
61
- credentials: 'include',
62
- headers: headers,
63
- body: userConfig?.body
64
- }
65
- }
66
- });
67
- } else {
68
- return apiService[method]({
69
- // return apiService.head({
70
- target: {url: `/${String(prop)}`, searchParams: userConfig?.body},
71
- config: {
72
- bypassTransform: userConfig?.bypassTransform,
73
- transformText: userConfig?.transformText,
74
- fetch: {
75
- credentials: 'include',
76
- headers: headers,
77
- }
78
- }
79
- });
80
- }
81
-
82
-
83
-
84
-
85
- // if (userConfig?.multipartFormData) {
86
- // return apiService.post({
87
- // target: `/${String(prop)}`,
88
- // config: {
89
- // bypassTransform: userConfig?.bypassTransform,
90
- // transformText: userConfig?.transformText,
91
- // fetch: {
92
- // credentials: 'include',
93
- // headers: headers,
94
- // body: ConvertUtils.toFormData(userConfig?.body)
95
- // }
96
- // }
97
- // });
98
- // } else {
99
- // return apiService.postJson({
100
- // target: `/${String(prop)}`,
101
- // config: {
102
- // bypassTransform: userConfig?.bypassTransform,
103
- // transformText: userConfig?.transformText,
104
- // fetch: {
105
- // credentials: 'include',
106
- // headers: headers,
107
- // body: userConfig?.body
108
- // }
109
- // }
110
- // });
111
- // }
112
-
113
- };
114
- args.push(p);
115
- return Reflect.apply(f, target, args);
116
- // return f.apply(target, args);
117
- }
118
- }
119
- return Reflect.get(target, prop, receiver);
120
- }
121
-
122
- apply(target: T, thisArg: any, argArray: any[]): any {
123
- console.log('SymbolIntentApiServiceProxy apply')
124
- // @ts-ignore
125
- return Reflect.apply(target, thisArg, argArray);
126
- }
127
-
128
-
129
-
130
-
131
- }
@@ -1,97 +0,0 @@
1
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
2
- import { makeIntentHeaderBySymbol } from '../codes/HttpHeaders';
3
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
4
- import { ApiService } from '@dooboostore/simple-boot/fetch/ApiService';
5
-
6
-
7
- export type SymbolIntentApiServiceProxyBaseConfig<T = any> = { method?:'get' | 'post' | 'petch' | 'delete' | 'head', multipartFormData?: boolean, bypassTransform?: boolean; transformText?: boolean, headers?: HeadersInit, body?: T };
8
-
9
- export class SymbolIntentApiServiceProxyBase<T extends object = any> {
10
- // 생성자는 프록시될 대상 객체(target)와 의존성을 주입받습니다.
11
- constructor(
12
- apiService: ApiService,
13
- ) {
14
- // ProxyHandler 객체를 정의합니다.
15
- const handler: ProxyHandler<T> = {
16
- get(target: T, prop: string | symbol, receiver: any): any {
17
- const simConfig = getSim(target)
18
- const value = Reflect.get(target, prop, receiver);
19
- if (typeof value === 'function' && simConfig?.symbol) {
20
- return function (...args: any[]) {
21
- const f = value as Function;
22
- const p = (userConfig: SymbolIntentApiServiceProxyBaseConfig) => {
23
- const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbol(simConfig.symbol as Symbol)};
24
- const method = userConfig?.method ?? 'post';
25
- if(method === 'post' && userConfig?.multipartFormData) {
26
- return apiService.post({
27
- target: `/${String(prop)}`,
28
- config: {
29
- bypassTransform: userConfig?.bypassTransform,
30
- transformText: userConfig?.transformText,
31
- fetch: {
32
- credentials: 'include',
33
- headers: headers,
34
- body: ConvertUtils.toFormData(userConfig?.body)
35
- }
36
- }
37
- });
38
- } else if (method === 'post') {
39
- return apiService.postJson({
40
- target: `/${String(prop)}`,
41
- config: {
42
- bypassTransform: userConfig?.bypassTransform,
43
- transformText: userConfig?.transformText,
44
- fetch: {
45
- credentials: 'include',
46
- headers: headers,
47
- body: userConfig?.body
48
- }
49
- }
50
- });
51
- }else if (method === 'petch') {
52
- return apiService.patchJson({
53
- target: `/${String(prop)}`,
54
- config: {
55
- bypassTransform: userConfig?.bypassTransform,
56
- transformText: userConfig?.transformText,
57
- fetch: {
58
- credentials: 'include',
59
- headers: headers,
60
- body: userConfig?.body
61
- }
62
- }
63
- });
64
- } else {
65
- return apiService[method]({
66
- target: {url: `/${String(prop)}`, searchParams: userConfig?.body},
67
- config: {
68
- bypassTransform: userConfig?.bypassTransform,
69
- transformText: userConfig?.transformText,
70
- fetch: {
71
- credentials: 'include',
72
- headers: headers,
73
- }
74
- }
75
- });
76
- }
77
- };
78
- args.push(p);
79
- return Reflect.apply(f, target, args);
80
- }
81
- }
82
- return Reflect.get(target, prop, receiver);
83
- },
84
-
85
- apply(target: T, thisArg: any, argArray: any[]): any {
86
- console.log('SymbolIntentApiServiceProxyBase apply (from handler)');
87
- // @ts-ignore
88
- return Reflect.apply(target, thisArg, argArray);
89
- }
90
- };
91
-
92
- // 생성자에서 Proxy 객체를 반환합니다.
93
-
94
- // @ts-ignore
95
- return new Proxy(this, handler);
96
- }
97
- }