@pronto-tools-and-more/api 12.35.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/package.json +22 -0
  2. package/src/main.js +3 -0
  3. package/src/parts/Callback/Callback.js +1 -0
  4. package/src/parts/Command/Command.js +9 -0
  5. package/src/parts/CommandMap/CommandMap.js +5 -0
  6. package/src/parts/CommandState/CommandState.js +17 -0
  7. package/src/parts/ErrorCodes/ErrorCodes.js +2 -0
  8. package/src/parts/GetPostIds/GetPostIds.js +41 -0
  9. package/src/parts/GraphQlQueryAppSettings/GraphQlQueryAppSettings.js +42 -0
  10. package/src/parts/GraphQlQueryAuthors/GraphQlQueryAuthors.js +66 -0
  11. package/src/parts/GraphQlQueryCategories/GraphQlQueryCategories.js +66 -0
  12. package/src/parts/GraphQlQueryCollection/GraphQlQueryCollection.js +227 -0
  13. package/src/parts/GraphQlQueryCollections/GraphQlQueryCollections.js +227 -0
  14. package/src/parts/GraphQlQueryContent/GraphQlQueryContent.js +198 -0
  15. package/src/parts/GraphQlQueryDossier/GraphQlQueryDossier.js +221 -0
  16. package/src/parts/GraphQlQueryDossiers/GraphQlQueryDossiers.js +201 -0
  17. package/src/parts/GraphQlQueryIssues/GraphQlQueryIssues.js +202 -0
  18. package/src/parts/GraphQlQueryMenus/GraphQlQueryMenus.js +77 -0
  19. package/src/parts/GraphQlQueryPathSegment/GraphQlQueryPathSegment.js +57 -0
  20. package/src/parts/GraphQlQueryPathSegments/GraphQlQueryPathSegments.js +59 -0
  21. package/src/parts/GraphQlQueryTaxonomies/GraphQlQueryTaxonomies.js +66 -0
  22. package/src/parts/HandleApi/HandleApi.js +52 -0
  23. package/src/parts/HandleApiAppSettings/HandleApiAppSettings.js +41 -0
  24. package/src/parts/HandleApiArticle/HandleApiArticle.js +26 -0
  25. package/src/parts/HandleApiArticleByCategoryId/HandleApiArticleByCategoryId.js +97 -0
  26. package/src/parts/HandleApiAuthors/HandleApiAuthors.js +38 -0
  27. package/src/parts/HandleApiCategories/HandleApiCategories.js +38 -0
  28. package/src/parts/HandleApiCollection/HandleApiCollection.js +62 -0
  29. package/src/parts/HandleApiCollections/HandleApiCollections.js +52 -0
  30. package/src/parts/HandleApiDossier/HandleApiDossier.js +109 -0
  31. package/src/parts/HandleApiDossiers/HandleApiDossiers.js +39 -0
  32. package/src/parts/HandleApiIndex/HandleApiIndex.js +30 -0
  33. package/src/parts/HandleApiIssues/HandleApiIssues.js +39 -0
  34. package/src/parts/HandleApiMenus/HandleApiMenus.js +40 -0
  35. package/src/parts/HandleApiPostByName/HandleApiPostByName.js +63 -0
  36. package/src/parts/HandleIpc/HandleIpc.js +10 -0
  37. package/src/parts/HandleMessage/HandleMessage.js +27 -0
  38. package/src/parts/IpcChild/IpcChild.js +15 -0
  39. package/src/parts/IpcChildModule/IpcChildModule.js +25 -0
  40. package/src/parts/IpcChildType/IpcChildType.js +20 -0
  41. package/src/parts/JsonRpc/JsonRpc.js +1 -0
  42. package/src/parts/Listen/Listen.js +8 -0
  43. package/src/parts/Main/Main.js +8 -0
@@ -0,0 +1,41 @@
1
+ import * as GraphQlQueryAppSettings from "../GraphQlQueryAppSettings/GraphQlQueryAppSettings.js";
2
+
3
+ export const handleApiAppSettings = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryAppSettings.bottom,
6
+ filter: {},
7
+ appInfo: {
8
+ ...GraphQlQueryAppSettings.bottom.appInfo,
9
+ appId,
10
+ },
11
+ };
12
+ const response = await fetch(apiUrl, {
13
+ method: "POST",
14
+ headers: {
15
+ Accept: "application/json",
16
+ "Content-Type": "application/json",
17
+ },
18
+ body: JSON.stringify({
19
+ operationName: GraphQlQueryAppSettings.queryName,
20
+ query: GraphQlQueryAppSettings.top,
21
+ variables: realBottom,
22
+ }),
23
+ });
24
+ const result = await response.json();
25
+
26
+ // @ts-ignore
27
+ const realData = result.data.catalog.appSettingsConnection.edges
28
+ .map((edge) => edge.node)
29
+ .map((node) => {
30
+ const { __typename, ...rest } = node;
31
+ return rest;
32
+ });
33
+
34
+ return {
35
+ headers: {
36
+ "content-type": "application/json",
37
+ },
38
+ status: 200,
39
+ body: JSON.stringify(realData, null, 2),
40
+ };
41
+ };
@@ -0,0 +1,26 @@
1
+ import * as GetPostIds from "../GetPostIds/GetPostIds.js";
2
+ import * as HandleApiPostByName from "../HandleApiPostByName/HandleApiPostByName.js";
3
+ import * as HandleApiArticleByCategoryId from "../HandleApiArticleByCategoryId/HandleApiArticleByCategoryId.js";
4
+
5
+ export const handleApiArticle = async ({ appId, apiUrl, req }) => {
6
+ const articleSlug = req.url.slice("/articles/".length);
7
+ const url = new URL(req.url, "https://example.com");
8
+ const categoryId = url.searchParams.get("categoryId");
9
+ if (categoryId) {
10
+ return HandleApiArticleByCategoryId.handleApiArticleByCategoryId({
11
+ apiUrl,
12
+ appId,
13
+ categoryId,
14
+ });
15
+ }
16
+ const postIds = await GetPostIds.getPostIds({
17
+ appId,
18
+ apiUrl,
19
+ slug: articleSlug,
20
+ });
21
+ return HandleApiPostByName.handleApiPostByName({
22
+ apiUrl,
23
+ appId,
24
+ postIds,
25
+ });
26
+ };
@@ -0,0 +1,97 @@
1
+ import * as GraphQlQueryContent from "../GraphQlQueryContent/GraphQlQueryContent.js";
2
+
3
+ const getContent = async ({ appId, apiUrl, categoryId }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryContent.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryContent.bottom.appInfo,
8
+ appId,
9
+ },
10
+ filter: {
11
+ AND: [
12
+ {
13
+ contentType: {
14
+ value: "POST",
15
+ },
16
+ },
17
+ {
18
+ postType: {
19
+ value: "post",
20
+ },
21
+ },
22
+ {
23
+ taxonomies: {
24
+ content: {
25
+ value: {
26
+ AND: [
27
+ {
28
+ type: {
29
+ value: "category",
30
+ },
31
+ },
32
+ {
33
+ OR: [
34
+ {
35
+ id: {
36
+ value: categoryId,
37
+ },
38
+ },
39
+ ],
40
+ },
41
+ ],
42
+ },
43
+ },
44
+ },
45
+ },
46
+ {
47
+ id: {
48
+ value: "^()$",
49
+ operation: "REGEX",
50
+ negated: true,
51
+ },
52
+ },
53
+ ],
54
+ },
55
+ };
56
+ const response = await fetch(apiUrl, {
57
+ method: "POST",
58
+ headers: {
59
+ Accept: "application/json",
60
+ "Content-Type": "application/json",
61
+ },
62
+ body: JSON.stringify({
63
+ operationName: GraphQlQueryContent.queryName,
64
+ query: GraphQlQueryContent.top,
65
+ variables: realBottom,
66
+ }),
67
+ });
68
+ const result = await response.json();
69
+ // @ts-ignore
70
+ if (result && result.error) {
71
+ // @ts-ignore
72
+ throw new Error(`api error: ${result.error}`);
73
+ }
74
+ // @ts-ignore
75
+ const realData = result.data.catalog.contentsConnection.edges
76
+ .map((edge) => edge.content)
77
+ .map((match) => {
78
+ const { __typename, ...rest } = match;
79
+ return rest;
80
+ });
81
+ return realData;
82
+ };
83
+
84
+ export const handleApiArticleByCategoryId = async ({
85
+ appId,
86
+ apiUrl,
87
+ categoryId,
88
+ }) => {
89
+ const content = await getContent({ appId, apiUrl, categoryId });
90
+ return {
91
+ status: 200,
92
+ headers: {
93
+ "content-type": "application/json",
94
+ },
95
+ body: JSON.stringify(content, null, 2),
96
+ };
97
+ };
@@ -0,0 +1,38 @@
1
+ import * as GraphQlQueryAuthors from "../GraphQlQueryAuthors/GraphQlQueryAuthors.js";
2
+
3
+ export const handleAuthors = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryAuthors.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryAuthors.bottom.appInfo,
8
+ appId,
9
+ },
10
+ };
11
+ const response = await fetch(apiUrl, {
12
+ method: "POST",
13
+ headers: {
14
+ Accept: "application/json",
15
+ "Content-Type": "application/json",
16
+ },
17
+ body: JSON.stringify({
18
+ operationName: "CatalogContentsQuery",
19
+ query: GraphQlQueryAuthors.top,
20
+ variables: realBottom,
21
+ }),
22
+ });
23
+ const result = await response.json();
24
+ // @ts-ignore
25
+ const realData = result.data.catalog.taxonomiesConnection.edges
26
+ .map((edge) => edge.node)
27
+ .map((node) => {
28
+ const { __typename, ...rest } = node;
29
+ return rest;
30
+ });
31
+ return {
32
+ status: 200,
33
+ headers: {
34
+ "content-type": "application/json",
35
+ },
36
+ body: JSON.stringify(realData, null, 2),
37
+ };
38
+ };
@@ -0,0 +1,38 @@
1
+ import * as GraphQlQueryCategories from "../GraphQlQueryCategories/GraphQlQueryCategories.js";
2
+
3
+ export const handleCategories = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryCategories.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryCategories.bottom.appInfo,
8
+ appId,
9
+ },
10
+ };
11
+ const response = await fetch(apiUrl, {
12
+ method: "POST",
13
+ headers: {
14
+ Accept: "application/json",
15
+ "Content-Type": "application/json",
16
+ },
17
+ body: JSON.stringify({
18
+ operationName: "CatalogContentsQuery",
19
+ query: GraphQlQueryCategories.top,
20
+ variables: realBottom,
21
+ }),
22
+ });
23
+ const result = await response.json();
24
+ // @ts-ignore
25
+ const realData = result.data.catalog.taxonomiesConnection.edges
26
+ .map((edge) => edge.node)
27
+ .map((node) => {
28
+ const { __typename, ...rest } = node;
29
+ return rest;
30
+ });
31
+ return {
32
+ status: 200,
33
+ headers: {
34
+ "content-type": "application/json",
35
+ },
36
+ body: JSON.stringify(realData, null, 2),
37
+ };
38
+ };
@@ -0,0 +1,62 @@
1
+ import * as GraphQlQueryCollection from "../GraphQlQueryCollection/GraphQlQueryCollection.js";
2
+
3
+ const getCollections = async ({ appId, apiUrl, name }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryCollection.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryCollection.bottom.appInfo,
8
+ appId,
9
+ },
10
+ filter: {
11
+ name: {
12
+ value: name,
13
+ },
14
+ },
15
+ };
16
+ const response = await fetch(apiUrl, {
17
+ method: "POST",
18
+ headers: {
19
+ Accept: "application/json",
20
+ "Content-Type": "application/json",
21
+ },
22
+ body: JSON.stringify({
23
+ operationName: GraphQlQueryCollection.queryName,
24
+ query: GraphQlQueryCollection.top,
25
+ variables: realBottom,
26
+ }),
27
+ });
28
+ const result = await response.json();
29
+ // @ts-ignore
30
+ if (result && result.error) {
31
+ // @ts-ignore
32
+ throw new Error(`api error: ${result.error}`);
33
+ }
34
+ // @ts-ignore
35
+ if (result && result.errors) {
36
+ // @ts-ignore
37
+ throw new Error(`api error: ${result.errors[0].message}`);
38
+ }
39
+ console.log({ result });
40
+ // @ts-ignore
41
+ const realData = result.data.catalog.collectionsConnection.edges
42
+ .map((edge) => {
43
+ return edge.node;
44
+ })
45
+ .map((match) => {
46
+ const { __typename, ...rest } = match;
47
+ return rest;
48
+ });
49
+ return realData;
50
+ };
51
+
52
+ export const handleApiCollection = async ({ appId, apiUrl, req }) => {
53
+ const name = req.url.slice("/collections/".length);
54
+ const content = await getCollections({ appId, apiUrl, name });
55
+ return {
56
+ status: 200,
57
+ headers: {
58
+ "content-type": "application/json",
59
+ },
60
+ body: JSON.stringify(content, null, 2),
61
+ };
62
+ };
@@ -0,0 +1,52 @@
1
+ import * as GraphQlQueryCollections from "../GraphQlQueryCollections/GraphQlQueryCollections.js";
2
+
3
+ const getCollections = async ({ appId, apiUrl }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryCollections.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryCollections.bottom.appInfo,
8
+ appId,
9
+ },
10
+ filter: {},
11
+ };
12
+ const response = await fetch(apiUrl, {
13
+ method: "POST",
14
+ headers: {
15
+ Accept: "application/json",
16
+ "Content-Type": "application/json",
17
+ },
18
+ body: JSON.stringify({
19
+ operationName: GraphQlQueryCollections.queryName,
20
+ query: GraphQlQueryCollections.top,
21
+ variables: realBottom,
22
+ }),
23
+ });
24
+ const result = await response.json();
25
+ // @ts-ignore
26
+ if (result && result.error) {
27
+ // @ts-ignore
28
+ throw new Error(`api error: ${result.error}`);
29
+ }
30
+ // @ts-ignore
31
+ const realData = result.data.catalog.collectionsConnection.edges
32
+ .map((edge) => {
33
+ return edge.node;
34
+ })
35
+ .map((match) => {
36
+ const { __typename, ...rest } = match;
37
+ return rest;
38
+ });
39
+ return realData;
40
+ };
41
+
42
+ export const handleApiCollections = async ({ appId, apiUrl, req }) => {
43
+ const content = await getCollections({ appId, apiUrl });
44
+ console.log({ content });
45
+ return {
46
+ status: 200,
47
+ headers: {
48
+ "content-type": "application/json",
49
+ },
50
+ body: JSON.stringify(content, null, 2),
51
+ };
52
+ };
@@ -0,0 +1,109 @@
1
+ import * as GraphQlQueryPathSegment from "../GraphQlQueryPathSegment/GraphQlQueryPathSegment.js";
2
+ import * as GraphQlQueryDossier from "../GraphQlQueryDossier/GraphQlQueryDossier.js";
3
+
4
+ const getBundleId = async ({ appId, reqUrl }) => {
5
+ const url = `https://catalog.purplemanager.com/graphql`;
6
+ const part = reqUrl.slice("/dossiers".length + 1);
7
+ const realBottom = {
8
+ ...GraphQlQueryPathSegment.bottom1,
9
+ appInfo: {
10
+ ...GraphQlQueryPathSegment.bottom1.appInfo,
11
+ appId,
12
+ },
13
+ pathSegments: [part],
14
+ };
15
+ const response = await fetch(url, {
16
+ method: "POST",
17
+ headers: {
18
+ Accept: "application/json",
19
+ "Content-Type": "application/json",
20
+ },
21
+ body: JSON.stringify({
22
+ operationName: "LookupPathSegmentsQuery",
23
+ query: GraphQlQueryPathSegment.top1,
24
+ variables: realBottom,
25
+ }),
26
+ });
27
+ const result = await response.json();
28
+ // @ts-ignore
29
+ const items = result.data.catalog.lookupPathSegments.flatMap(
30
+ (item) => item.matches
31
+ );
32
+ if (items.length === 0) {
33
+ return "";
34
+ }
35
+ const id = items[0].id;
36
+ return id;
37
+ };
38
+
39
+ export const handleDossier = async ({ appId, apiUrl, req }) => {
40
+ const bundleId = await getBundleId({
41
+ appId,
42
+ reqUrl: req.url,
43
+ });
44
+ if (!bundleId) {
45
+ return {
46
+ status: 404,
47
+ headers: {},
48
+ body: "Not found",
49
+ };
50
+ }
51
+ const realBottom = {
52
+ ...GraphQlQueryDossier.bottom1,
53
+ appInfo: {
54
+ ...GraphQlQueryDossier.bottom1.appInfo,
55
+ appId,
56
+ },
57
+ filter: {
58
+ AND: [
59
+ {
60
+ postType: {
61
+ value: "post",
62
+ },
63
+ },
64
+ {
65
+ contentType: {
66
+ value: "POST",
67
+ },
68
+ },
69
+ {
70
+ AND: [
71
+ {
72
+ bundleId: {
73
+ value: bundleId,
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ ],
79
+ },
80
+ };
81
+ const response = await fetch(apiUrl, {
82
+ method: "POST",
83
+ headers: {
84
+ Accept: "application/json",
85
+ "Content-Type": "application/json",
86
+ },
87
+ body: JSON.stringify({
88
+ operationName: "CatalogContentsQuery",
89
+ query: GraphQlQueryDossier.top1,
90
+ variables: realBottom,
91
+ }),
92
+ });
93
+ const result = await response.json();
94
+ // @ts-ignore
95
+ const realData = result.data.catalog.contentsConnection.edges
96
+ .map((edge) => edge.content)
97
+ .map((node) => {
98
+ const { __typename, ...rest } = node;
99
+ return rest;
100
+ });
101
+
102
+ return {
103
+ status: 200,
104
+ headers: {
105
+ "content-type": "application/json",
106
+ },
107
+ body: JSON.stringify(realData, null, 2),
108
+ };
109
+ };
@@ -0,0 +1,39 @@
1
+ import * as GraphQlQueryDossiers from "../GraphQlQueryDossiers/GraphQlQueryDossiers.js";
2
+
3
+ export const handleDossiers = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryDossiers.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryDossiers.bottom.appInfo,
8
+ appId,
9
+ },
10
+ };
11
+ const response = await fetch(apiUrl, {
12
+ method: "POST",
13
+ headers: {
14
+ Accept: "application/json",
15
+ "Content-Type": "application/json",
16
+ },
17
+ body: JSON.stringify({
18
+ operationName: "CatalogContentsQuery",
19
+ query: GraphQlQueryDossiers.top,
20
+ variables: realBottom,
21
+ }),
22
+ });
23
+ const result = await response.json();
24
+ // @ts-ignore
25
+ const realData = result.data.catalog.contentsConnection.edges
26
+ .map((edge) => edge.content)
27
+ .map((node) => {
28
+ const { __typename, ...rest } = node;
29
+ return rest;
30
+ });
31
+
32
+ return {
33
+ status: 200,
34
+ headers: {
35
+ "content-type": "application/json",
36
+ },
37
+ body: JSON.stringify(realData, null, 2),
38
+ };
39
+ };
@@ -0,0 +1,30 @@
1
+ export const handleIndex = async (req, res, next) => {
2
+ const html = `<!doctype html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Api</title>
8
+ </head>
9
+ <body>
10
+ <ul>
11
+ <li><a href="/api/issues">Issues</a></li>
12
+ <li><a href="/api/dossiers">Dossiers</a></li>
13
+ <li><a href="/api/categories">Categories</a></li>
14
+ <li><a href="/api/articles">Articles</a></li>
15
+ <li><a href="/api/authors">Authors</a></li>
16
+ <li><a href="/api/collections">Collections</a></li>
17
+ <li><a href="/api/menus">Menus</a></li>
18
+ <li><a href="/api/appSettings">App Settings</a></li>
19
+ </ul>
20
+ </body>
21
+ </html>
22
+ `;
23
+ return {
24
+ body: html,
25
+ status: 200,
26
+ headers: {
27
+ "content-type": "text.html",
28
+ },
29
+ };
30
+ };
@@ -0,0 +1,39 @@
1
+ import * as GraphQlQueryIssues from "../GraphQlQueryIssues/GraphQlQueryIssues.js";
2
+
3
+ export const handleIssues = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryIssues.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryIssues.bottom.appInfo,
8
+ appId,
9
+ },
10
+ };
11
+ const response = await fetch(apiUrl, {
12
+ method: "POST",
13
+ headers: {
14
+ Accept: "application/json",
15
+ "Content-Type": "application/json",
16
+ },
17
+ body: JSON.stringify({
18
+ operationName: "CatalogContentsQuery",
19
+ query: GraphQlQueryIssues.top,
20
+ variables: realBottom,
21
+ }),
22
+ });
23
+ const result = await response.json();
24
+ // @ts-ignore
25
+ const realData = result.data.catalog.contentsConnection.edges
26
+ .map((edge) => edge.content)
27
+ .map((node) => {
28
+ const { __typename, ...rest } = node;
29
+ return rest;
30
+ });
31
+
32
+ return {
33
+ status: 200,
34
+ headers: {
35
+ "content-type": "application/json",
36
+ },
37
+ body: JSON.stringify(realData, null, 2),
38
+ };
39
+ };
@@ -0,0 +1,40 @@
1
+ import * as GraphQlQueryMenus from "../GraphQlQueryMenus/GraphQlQueryMenus.js";
2
+
3
+ export const handleMenus = async ({ appId, apiUrl, req }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryMenus.bottom,
6
+ filter: {},
7
+ appInfo: {
8
+ ...GraphQlQueryMenus.bottom.appInfo,
9
+ appId,
10
+ },
11
+ };
12
+ const response = await fetch(apiUrl, {
13
+ method: "POST",
14
+ headers: {
15
+ Accept: "application/json",
16
+ "Content-Type": "application/json",
17
+ },
18
+ body: JSON.stringify({
19
+ operationName: GraphQlQueryMenus.queryName,
20
+ query: GraphQlQueryMenus.top,
21
+ variables: realBottom,
22
+ }),
23
+ });
24
+ const result = await response.json();
25
+ // @ts-ignore
26
+ const realData = result.data.catalog.menusConnection.edges
27
+ .map((edge) => edge.content)
28
+ .map((node) => {
29
+ const { __typename, ...rest } = node;
30
+ return rest;
31
+ });
32
+
33
+ return {
34
+ headers: {
35
+ "content-type": "application/json",
36
+ },
37
+ status: 200,
38
+ body: JSON.stringify(realData, null, 2),
39
+ };
40
+ };
@@ -0,0 +1,63 @@
1
+ import * as GraphQlQueryContent from "../GraphQlQueryContent/GraphQlQueryContent.js";
2
+
3
+ const getContent = async ({ appId, apiUrl, postId }) => {
4
+ const realBottom = {
5
+ ...GraphQlQueryContent.bottom,
6
+ appInfo: {
7
+ ...GraphQlQueryContent.bottom.appInfo,
8
+ appId,
9
+ },
10
+ filter: {
11
+ id: {
12
+ value: postId,
13
+ },
14
+ },
15
+ };
16
+ const response = await fetch(apiUrl, {
17
+ method: "POST",
18
+ headers: {
19
+ Accept: "application/json",
20
+ "Content-Type": "application/json",
21
+ },
22
+ body: JSON.stringify({
23
+ operationName: GraphQlQueryContent.queryName,
24
+ query: GraphQlQueryContent.top,
25
+ variables: realBottom,
26
+ }),
27
+ });
28
+ const result = await response.json();
29
+ // @ts-ignore
30
+ if (result && result.error) {
31
+ // @ts-ignore
32
+ throw new Error(`api error: ${result.error}`);
33
+ }
34
+ // @ts-ignore
35
+ const realData = result.data.catalog.contentsConnection.edges
36
+ .map((edge) => edge.content)
37
+ .map((match) => {
38
+ const { __typename, ...rest } = match;
39
+ return rest;
40
+ });
41
+ return realData;
42
+ };
43
+
44
+ export const handleApiPostByName = async ({ postIds, appId, apiUrl }) => {
45
+ if (postIds.length === 0) {
46
+ return {
47
+ status: 404,
48
+ headers: {
49
+ "content-type": "application/json",
50
+ },
51
+ body: JSON.stringify("Not found", null, 2),
52
+ };
53
+ }
54
+ const postId = postIds[0];
55
+ const content = await getContent({ appId, apiUrl, postId });
56
+ return {
57
+ status: 200,
58
+ headers: {
59
+ "content-type": "application/json",
60
+ },
61
+ body: JSON.stringify(content, null, 2),
62
+ };
63
+ };
@@ -0,0 +1,10 @@
1
+ import * as HandleMessage from "../HandleMessage/HandleMessage.js";
2
+
3
+ export const handleIpc = (ipc) => {
4
+ if ("addEventListener" in ipc) {
5
+ ipc.addEventListener("message", HandleMessage.handleMessage);
6
+ } else if ("on" in ipc) {
7
+ // deprecated
8
+ ipc.on("message", HandleMessage.handleMessage);
9
+ }
10
+ };