@dooboostore/simple-boot-http-server-ssr 1.0.12 → 1.0.14

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 (59) hide show
  1. package/README.MD +1 -3
  2. package/dist/cjs/filters/IntentSchemeFilter.js.map +2 -2
  3. package/dist/cjs/filters/SSRDomParserFilter.js +186 -0
  4. package/dist/cjs/filters/SSRDomParserFilter.js.map +7 -0
  5. package/dist/cjs/filters/SSRFilter.js +1 -1
  6. package/dist/cjs/filters/SSRFilter.js.map +2 -2
  7. package/dist/cjs/filters/SSRLinkDomDomFilter.js +183 -0
  8. package/dist/cjs/filters/SSRLinkDomDomFilter.js.map +7 -0
  9. package/dist/cjs/initializers/DomParserInitializer.js +79 -0
  10. package/dist/cjs/initializers/DomParserInitializer.js.map +7 -0
  11. package/dist/cjs/initializers/LinkedomInitializer.js +81 -0
  12. package/dist/cjs/initializers/LinkedomInitializer.js.map +7 -0
  13. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +85 -73
  14. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +2 -2
  15. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +2 -77
  16. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
  17. package/dist/esm/filters/IntentSchemeFilter.js.map +2 -2
  18. package/dist/esm/filters/SSRDomParserFilter.js +163 -0
  19. package/dist/esm/filters/SSRDomParserFilter.js.map +7 -0
  20. package/dist/esm/filters/SSRFilter.js +1 -1
  21. package/dist/esm/filters/SSRFilter.js.map +2 -2
  22. package/dist/esm/filters/SSRLinkDomDomFilter.js +160 -0
  23. package/dist/esm/filters/SSRLinkDomDomFilter.js.map +7 -0
  24. package/dist/esm/initializers/DomParserInitializer.js +46 -0
  25. package/dist/esm/initializers/DomParserInitializer.js.map +7 -0
  26. package/dist/esm/initializers/LinkedomInitializer.js +48 -0
  27. package/dist/esm/initializers/LinkedomInitializer.js.map +7 -0
  28. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +85 -73
  29. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +2 -2
  30. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +2 -77
  31. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
  32. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +1184 -525
  33. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +4 -4
  34. package/dist/types/filters/IntentSchemeFilter.d.ts.map +1 -1
  35. package/dist/types/filters/SSRDomParserFilter.d.ts +57 -0
  36. package/dist/types/filters/SSRDomParserFilter.d.ts.map +1 -0
  37. package/dist/types/filters/SSRLinkDomDomFilter.d.ts +57 -0
  38. package/dist/types/filters/SSRLinkDomDomFilter.d.ts.map +1 -0
  39. package/dist/types/index.d.ts +0 -19
  40. package/dist/types/initializers/DomParserInitializer.d.ts +11 -0
  41. package/dist/types/initializers/DomParserInitializer.d.ts.map +1 -0
  42. package/dist/types/initializers/LinkedomInitializer.d.ts +11 -0
  43. package/dist/types/initializers/LinkedomInitializer.d.ts.map +1 -0
  44. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +2 -0
  45. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -1
  46. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts +0 -8
  47. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +1 -1
  48. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +1184 -525
  49. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +4 -4
  50. package/package.json +16 -14
  51. package/src/filters/IntentSchemeFilter.ts +51 -48
  52. package/src/filters/SSRDomParserFilter.ts +233 -0
  53. package/src/filters/SSRFilter.ts +2 -2
  54. package/src/filters/SSRLinkDomDomFilter.ts +227 -0
  55. package/src/initializers/DomParserInitializer.ts +70 -0
  56. package/src/initializers/LinkedomInitializer.ts +69 -0
  57. package/src/proxy/SymbolIntentApiServiceProxy.ts +100 -116
  58. package/src/proxy/SymbolIntentApiServiceProxyBase.ts +7 -85
  59. package/tsconfig.json +2 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/initializers/LinkedomInitializer.ts"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport { parseHTML } from 'linkedom';\n\nexport class LinkedomInitializer {\n constructor(\n private frontDistPath: string,\n private frontDistIndexFileName: string,\n private reconfigureSettings?: {url: string}\n ) {}\n\n public static loadFile(distPath: string, filePath: string): string {\n return fs.readFileSync(path.join(distPath, filePath), 'utf8');\n }\n\n async run(): Promise<Window> {\n // const indexHTML = fs.readFileSync(path.join(this.frontDistPath, 'index.html'), 'utf8');\n // const indexHTML = JsdomInitializer.loadFile(this.frontDistPath, this.frontDistIndexFileName);\n const pathStr = path.join(this.frontDistPath, this.frontDistIndexFileName);\n\n const html = fs.readFileSync(pathStr,'utf8');\n\n const w = parseHTML(html);\n // @ts-ignore\n // w.location ??= { href: 'about:blank'};\n // if(this.reconfigureSettings?.url){\n // console.log('--',w,w.location);\n // @ts-ignore\n // w.location.href = this.reconfigureSettings.url;\n // }\n // console.log('!!!!!!!!!!!', html, w.document);\n // @ts-ignore\n global.document = w.document;\n // @ts-ignore\n global.window = w as unknown as Window & typeof globalThis;\n // @ts-ignore\n global.window.requestAnimationFrame = () => {};\n global.window.scrollTo = () => {};\n // @ts-ignore\n global.history = w.history;\n global.Event = w.Event;\n // @ts-ignore\n global.PopStateEvent = w.Event;\n global.IntersectionObserver = w.IntersectionObserver;\n // @ts-ignore\n // global.Error = ErrorBase;\n // @ts-ignore\n // global.navigator = w.navigator;\n global.NodeFilter = w.NodeFilter;\n global.Node = w.Node;\n global.DocumentFragment = w.DocumentFragment;\n global.HTMLElement = w.HTMLElement;\n global.HTMLMetaElement = w.HTMLMetaElement;\n global.Element = w.Element;\n global.HTMLCanvasElement = w.HTMLCanvasElement;\n global.HTMLCanvasElement.prototype.getContext = () => {\n return null;\n };\n global.CanvasRenderingContext2D = w.CanvasRenderingContext2D;\n global.CanvasPattern = w.CanvasPattern;\n global.CanvasGradient = w.CanvasGradient;\n global.Path2D = w.Path2D;\n global.ImageData = w.ImageData;\n // console.log('cvvvvvvvvvvvvvv', w.Node.DOCUMENT_FRAGMENT_NODE);\n return w;\n }\n}\n//\n// export default new JsdomInitializer();\n"],
5
+ "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAEnB,MAAM,oBAAoB;AAAA,EAC/B,YACU,eACA,wBACA,qBACR;AAHQ;AACA;AACA;AAAA,EACP;AAAA,EAEH,OAAc,SAAS,UAAkB,UAA0B;AACjE,WAAO,GAAG,aAAa,KAAK,KAAK,UAAU,QAAQ,GAAG,MAAM;AAAA,EAC9D;AAAA,EAEA,MAAM,MAAuB;AAG3B,UAAM,UAAU,KAAK,KAAK,KAAK,eAAe,KAAK,sBAAsB;AAEzE,UAAM,OAAO,GAAG,aAAa,SAAQ,MAAM;AAE3C,UAAM,IAAI,UAAU,IAAI;AAUxB,WAAO,WAAW,EAAE;AAEpB,WAAO,SAAS;AAEhB,WAAO,OAAO,wBAAwB,MAAM;AAAA,IAAC;AAC7C,WAAO,OAAO,WAAW,MAAM;AAAA,IAAC;AAEhC,WAAO,UAAU,EAAE;AACnB,WAAO,QAAQ,EAAE;AAEjB,WAAO,gBAAgB,EAAE;AACzB,WAAO,uBAAuB,EAAE;AAKhC,WAAO,aAAa,EAAE;AACtB,WAAO,OAAO,EAAE;AAChB,WAAO,mBAAmB,EAAE;AAC5B,WAAO,cAAc,EAAE;AACvB,WAAO,kBAAkB,EAAE;AAC3B,WAAO,UAAU,EAAE;AACnB,WAAO,oBAAoB,EAAE;AAC7B,WAAO,kBAAkB,UAAU,aAAa,MAAM;AACpD,aAAO;AAAA,IACT;AACA,WAAO,2BAA2B,EAAE;AACpC,WAAO,gBAAgB,EAAE;AACzB,WAAO,iBAAiB,EAAE;AAC1B,WAAO,SAAS,EAAE;AAClB,WAAO,YAAY,EAAE;AAErB,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -7,93 +7,105 @@ var __decorate = function(decorators, target, key, desc) {
7
7
  var __metadata = function(k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ var SymbolIntentApiServiceProxy_1;
10
11
  var _a;
11
12
  import { getSim, Sim } from "@dooboostore/simple-boot/decorators/SimDecorator";
12
13
  import { makeIntentHeaderBySymbol } from "../codes/HttpHeaders.js";
13
14
  import { ConvertUtils } from "@dooboostore/core/convert/ConvertUtils";
14
15
  import { ApiService } from "@dooboostore/simple-boot/fetch/ApiService";
15
16
  const _ = ApiService;
16
- let SymbolIntentApiServiceProxy = class SymbolIntentApiServiceProxy2 {
17
+ let SymbolIntentApiServiceProxy = SymbolIntentApiServiceProxy_1 = class SymbolIntentApiServiceProxy2 {
17
18
  constructor(apiService) {
18
19
  this.apiService = apiService;
19
- console.log("-------apiService", apiService);
20
20
  }
21
- get(target, prop, receiver) {
22
- const simConfig = getSim(target);
23
- const apiService = this.apiService;
24
- const value = Reflect.get(target, prop, receiver);
25
- if (typeof value === "function" && simConfig?.symbol) {
26
- return function(...args) {
27
- const f = value;
28
- const p = (userConfig) => {
29
- const headers = { ...userConfig?.headers ?? {}, ...makeIntentHeaderBySymbol(simConfig.symbol) };
30
- const method = userConfig?.method ?? "post";
31
- if (method === "post" && userConfig?.multipartFormData) {
32
- return apiService.post({
33
- target: `/${String(prop)}`,
34
- config: {
35
- bypassTransform: userConfig?.bypassTransform,
36
- transformText: userConfig?.transformText,
37
- fetch: {
38
- credentials: "include",
39
- headers,
40
- body: ConvertUtils.toFormData(userConfig?.body)
41
- }
42
- }
43
- });
44
- } else if (method === "post") {
45
- return apiService.postJson({
46
- target: `/${String(prop)}`,
47
- config: {
48
- bypassTransform: userConfig?.bypassTransform,
49
- transformText: userConfig?.transformText,
50
- fetch: {
51
- credentials: "include",
52
- headers,
53
- body: userConfig?.body
54
- }
55
- }
56
- });
57
- } else if (method === "petch") {
58
- return apiService.patchJson({
59
- target: `/${String(prop)}`,
60
- config: {
61
- bypassTransform: userConfig?.bypassTransform,
62
- transformText: userConfig?.transformText,
63
- fetch: {
64
- credentials: "include",
65
- headers,
66
- body: userConfig?.body
67
- }
21
+ static createHandler(apiService) {
22
+ return {
23
+ get(target, prop, receiver) {
24
+ const simConfig = getSim(target);
25
+ const value = Reflect.get(target, prop, receiver);
26
+ if (typeof value === "function" && simConfig?.symbol) {
27
+ return function(...args) {
28
+ const f = value;
29
+ const p = (userConfig) => {
30
+ const headers = { ...userConfig?.headers ?? {}, ...makeIntentHeaderBySymbol(simConfig.symbol) };
31
+ const method = userConfig?.method ?? "post";
32
+ if (method === "post" && userConfig?.multipartFormData) {
33
+ return apiService.post({
34
+ target: `/${String(prop)}`,
35
+ config: {
36
+ bypassTransform: userConfig?.bypassTransform,
37
+ transformText: userConfig?.transformText,
38
+ config: userConfig?.config,
39
+ fetch: {
40
+ credentials: "include",
41
+ headers,
42
+ body: ConvertUtils.toFormData(userConfig?.body)
43
+ }
44
+ }
45
+ });
46
+ } else if (method === "post") {
47
+ return apiService.postJson({
48
+ target: `/${String(prop)}`,
49
+ config: {
50
+ bypassTransform: userConfig?.bypassTransform,
51
+ transformText: userConfig?.transformText,
52
+ config: userConfig?.config,
53
+ fetch: {
54
+ credentials: "include",
55
+ headers,
56
+ body: userConfig?.body
57
+ }
58
+ }
59
+ });
60
+ } else if (method === "petch") {
61
+ return apiService.patchJson({
62
+ target: `/${String(prop)}`,
63
+ config: {
64
+ bypassTransform: userConfig?.bypassTransform,
65
+ transformText: userConfig?.transformText,
66
+ config: userConfig?.config,
67
+ fetch: {
68
+ credentials: "include",
69
+ headers,
70
+ body: userConfig?.body
71
+ }
72
+ }
73
+ });
74
+ } else {
75
+ return apiService[method]({
76
+ target: { url: `/${String(prop)}`, searchParams: userConfig?.body },
77
+ config: {
78
+ bypassTransform: userConfig?.bypassTransform,
79
+ transformText: userConfig?.transformText,
80
+ config: userConfig?.config,
81
+ fetch: {
82
+ credentials: "include",
83
+ headers
84
+ }
85
+ }
86
+ });
68
87
  }
69
- });
70
- } else {
71
- return apiService[method]({
72
- // return apiService.head({
73
- target: { url: `/${String(prop)}`, searchParams: userConfig?.body },
74
- config: {
75
- bypassTransform: userConfig?.bypassTransform,
76
- transformText: userConfig?.transformText,
77
- fetch: {
78
- credentials: "include",
79
- headers
80
- }
81
- }
82
- });
83
- }
84
- };
85
- args.push(p);
86
- return Reflect.apply(f, target, args);
87
- };
88
- }
89
- return Reflect.get(target, prop, receiver);
88
+ };
89
+ args.push(p);
90
+ return Reflect.apply(f, target, args);
91
+ };
92
+ }
93
+ return Reflect.get(target, prop, receiver);
94
+ },
95
+ apply(target, thisArg, argArray) {
96
+ console.log("SymbolIntentApiServiceProxy apply");
97
+ return Reflect.apply(target, thisArg, argArray);
98
+ }
99
+ };
100
+ }
101
+ get(target, prop, receiver) {
102
+ return SymbolIntentApiServiceProxy_1.createHandler(this.apiService).get(target, prop, receiver);
90
103
  }
91
104
  apply(target, thisArg, argArray) {
92
- console.log("SymbolIntentApiServiceProxy apply");
93
- return Reflect.apply(target, thisArg, argArray);
105
+ return SymbolIntentApiServiceProxy_1.createHandler(this.apiService).apply(target, thisArg, argArray);
94
106
  }
95
107
  };
96
- SymbolIntentApiServiceProxy = __decorate([
108
+ SymbolIntentApiServiceProxy = SymbolIntentApiServiceProxy_1 = __decorate([
97
109
  Sim,
98
110
  __metadata("design:paramtypes", [typeof (_a = typeof ApiService !== "undefined" && ApiService) === "function" ? _a : Object])
99
111
  ], SymbolIntentApiServiceProxy);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/proxy/SymbolIntentApiServiceProxy.ts"],
4
- "sourcesContent": ["import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';\nimport { makeIntentHeaderBySymbol } from '../codes/HttpHeaders';\nimport { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';\nimport { ApiService } from '@dooboostore/simple-boot/fetch/ApiService';\n\n\nexport type Config<T = any> = { method?:'get' | 'post' | 'petch' | 'delete' | 'head', multipartFormData?: boolean, bypassTransform?: boolean; transformText?: boolean, headers?: HeadersInit, body?: T };\nconst _ = ApiService;\n@Sim\nexport class SymbolIntentApiServiceProxy<T extends object> implements ProxyHandler<T> {\n\n\n constructor(private apiService: ApiService) {\n console.log('-------apiService', apiService);\n }\n\n get(target: T, prop: string | symbol, receiver: any): any {\n const simConfig = getSim(target)\n const apiService = this.apiService;\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function' && simConfig?.symbol) {\n return function (...args: any[]) {\n const f = value as Function;\n const p = (userConfig: Config) => {\n\n const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbol(simConfig.symbol as Symbol)};\n const method = userConfig?.method ?? 'post';\n if(method === 'post' && userConfig?.multipartFormData) {\n return apiService.post({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: ConvertUtils.toFormData(userConfig?.body)\n }\n }\n });\n } else if (method === 'post') {\n return apiService.postJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n }else if (method === 'petch') {\n return apiService.patchJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else {\n return apiService[method]({\n // return apiService.head({\n target: {url: `/${String(prop)}`, searchParams: userConfig?.body},\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n }\n }\n });\n }\n\n\n\n\n // if (userConfig?.multipartFormData) {\n // return apiService.post({\n // target: `/${String(prop)}`,\n // config: {\n // bypassTransform: userConfig?.bypassTransform,\n // transformText: userConfig?.transformText,\n // fetch: {\n // credentials: 'include',\n // headers: headers,\n // body: ConvertUtils.toFormData(userConfig?.body)\n // }\n // }\n // });\n // } else {\n // return apiService.postJson({\n // target: `/${String(prop)}`,\n // config: {\n // bypassTransform: userConfig?.bypassTransform,\n // transformText: userConfig?.transformText,\n // fetch: {\n // credentials: 'include',\n // headers: headers,\n // body: userConfig?.body\n // }\n // }\n // });\n // }\n\n };\n args.push(p);\n return Reflect.apply(f, target, args);\n // return f.apply(target, args);\n }\n }\n return Reflect.get(target, prop, receiver);\n }\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n console.log('SymbolIntentApiServiceProxy apply')\n // @ts-ignore\n return Reflect.apply(target, thisArg, argArray);\n }\n\n\n\n\n}"],
5
- "mappings": ";;;;;;;;;;AAAA,SAAS,QAAQ,WAAW;AAC5B,SAAS,gCAAgC;AACzC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAI3B,MAAM,IAAI;AAEH,IAAM,8BAAN,MAAMA,6BAA2B;EAGtC,YAAoB,YAAsB;AAAtB,SAAA,aAAA;AAClB,YAAQ,IAAI,qBAAqB,UAAU;EAC7C;EAEA,IAAI,QAAW,MAAuB,UAAa;AACjD,UAAM,YAAY,OAAO,MAAM;AAC/B,UAAM,aAAa,KAAK;AACxB,UAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,QAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,aAAO,YAAa,MAAW;AAC7B,cAAM,IAAI;AACV,cAAM,IAAI,CAAC,eAAsB;AAE/B,gBAAM,UAAU,EAAC,GAAI,YAAY,WAAW,CAAA,GAAK,GAAG,yBAAyB,UAAU,MAAgB,EAAC;AACxG,gBAAM,SAAS,YAAY,UAAU;AACrC,cAAG,WAAW,UAAU,YAAY,mBAAmB;AACrD,mBAAO,WAAW,KAAK;cACrB,QAAQ,IAAI,OAAO,IAAI,CAAC;cACxB,QAAQ;gBACN,iBAAiB,YAAY;gBAC7B,eAAe,YAAY;gBAC3B,OAAO;kBACL,aAAa;kBACb;kBACA,MAAM,aAAa,WAAW,YAAY,IAAI;;;aAGnD;UACH,WAAW,WAAW,QAAQ;AAC5B,mBAAO,WAAW,SAAS;cACzB,QAAQ,IAAI,OAAO,IAAI,CAAC;cACxB,QAAQ;gBACN,iBAAiB,YAAY;gBAC7B,eAAe,YAAY;gBAC3B,OAAO;kBACL,aAAa;kBACb;kBACA,MAAM,YAAY;;;aAGvB;UACH,WAAU,WAAW,SAAS;AAC5B,mBAAO,WAAW,UAAU;cAC1B,QAAQ,IAAI,OAAO,IAAI,CAAC;cACxB,QAAQ;gBACN,iBAAiB,YAAY;gBAC7B,eAAe,YAAY;gBAC3B,OAAO;kBACL,aAAa;kBACb;kBACA,MAAM,YAAY;;;aAGvB;UACH,OAAO;AACL,mBAAO,WAAW,MAAM,EAAE;;cAExB,QAAQ,EAAC,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,YAAY,KAAI;cAChE,QAAQ;gBACN,iBAAiB,YAAY;gBAC7B,eAAe,YAAY;gBAC3B,OAAO;kBACL,aAAa;kBACb;;;aAGL;UACH;QAiCF;AACA,aAAK,KAAK,CAAC;AACX,eAAO,QAAQ,MAAM,GAAG,QAAQ,IAAI;MAEtC;IACF;AACA,WAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;EAC3C;EAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,YAAQ,IAAI,mCAAmC;AAE/C,WAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ;EAChD;;AApHW,8BAA2B,WAAA;EADvC;uDAIiC,eAAU,eAAV,gBAAU,aAAA,KAAA,MAAA,CAAA;GAH/B,2BAA2B;",
4
+ "sourcesContent": ["import {getSim, Sim} from '@dooboostore/simple-boot/decorators/SimDecorator';\nimport {makeIntentHeaderBySymbol} from '../codes/HttpHeaders';\nimport {ConvertUtils} from '@dooboostore/core/convert/ConvertUtils';\nimport {ApiService} from '@dooboostore/simple-boot/fetch/ApiService';\n\n\nexport type Config<T = any> = {\n method?: 'get' | 'post' | 'petch' | 'delete' | 'head',\n multipartFormData?: boolean,\n bypassTransform?: boolean;\n transformText?: boolean,\n headers?: HeadersInit,\n body?: T,\n config?: ApiService.ApiServiceConfig\n};\nconst _ = ApiService;\n\n@Sim\nexport class SymbolIntentApiServiceProxy<T extends object> implements ProxyHandler<T> {\n\n constructor(private apiService: ApiService) {\n // console.log('-------apiService', apiService);\n }\n\n static createHandler<T extends object>(apiService: ApiService): ProxyHandler<T> {\n return {\n get(target: T, prop: string | symbol, receiver: any): any {\n const simConfig = getSim(target)\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function' && simConfig?.symbol) {\n return function (...args: any[]) {\n const f = value as Function;\n const p = (userConfig: Config) => {\n const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbol(simConfig.symbol as Symbol)};\n const method = userConfig?.method ?? 'post';\n if (method === 'post' && userConfig?.multipartFormData) {\n return apiService.post({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: ConvertUtils.toFormData(userConfig?.body)\n }\n }\n });\n } else if (method === 'post') {\n return apiService.postJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else if (method === 'petch') {\n return apiService.patchJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else {\n return apiService[method]({\n target: {url: `/${String(prop)}`, searchParams: userConfig?.body},\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n }\n }\n });\n }\n };\n args.push(p);\n return Reflect.apply(f, target, args);\n }\n }\n return Reflect.get(target, prop, receiver);\n },\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n console.log('SymbolIntentApiServiceProxy apply')\n // @ts-ignore\n return Reflect.apply(target, thisArg, argArray);\n }\n };\n }\n\n get(target: T, prop: string | symbol, receiver: any): any {\n return SymbolIntentApiServiceProxy.createHandler<T>(this.apiService).get!(target, prop, receiver);\n }\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n return SymbolIntentApiServiceProxy.createHandler<T>(this.apiService).apply!(target, thisArg, argArray);\n }\n}"],
5
+ "mappings": ";;;;;;;;;;;AAAA,SAAQ,QAAQ,WAAU;AAC1B,SAAQ,gCAA+B;AACvC,SAAQ,oBAAmB;AAC3B,SAAQ,kBAAiB;AAYzB,MAAM,IAAI;AAGH,IAAM,8BAA2B,gCAAjC,MAAMA,6BAA2B;EAEtC,YAAoB,YAAsB;AAAtB,SAAA,aAAA;EAEpB;EAEA,OAAO,cAAgC,YAAsB;AAC3D,WAAO;MACL,IAAI,QAAW,MAAuB,UAAa;AACjD,cAAM,YAAY,OAAO,MAAM;AAC/B,cAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,YAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,iBAAO,YAAa,MAAW;AAC7B,kBAAM,IAAI;AACV,kBAAM,IAAI,CAAC,eAAsB;AAC/B,oBAAM,UAAU,EAAC,GAAI,YAAY,WAAW,CAAA,GAAK,GAAG,yBAAyB,UAAU,MAAgB,EAAC;AACxG,oBAAM,SAAS,YAAY,UAAU;AACrC,kBAAI,WAAW,UAAU,YAAY,mBAAmB;AACtD,uBAAO,WAAW,KAAK;kBACrB,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,iBAAiB,YAAY;oBAC7B,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,aAAa,WAAW,YAAY,IAAI;;;iBAGnD;cACH,WAAW,WAAW,QAAQ;AAC5B,uBAAO,WAAW,SAAS;kBACzB,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,iBAAiB,YAAY;oBAC7B,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,YAAY;;;iBAGvB;cACH,WAAW,WAAW,SAAS;AAC7B,uBAAO,WAAW,UAAU;kBAC1B,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,iBAAiB,YAAY;oBAC7B,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,YAAY;;;iBAGvB;cACH,OAAO;AACL,uBAAO,WAAW,MAAM,EAAE;kBACxB,QAAQ,EAAC,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,YAAY,KAAI;kBAChE,QAAQ;oBACN,iBAAiB,YAAY;oBAC7B,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;;;iBAGL;cACH;YACF;AACA,iBAAK,KAAK,CAAC;AACX,mBAAO,QAAQ,MAAM,GAAG,QAAQ,IAAI;UACtC;QACF;AACA,eAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;MAC3C;MAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,gBAAQ,IAAI,mCAAmC;AAE/C,eAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ;MAChD;;EAEJ;EAEA,IAAI,QAAW,MAAuB,UAAa;AACjD,WAAO,8BAA4B,cAAiB,KAAK,UAAU,EAAE,IAAK,QAAQ,MAAM,QAAQ;EAClG;EAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,WAAO,8BAA4B,cAAiB,KAAK,UAAU,EAAE,MAAO,QAAQ,SAAS,QAAQ;EACvG;;AA/FW,8BAA2B,gCAAA,WAAA;EADvC;uDAGiC,eAAU,eAAV,gBAAU,aAAA,KAAA,MAAA,CAAA;GAF/B,2BAA2B;",
6
6
  "names": ["SymbolIntentApiServiceProxy"]
7
7
  }
@@ -1,83 +1,8 @@
1
- import { getSim } from "@dooboostore/simple-boot/decorators/SimDecorator";
2
- import { makeIntentHeaderBySymbol } from "../codes/HttpHeaders.js";
3
- import { ConvertUtils } from "@dooboostore/core/convert/ConvertUtils";
1
+ import { SymbolIntentApiServiceProxy } from "./SymbolIntentApiServiceProxy.js";
4
2
  class SymbolIntentApiServiceProxyBase {
5
3
  // 생성자는 프록시될 대상 객체(target)와 의존성을 주입받습니다.
6
4
  constructor(apiService) {
7
- const handler = {
8
- get(target, prop, receiver) {
9
- const simConfig = getSim(target);
10
- const value = Reflect.get(target, prop, receiver);
11
- if (typeof value === "function" && simConfig?.symbol) {
12
- return function(...args) {
13
- const f = value;
14
- const p = (userConfig) => {
15
- const headers = { ...userConfig?.headers ?? {}, ...makeIntentHeaderBySymbol(simConfig.symbol) };
16
- const method = userConfig?.method ?? "post";
17
- if (method === "post" && userConfig?.multipartFormData) {
18
- return apiService.post({
19
- target: `/${String(prop)}`,
20
- config: {
21
- bypassTransform: userConfig?.bypassTransform,
22
- transformText: userConfig?.transformText,
23
- fetch: {
24
- credentials: "include",
25
- headers,
26
- body: ConvertUtils.toFormData(userConfig?.body)
27
- }
28
- }
29
- });
30
- } else if (method === "post") {
31
- return apiService.postJson({
32
- target: `/${String(prop)}`,
33
- config: {
34
- bypassTransform: userConfig?.bypassTransform,
35
- transformText: userConfig?.transformText,
36
- fetch: {
37
- credentials: "include",
38
- headers,
39
- body: userConfig?.body
40
- }
41
- }
42
- });
43
- } else if (method === "petch") {
44
- return apiService.patchJson({
45
- target: `/${String(prop)}`,
46
- config: {
47
- bypassTransform: userConfig?.bypassTransform,
48
- transformText: userConfig?.transformText,
49
- fetch: {
50
- credentials: "include",
51
- headers,
52
- body: userConfig?.body
53
- }
54
- }
55
- });
56
- } else {
57
- return apiService[method]({
58
- target: { url: `/${String(prop)}`, searchParams: userConfig?.body },
59
- config: {
60
- bypassTransform: userConfig?.bypassTransform,
61
- transformText: userConfig?.transformText,
62
- fetch: {
63
- credentials: "include",
64
- headers
65
- }
66
- }
67
- });
68
- }
69
- };
70
- args.push(p);
71
- return Reflect.apply(f, target, args);
72
- };
73
- }
74
- return Reflect.get(target, prop, receiver);
75
- },
76
- apply(target, thisArg, argArray) {
77
- console.log("SymbolIntentApiServiceProxyBase apply (from handler)");
78
- return Reflect.apply(target, thisArg, argArray);
79
- }
80
- };
5
+ const handler = SymbolIntentApiServiceProxy.createHandler(apiService);
81
6
  return new Proxy(this, handler);
82
7
  }
83
8
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/proxy/SymbolIntentApiServiceProxyBase.ts"],
4
- "sourcesContent": ["import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';\nimport { makeIntentHeaderBySymbol } from '../codes/HttpHeaders';\nimport { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';\nimport { ApiService } from '@dooboostore/simple-boot/fetch/ApiService';\n\n\nexport type SymbolIntentApiServiceProxyBaseConfig<T = any> = { method?:'get' | 'post' | 'petch' | 'delete' | 'head', multipartFormData?: boolean, bypassTransform?: boolean; transformText?: boolean, headers?: HeadersInit, body?: T };\n\nexport class SymbolIntentApiServiceProxyBase<T extends object = any> {\n // \uC0DD\uC131\uC790\uB294 \uD504\uB85D\uC2DC\uB420 \uB300\uC0C1 \uAC1D\uCCB4(target)\uC640 \uC758\uC874\uC131\uC744 \uC8FC\uC785\uBC1B\uC2B5\uB2C8\uB2E4.\n constructor(\n apiService: ApiService,\n ) {\n // ProxyHandler \uAC1D\uCCB4\uB97C \uC815\uC758\uD569\uB2C8\uB2E4.\n const handler: ProxyHandler<T> = {\n get(target: T, prop: string | symbol, receiver: any): any {\n const simConfig = getSim(target)\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function' && simConfig?.symbol) {\n return function (...args: any[]) {\n const f = value as Function;\n const p = (userConfig: SymbolIntentApiServiceProxyBaseConfig) => {\n const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbol(simConfig.symbol as Symbol)};\n const method = userConfig?.method ?? 'post';\n if(method === 'post' && userConfig?.multipartFormData) {\n return apiService.post({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: ConvertUtils.toFormData(userConfig?.body)\n }\n }\n });\n } else if (method === 'post') {\n return apiService.postJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n }else if (method === 'petch') {\n return apiService.patchJson({\n target: `/${String(prop)}`,\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else {\n return apiService[method]({\n target: {url: `/${String(prop)}`, searchParams: userConfig?.body},\n config: {\n bypassTransform: userConfig?.bypassTransform,\n transformText: userConfig?.transformText,\n fetch: {\n credentials: 'include',\n headers: headers,\n }\n }\n });\n }\n };\n args.push(p);\n return Reflect.apply(f, target, args);\n }\n }\n return Reflect.get(target, prop, receiver);\n },\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n console.log('SymbolIntentApiServiceProxyBase apply (from handler)');\n // @ts-ignore\n return Reflect.apply(target, thisArg, argArray);\n }\n };\n\n // \uC0DD\uC131\uC790\uC5D0\uC11C Proxy \uAC1D\uCCB4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n\n // @ts-ignore\n return new Proxy(this, handler);\n }\n}"],
5
- "mappings": "AAAA,SAAS,cAAmB;AAC5B,SAAS,gCAAgC;AACzC,SAAS,oBAAoB;AAMtB,MAAM,gCAAwD;AAAA;AAAA,EAEnE,YACE,YACA;AAEA,UAAM,UAA2B;AAAA,MAC/B,IAAI,QAAW,MAAuB,UAAoB;AACxD,cAAM,YAAY,OAAO,MAAM;AAC/B,cAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,YAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,iBAAO,YAAa,MAAa;AAC/B,kBAAM,IAAI;AACV,kBAAM,IAAI,CAAC,eAAsD;AAC/D,oBAAM,UAAU,EAAC,GAAI,YAAY,WAAW,CAAC,GAAI,GAAG,yBAAyB,UAAU,MAAgB,EAAC;AACxG,oBAAM,SAAS,YAAY,UAAU;AACrC,kBAAG,WAAW,UAAU,YAAY,mBAAmB;AACrD,uBAAO,WAAW,KAAK;AAAA,kBACrB,QAAQ,IAAI,OAAO,IAAI,CAAC;AAAA,kBACxB,QAAQ;AAAA,oBACN,iBAAiB,YAAY;AAAA,oBAC7B,eAAe,YAAY;AAAA,oBAC3B,OAAO;AAAA,sBACL,aAAa;AAAA,sBACb;AAAA,sBACA,MAAM,aAAa,WAAW,YAAY,IAAI;AAAA,oBAChD;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAW,WAAW,QAAQ;AAC5B,uBAAO,WAAW,SAAS;AAAA,kBACzB,QAAQ,IAAI,OAAO,IAAI,CAAC;AAAA,kBACxB,QAAQ;AAAA,oBACN,iBAAiB,YAAY;AAAA,oBAC7B,eAAe,YAAY;AAAA,oBAC3B,OAAO;AAAA,sBACL,aAAa;AAAA,sBACb;AAAA,sBACA,MAAM,YAAY;AAAA,oBACpB;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,WAAU,WAAW,SAAS;AAC5B,uBAAO,WAAW,UAAU;AAAA,kBAC1B,QAAQ,IAAI,OAAO,IAAI,CAAC;AAAA,kBACxB,QAAQ;AAAA,oBACN,iBAAiB,YAAY;AAAA,oBAC7B,eAAe,YAAY;AAAA,oBAC3B,OAAO;AAAA,sBACL,aAAa;AAAA,sBACb;AAAA,sBACA,MAAM,YAAY;AAAA,oBACpB;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH,OAAO;AACL,uBAAO,WAAW,MAAM,EAAE;AAAA,kBACxB,QAAQ,EAAC,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,YAAY,KAAI;AAAA,kBAChE,QAAQ;AAAA,oBACN,iBAAiB,YAAY;AAAA,oBAC7B,eAAe,YAAY;AAAA,oBAC3B,OAAO;AAAA,sBACL,aAAa;AAAA,sBACb;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,YACF;AACA,iBAAK,KAAK,CAAC;AACX,mBAAO,QAAQ,MAAM,GAAG,QAAQ,IAAI;AAAA,UACtC;AAAA,QACF;AACA,eAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAAA,MAC3C;AAAA,MAEA,MAAM,QAAW,SAAc,UAAsB;AACnD,gBAAQ,IAAI,sDAAsD;AAElE,eAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ;AAAA,MAChD;AAAA,IACF;AAKA,WAAO,IAAI,MAAM,MAAM,OAAO;AAAA,EAChC;AACF;",
4
+ "sourcesContent": ["import {getSim, Sim} from '@dooboostore/simple-boot/decorators/SimDecorator';\nimport {makeIntentHeaderBySymbol} from '../codes/HttpHeaders';\nimport {ConvertUtils} from '@dooboostore/core/convert/ConvertUtils';\nimport {ApiService} from '@dooboostore/simple-boot/fetch/ApiService';\nimport {SymbolIntentApiServiceProxy} from './SymbolIntentApiServiceProxy';\n\nexport class SymbolIntentApiServiceProxyBase<T extends object = any> {\n // \uC0DD\uC131\uC790\uB294 \uD504\uB85D\uC2DC\uB420 \uB300\uC0C1 \uAC1D\uCCB4(target)\uC640 \uC758\uC874\uC131\uC744 \uC8FC\uC785\uBC1B\uC2B5\uB2C8\uB2E4.\n constructor(\n apiService: ApiService,\n ) {\n // SymbolIntentApiServiceProxy\uC758 static handler\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n const handler = SymbolIntentApiServiceProxy.createHandler<T>(apiService);\n\n // \uC0DD\uC131\uC790\uC5D0\uC11C Proxy \uAC1D\uCCB4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n // @ts-ignore\n return new Proxy(this, handler);\n }\n}"],
5
+ "mappings": "AAIA,SAAQ,mCAAkC;AAEnC,MAAM,gCAAwD;AAAA;AAAA,EAEnE,YACE,YACA;AAEA,UAAM,UAAU,4BAA4B,cAAiB,UAAU;AAIvE,WAAO,IAAI,MAAM,MAAM,OAAO;AAAA,EAChC;AACF;",
6
6
  "names": []
7
7
  }