@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.
- package/README.MD +131 -2
- package/dist/cjs/SimpleBootHttpSSRFactory.js.map +1 -1
- package/dist/cjs/SimpleBootHttpSSRServer.js +1 -0
- package/dist/cjs/SimpleBootHttpSSRServer.js.map +2 -2
- package/dist/cjs/bundle-entry.js +0 -2
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/decorators/LoadAroundBefore.js +2 -2
- package/dist/cjs/decorators/LoadAroundBefore.js.map +2 -2
- package/dist/cjs/filters/SSRDomParserFilter.js +151 -0
- package/dist/cjs/filters/SSRDomParserFilter.js.map +7 -0
- package/dist/cjs/filters/SSRFilter.js +10 -14
- package/dist/cjs/filters/SSRFilter.js.map +2 -2
- package/dist/cjs/filters/SSRLinkDomDomFilter.js +10 -14
- package/dist/cjs/filters/SSRLinkDomDomFilter.js.map +2 -2
- package/dist/cjs/filters/SSRSimpleWebComponentFilter.js +93 -0
- package/dist/cjs/filters/SSRSimpleWebComponentFilter.js.map +7 -0
- package/dist/cjs/filters/SSRWorker.js +2 -2
- package/dist/cjs/filters/SSRWorker.js.map +2 -2
- package/dist/cjs/filters/index.js +2 -2
- package/dist/cjs/filters/index.js.map +2 -2
- package/dist/cjs/index.js +18 -8
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/initializers/DomParserInitializer.js +82 -0
- package/dist/cjs/initializers/DomParserInitializer.js.map +7 -0
- package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js +92 -0
- package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
- package/dist/cjs/proxy/index.js +2 -8
- package/dist/cjs/proxy/index.js.map +2 -2
- package/dist/esm/SimpleBootHttpSSRFactory.js.map +1 -1
- package/dist/esm/SimpleBootHttpSSRServer.js +1 -0
- package/dist/esm/SimpleBootHttpSSRServer.js.map +2 -2
- package/dist/esm/bundle-entry.js +0 -1
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/decorators/LoadAroundBefore.js +1 -1
- package/dist/esm/decorators/LoadAroundBefore.js.map +1 -1
- package/dist/esm/filters/SSRDomParserFilter.js +128 -0
- package/dist/esm/filters/SSRDomParserFilter.js.map +7 -0
- package/dist/esm/filters/SSRFilter.js +7 -11
- package/dist/esm/filters/SSRFilter.js.map +2 -2
- package/dist/esm/filters/SSRLinkDomDomFilter.js +7 -11
- package/dist/esm/filters/SSRLinkDomDomFilter.js.map +2 -2
- package/dist/esm/filters/SSRSimpleWebComponentFilter.js +70 -0
- package/dist/esm/filters/SSRSimpleWebComponentFilter.js.map +7 -0
- package/dist/esm/filters/SSRWorker.js +1 -1
- package/dist/esm/filters/SSRWorker.js.map +2 -2
- package/dist/esm/filters/index.js +1 -1
- package/dist/esm/filters/index.js.map +1 -1
- package/dist/esm/index.js +7 -4
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/initializers/DomParserInitializer.js +49 -0
- package/dist/esm/initializers/DomParserInitializer.js.map +7 -0
- package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js +69 -0
- package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
- package/dist/esm/proxy/index.js +1 -4
- package/dist/esm/proxy/index.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +21225 -8576
- package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +4 -4
- package/dist/types/SimpleBootHttpSSRFactory.d.ts +1 -1
- package/dist/types/SimpleBootHttpSSRFactory.d.ts.map +1 -1
- package/dist/types/SimpleBootHttpSSRServer.d.ts +3 -2
- package/dist/types/SimpleBootHttpSSRServer.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +0 -1
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/filters/SSRDomParserFilter.d.ts +51 -0
- package/dist/types/filters/SSRDomParserFilter.d.ts.map +1 -0
- package/dist/types/filters/SSRFilter.d.ts +1 -1
- package/dist/types/filters/SSRFilter.d.ts.map +1 -1
- package/dist/types/filters/SSRLinkDomDomFilter.d.ts +1 -1
- package/dist/types/filters/SSRLinkDomDomFilter.d.ts.map +1 -1
- package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts +37 -0
- package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts.map +1 -0
- package/dist/types/filters/SSRWorker.d.ts +1 -1
- package/dist/types/filters/SSRWorker.d.ts.map +1 -1
- package/dist/types/filters/index.d.ts +1 -1
- package/dist/types/filters/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/initializers/DomParserInitializer.d.ts +13 -0
- package/dist/types/initializers/DomParserInitializer.d.ts.map +1 -0
- package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts +7 -0
- package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts.map +1 -0
- package/dist/types/proxy/index.d.ts +1 -4
- package/dist/types/proxy/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +22093 -9448
- package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +4 -4
- package/package.json +15 -8
- package/src/SimpleBootHttpSSRFactory.ts +1 -1
- package/src/SimpleBootHttpSSRServer.ts +5 -3
- package/src/bundle-entry.ts +0 -1
- package/src/decorators/LoadAroundBefore.ts +1 -1
- package/src/filters/SSRDomParserFilter.ts +220 -0
- package/src/filters/SSRFilter.ts +7 -12
- package/src/filters/SSRLinkDomDomFilter.ts +7 -12
- package/src/filters/SSRSimpleWebComponentFilter.ts +103 -0
- package/src/filters/SSRWorker.ts +1 -2
- package/src/filters/index.ts +1 -1
- package/src/index.ts +7 -9
- package/src/initializers/DomParserInitializer.ts +77 -0
- package/src/proxy/SSRDomParserFilterDataHydrationProxy.ts +63 -0
- package/src/proxy/index.ts +1 -4
- package/tsconfig.json +3 -1
- package/dist/cjs/codes/HttpHeaders.js +0 -41
- package/dist/cjs/codes/HttpHeaders.js.map +0 -7
- package/dist/cjs/codes/Mimes.js +0 -33
- package/dist/cjs/codes/Mimes.js.map +0 -7
- package/dist/cjs/codes/index.js +0 -24
- package/dist/cjs/codes/index.js.map +0 -7
- package/dist/cjs/filters/IntentSchemeFilter.js +0 -92
- package/dist/cjs/filters/IntentSchemeFilter.js.map +0 -7
- package/dist/cjs/proxy/IntentSchemeFrontProxy.js +0 -87
- package/dist/cjs/proxy/IntentSchemeFrontProxy.js.map +0 -7
- package/dist/cjs/proxy/IntentSchemeServerProxy.js +0 -67
- package/dist/cjs/proxy/IntentSchemeServerProxy.js.map +0 -7
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +0 -126
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
- package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +0 -110
- package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
- package/dist/esm/codes/HttpHeaders.js +0 -17
- package/dist/esm/codes/HttpHeaders.js.map +0 -7
- package/dist/esm/codes/Mimes.js +0 -10
- package/dist/esm/codes/Mimes.js.map +0 -7
- package/dist/esm/codes/index.js +0 -3
- package/dist/esm/codes/index.js.map +0 -7
- package/dist/esm/filters/IntentSchemeFilter.js +0 -69
- package/dist/esm/filters/IntentSchemeFilter.js.map +0 -7
- package/dist/esm/proxy/IntentSchemeFrontProxy.js +0 -64
- package/dist/esm/proxy/IntentSchemeFrontProxy.js.map +0 -7
- package/dist/esm/proxy/IntentSchemeServerProxy.js +0 -44
- package/dist/esm/proxy/IntentSchemeServerProxy.js.map +0 -7
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +0 -103
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
- package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +0 -87
- package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
- package/dist/types/codes/HttpHeaders.d.ts +0 -45
- package/dist/types/codes/HttpHeaders.d.ts.map +0 -1
- package/dist/types/codes/Mimes.d.ts +0 -31
- package/dist/types/codes/Mimes.d.ts.map +0 -1
- package/dist/types/codes/index.d.ts +0 -3
- package/dist/types/codes/index.d.ts.map +0 -1
- package/dist/types/filters/IntentSchemeFilter.d.ts +0 -20
- package/dist/types/filters/IntentSchemeFilter.d.ts.map +0 -1
- package/dist/types/proxy/IntentSchemeFrontProxy.d.ts +0 -4
- package/dist/types/proxy/IntentSchemeFrontProxy.d.ts.map +0 -1
- package/dist/types/proxy/IntentSchemeServerProxy.d.ts +0 -4
- package/dist/types/proxy/IntentSchemeServerProxy.d.ts.map +0 -1
- package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +0 -16
- package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +0 -1
- package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts +0 -13
- package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +0 -1
- package/src/codes/HttpHeaders.ts +0 -17
- package/src/codes/Mimes.ts +0 -6
- package/src/codes/index.ts +0 -2
- package/src/filters/IntentSchemeFilter.ts +0 -66
- package/src/node_modules/.bin/acorn +0 -17
- package/src/node_modules/.bin/browserslist +0 -17
- package/src/node_modules/.bin/eslint +0 -17
- package/src/node_modules/.bin/jest +0 -17
- package/src/node_modules/.bin/ts-jest +0 -17
- package/src/node_modules/.bin/ts-node +0 -17
- package/src/node_modules/.bin/ts-node-cwd +0 -17
- package/src/node_modules/.bin/ts-node-esm +0 -17
- package/src/node_modules/.bin/ts-node-script +0 -17
- package/src/node_modules/.bin/ts-node-transpile-only +0 -17
- package/src/node_modules/.bin/ts-script +0 -17
- package/src/node_modules/.bin/tsc +0 -17
- package/src/node_modules/.bin/tsserver +0 -17
- package/src/proxy/IntentSchemeFrontProxy.ts +0 -67
- package/src/proxy/IntentSchemeServerProxy.ts +0 -35
- package/src/proxy/SymbolIntentApiServiceProxy.ts +0 -131
- 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
|
-
}
|