@webiny/api-prerendering-service-so-ddb 0.0.0-mt-2 → 0.0.0-unstable.13771d80a8

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 (45) hide show
  1. package/definitions/queueJob.d.ts +2 -2
  2. package/definitions/queueJob.js +3 -12
  3. package/definitions/queueJob.js.map +1 -0
  4. package/definitions/render.d.ts +2 -2
  5. package/definitions/render.js +6 -21
  6. package/definitions/render.js.map +1 -0
  7. package/definitions/{tagUrlLink.d.ts → renderLegacy.d.ts} +2 -2
  8. package/definitions/renderLegacy.js +47 -0
  9. package/definitions/renderLegacy.js.map +1 -0
  10. package/definitions/settings.d.ts +8 -0
  11. package/definitions/settings.js +35 -0
  12. package/definitions/settings.js.map +1 -0
  13. package/definitions/table.d.ts +3 -2
  14. package/definitions/table.js +7 -4
  15. package/definitions/table.js.map +1 -0
  16. package/definitions/tagPathLink.d.ts +9 -0
  17. package/definitions/tagPathLink.js +41 -0
  18. package/definitions/tagPathLink.js.map +1 -0
  19. package/definitions/tagPathLinkLegacy.d.ts +9 -0
  20. package/definitions/tagPathLinkLegacy.js +44 -0
  21. package/definitions/tagPathLinkLegacy.js.map +1 -0
  22. package/definitions/tenantEntity.d.ts +7 -0
  23. package/definitions/tenantEntity.js +37 -0
  24. package/definitions/tenantEntity.js.map +1 -0
  25. package/index.js +28 -32
  26. package/index.js.map +1 -0
  27. package/operations/queueJob.d.ts +6 -0
  28. package/operations/{queueJob/index.js → queueJob.js} +5 -28
  29. package/operations/queueJob.js.map +1 -0
  30. package/operations/render.d.ts +21 -0
  31. package/operations/{render/index.js → render.js} +117 -127
  32. package/operations/render.js.map +1 -0
  33. package/operations/settings.d.ts +6 -0
  34. package/operations/settings.js +62 -0
  35. package/operations/settings.js.map +1 -0
  36. package/operations/tenant.d.ts +6 -0
  37. package/operations/tenant.js +28 -0
  38. package/operations/tenant.js.map +1 -0
  39. package/package.json +17 -17
  40. package/types.d.ts +9 -2
  41. package/types.js +3 -2
  42. package/types.js.map +1 -0
  43. package/definitions/tagUrlLink.js +0 -53
  44. package/operations/queueJob/index.d.ts +0 -6
  45. package/operations/render/index.d.ts +0 -16
@@ -1,43 +1,28 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createQueueJobStorageOperations = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _batchWrite = require("@webiny/db-dynamodb/utils/batchWrite");
15
-
16
11
  var _query = require("@webiny/db-dynamodb/utils/query");
17
-
18
12
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
-
24
13
  const createQueueJobStorageOperations = params => {
25
14
  const {
26
15
  entity
27
16
  } = params;
28
-
29
17
  const createQueueJobPartitionKey = () => {
30
18
  return "PS#Q#JOB";
31
19
  };
32
-
33
20
  const createQueueJobSortKey = id => {
34
21
  return id;
35
22
  };
36
-
37
23
  const createQueueJobType = () => {
38
24
  return "ps.queue.job";
39
25
  };
40
-
41
26
  const createQueueJob = async params => {
42
27
  const {
43
28
  queueJob
@@ -46,9 +31,8 @@ const createQueueJobStorageOperations = params => {
46
31
  PK: createQueueJobPartitionKey(),
47
32
  SK: createQueueJobSortKey(queueJob.id)
48
33
  };
49
-
50
34
  try {
51
- await entity.put(_objectSpread(_objectSpread(_objectSpread({}, queueJob), keys), {}, {
35
+ await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, queueJob), keys), {}, {
52
36
  TYPE: createQueueJobType()
53
37
  }));
54
38
  return queueJob;
@@ -58,10 +42,8 @@ const createQueueJobStorageOperations = params => {
58
42
  queueJob
59
43
  });
60
44
  }
61
- }; // eslint-disable-next-line
62
-
63
-
64
- const listQueueJobs = async _ => {
45
+ };
46
+ const listQueueJobs = async () => {
65
47
  const queryAllParams = {
66
48
  entity,
67
49
  partitionKey: createQueueJobPartitionKey(),
@@ -69,7 +51,6 @@ const createQueueJobStorageOperations = params => {
69
51
  gte: " "
70
52
  }
71
53
  };
72
-
73
54
  try {
74
55
  const results = await (0, _query.queryAll)(queryAllParams);
75
56
  return (0, _cleanup.cleanupItems)(entity, results);
@@ -80,7 +61,6 @@ const createQueueJobStorageOperations = params => {
80
61
  });
81
62
  }
82
63
  };
83
-
84
64
  const deleteQueueJobs = async params => {
85
65
  const {
86
66
  queueJobs
@@ -91,7 +71,6 @@ const createQueueJobStorageOperations = params => {
91
71
  SK: createQueueJobSortKey(job.id)
92
72
  });
93
73
  });
94
-
95
74
  try {
96
75
  await (0, _batchWrite.batchWriteAll)({
97
76
  table: entity.table,
@@ -104,12 +83,10 @@ const createQueueJobStorageOperations = params => {
104
83
  });
105
84
  }
106
85
  };
107
-
108
86
  return {
109
87
  createQueueJob,
110
88
  deleteQueueJobs,
111
89
  listQueueJobs
112
90
  };
113
91
  };
114
-
115
92
  exports.createQueueJobStorageOperations = createQueueJobStorageOperations;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createQueueJobStorageOperations","params","entity","createQueueJobPartitionKey","createQueueJobSortKey","id","createQueueJobType","createQueueJob","queueJob","keys","PK","SK","put","TYPE","ex","WebinyError","message","code","listQueueJobs","queryAllParams","partitionKey","options","gte","results","queryAll","cleanupItems","deleteQueueJobs","queueJobs","items","map","job","deleteBatch","batchWriteAll","table"],"sources":["queueJob.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceQueueJobStorageOperations,\n PrerenderingServiceStorageOperationsCreateQueueJobParams,\n PrerenderingServiceStorageOperationsDeleteQueueJobsParams,\n QueueJob\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\n\nexport interface CreateQueueJobStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createQueueJobStorageOperations = (\n params: CreateQueueJobStorageOperationsParams\n): PrerenderingServiceQueueJobStorageOperations => {\n const { entity } = params;\n\n const createQueueJobPartitionKey = (): string => {\n return \"PS#Q#JOB\";\n };\n const createQueueJobSortKey = (id: string): string => {\n return id;\n };\n\n const createQueueJobType = () => {\n return \"ps.queue.job\";\n };\n\n const createQueueJob = async (\n params: PrerenderingServiceStorageOperationsCreateQueueJobParams\n ): Promise<QueueJob> => {\n const { queueJob } = params;\n const keys = {\n PK: createQueueJobPartitionKey(),\n SK: createQueueJobSortKey(queueJob.id)\n };\n\n try {\n await entity.put({\n ...queueJob,\n ...keys,\n TYPE: createQueueJobType()\n });\n return queueJob;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create render record.\",\n ex.code || \"CREATE_RENDER_ERROR\",\n {\n keys,\n queueJob\n }\n );\n }\n };\n\n const listQueueJobs = async () => {\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createQueueJobPartitionKey(),\n options: {\n gte: \" \"\n }\n };\n\n try {\n const results = await queryAll<QueueJob>(queryAllParams);\n\n return cleanupItems(entity, results);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list queue jobs records.\",\n ex.code || \"LIST_QUEUE_JOBS_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n };\n\n const deleteQueueJobs = async (\n params: PrerenderingServiceStorageOperationsDeleteQueueJobsParams\n ) => {\n const { queueJobs } = params;\n\n const items = queueJobs.map(job => {\n return entity.deleteBatch({\n PK: createQueueJobPartitionKey(),\n SK: createQueueJobSortKey(job.id)\n });\n });\n\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n return queueJobs;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete queue jobs records.\",\n ex.code || \"DELETE_QUEUE_JOBS_ERROR\",\n {\n queueJobs\n }\n );\n }\n };\n\n return {\n createQueueJob,\n deleteQueueJobs,\n listQueueJobs\n };\n};\n"],"mappings":";;;;;;;;AAAA;AAQA;AACA;AACA;AAMO,MAAMA,+BAA+B,GACxCC,MAA6C,IACE;EAC/C,MAAM;IAAEC;EAAO,CAAC,GAAGD,MAAM;EAEzB,MAAME,0BAA0B,GAAG,MAAc;IAC7C,OAAO,UAAU;EACrB,CAAC;EACD,MAAMC,qBAAqB,GAAIC,EAAU,IAAa;IAClD,OAAOA,EAAE;EACb,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAM;IAC7B,OAAO,cAAc;EACzB,CAAC;EAED,MAAMC,cAAc,GAAG,MACnBN,MAAgE,IAC5C;IACpB,MAAM;MAAEO;IAAS,CAAC,GAAGP,MAAM;IAC3B,MAAMQ,IAAI,GAAG;MACTC,EAAE,EAAEP,0BAA0B,EAAE;MAChCQ,EAAE,EAAEP,qBAAqB,CAACI,QAAQ,CAACH,EAAE;IACzC,CAAC;IAED,IAAI;MACA,MAAMH,MAAM,CAACU,GAAG,yFACTJ,QAAQ,GACRC,IAAI;QACPI,IAAI,EAAEP,kBAAkB;MAAE,GAC5B;MACF,OAAOE,QAAQ;IACnB,CAAC,CAAC,OAAOM,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,iCAAiC,EAC/CF,EAAE,CAACG,IAAI,IAAI,qBAAqB,EAChC;QACIR,IAAI;QACJD;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMU,aAAa,GAAG,YAAY;IAC9B,MAAMC,cAA8B,GAAG;MACnCjB,MAAM;MACNkB,YAAY,EAAEjB,0BAA0B,EAAE;MAC1CkB,OAAO,EAAE;QACLC,GAAG,EAAE;MACT;IACJ,CAAC;IAED,IAAI;MACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,eAAQ,EAAWL,cAAc,CAAC;MAExD,OAAO,IAAAM,qBAAY,EAACvB,MAAM,EAAEqB,OAAO,CAAC;IACxC,CAAC,CAAC,OAAOT,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,oCAAoC,EAClDF,EAAE,CAACG,IAAI,IAAI,uBAAuB,EAClC;QACIG,YAAY,EAAED,cAAc,CAACC,YAAY;QACzCC,OAAO,EAAEF,cAAc,CAACE;MAC5B,CAAC,CACJ;IACL;EACJ,CAAC;EAED,MAAMK,eAAe,GAAG,MACpBzB,MAAiE,IAChE;IACD,MAAM;MAAE0B;IAAU,CAAC,GAAG1B,MAAM;IAE5B,MAAM2B,KAAK,GAAGD,SAAS,CAACE,GAAG,CAACC,GAAG,IAAI;MAC/B,OAAO5B,MAAM,CAAC6B,WAAW,CAAC;QACtBrB,EAAE,EAAEP,0BAA0B,EAAE;QAChCQ,EAAE,EAAEP,qBAAqB,CAAC0B,GAAG,CAACzB,EAAE;MACpC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,IAAI;MACA,MAAM,IAAA2B,yBAAa,EAAC;QAChBC,KAAK,EAAE/B,MAAM,CAAC+B,KAAK;QACnBL;MACJ,CAAC,CAAC;MACF,OAAOD,SAAS;IACpB,CAAC,CAAC,OAAOb,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjBD,EAAE,CAACE,OAAO,IAAI,sCAAsC,EACpDF,EAAE,CAACG,IAAI,IAAI,yBAAyB,EACpC;QACIU;MACJ,CAAC,CACJ;IACL;EACJ,CAAC;EAED,OAAO;IACHpB,cAAc;IACdmB,eAAe;IACfR;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,21 @@
1
+ import { PrerenderingServiceRenderStorageOperations } from "@webiny/api-prerendering-service/types";
2
+ import { Entity } from "dynamodb-toolbox";
3
+ import { Tag } from "@webiny/api-prerendering-service/types";
4
+ export interface CreateRenderStorageOperationsParams {
5
+ entity: Entity<any>;
6
+ tagPathLinkEntity: Entity<any>;
7
+ }
8
+ export interface CreateTagPathLinkPartitionKeyParams {
9
+ tenant: string;
10
+ tag: Tag;
11
+ path: string;
12
+ }
13
+ export interface CreateTagPathLinkGSI1PartitionKeyParams {
14
+ tenant: string;
15
+ tag: Tag;
16
+ }
17
+ export interface CreateTagPathLinkSortKeyParams {
18
+ tag: Tag;
19
+ path?: string;
20
+ }
21
+ export declare const createRenderStorageOperations: (params: CreateRenderStorageOperationsParams) => PrerenderingServiceRenderStorageOperations;
@@ -1,103 +1,98 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createRenderStorageOperations = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _get = require("@webiny/db-dynamodb/utils/get");
15
-
16
11
  var _query = require("@webiny/db-dynamodb/utils/query");
17
-
18
12
  var _batchRead = require("@webiny/db-dynamodb/utils/batchRead");
19
-
20
13
  var _batchWrite = require("@webiny/db-dynamodb/utils/batchWrite");
21
-
22
14
  var _cleanup = require("@webiny/db-dynamodb/utils/cleanup");
23
-
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
-
28
15
  const createRenderStorageOperations = params => {
29
16
  const {
30
17
  entity,
31
- tagUrlLinkEntity
18
+ tagPathLinkEntity
32
19
  } = params;
33
-
34
- const createRenderPartitionKey = namespace => {
20
+ const createRenderPartitionKey = (tenant, path) => {
35
21
  /**
36
22
  * For backwards compatibility remove the T# if it exists.
37
23
  */
38
- if (namespace.startsWith("T#")) {
39
- namespace = namespace.replace(/^T#/, "");
24
+ if (tenant.startsWith("T#")) {
25
+ tenant = tenant.replace(/^T#/, "");
40
26
  }
41
-
42
- return `T#${namespace}#PS#RENDER`;
27
+ return `T#${tenant}#PS#RENDER#${path}`;
43
28
  };
44
-
45
- const createRenderSortKey = url => {
46
- return url;
29
+ const createRenderSortKey = () => {
30
+ return "A";
31
+ };
32
+ const createRenderGSI1PartitionKey = tenant => {
33
+ return `T#${tenant}#PS#RENDER`;
47
34
  };
48
-
49
35
  const createRenderType = () => {
50
36
  return "ps.render";
51
37
  };
52
-
53
- const createTagUrlLinkPartitionKey = params => {
38
+ const createTagPathLinkPartitionKey = params => {
54
39
  const {
55
- tag
40
+ tag,
41
+ path
56
42
  } = params;
57
43
  let {
58
- namespace
44
+ tenant
59
45
  } = params;
60
-
61
- if (namespace.startsWith("T#")) {
62
- namespace = namespace.replace(/^T#/, "");
46
+ if (tenant.startsWith("T#")) {
47
+ tenant = tenant.replace(/^T#/, "");
63
48
  }
64
-
65
- return `T#${namespace}#PS#TAG#${tag.key}`;
49
+ return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;
66
50
  };
67
-
68
- const createTagUrlLinkSortKey = params => {
51
+ const createTagPathLinkSortKey = params => {
69
52
  const {
70
53
  tag,
71
- url
54
+ path
72
55
  } = params;
73
56
  const values = [tag.value];
74
-
75
- if (url) {
76
- values.push(url);
57
+ if (path) {
58
+ values.push(path);
77
59
  }
78
-
79
60
  return values.join("#");
80
61
  };
81
-
82
- const createTagUrlLinkType = () => {
83
- return "ps.tagUrlLink";
62
+ const createTagPathLinkGSI1PartitionKey = params => {
63
+ let {
64
+ tenant
65
+ } = params;
66
+ if (tenant.startsWith("T#")) {
67
+ tenant = tenant.replace(/^T#/, "");
68
+ }
69
+ return `T#${tenant}#PS#TAG`;
70
+ };
71
+ const createTagPathLinkGSI1SortKey = params => {
72
+ const {
73
+ tag,
74
+ path
75
+ } = params;
76
+ return `${tag.key}#${tag.value}#${path}`;
77
+ };
78
+ const createTagPathLinkType = () => {
79
+ return "ps.tagPathLink";
84
80
  };
85
-
86
81
  const getRender = async params => {
87
82
  const {
88
83
  where
89
84
  } = params;
90
85
  const keys = {
91
- PK: createRenderPartitionKey(where.namespace),
92
- SK: createRenderSortKey(where.url)
86
+ PK: createRenderPartitionKey(where.tenant, where.path),
87
+ SK: createRenderSortKey()
93
88
  };
94
-
95
89
  try {
96
90
  const result = await (0, _get.get)({
97
91
  entity,
98
92
  keys
99
93
  });
100
- return (0, _cleanup.cleanupItem)(entity, result);
94
+ const dbItem = (0, _cleanup.cleanupItem)(entity, result);
95
+ return dbItem ? dbItem.data : null;
101
96
  } catch (ex) {
102
97
  throw new _error.default(ex.message || "Could not get render record by given key.", ex.code || "GET_RENDER_ERROR", {
103
98
  keys,
@@ -105,19 +100,20 @@ const createRenderStorageOperations = params => {
105
100
  });
106
101
  }
107
102
  };
108
-
109
103
  const createRender = async params => {
110
104
  const {
111
105
  render
112
106
  } = params;
113
107
  const keys = {
114
- PK: createRenderPartitionKey(render.namespace),
115
- SK: createRenderSortKey(render.url)
108
+ PK: createRenderPartitionKey(render.tenant, render.path),
109
+ SK: createRenderSortKey()
116
110
  };
117
-
118
111
  try {
119
- await entity.put(_objectSpread(_objectSpread(_objectSpread({}, render), keys), {}, {
120
- TYPE: createRenderType()
112
+ await entity.put((0, _objectSpread2.default)((0, _objectSpread2.default)({}, keys), {}, {
113
+ data: render,
114
+ TYPE: createRenderType(),
115
+ GSI1_PK: createRenderGSI1PartitionKey(render.tenant),
116
+ GSI1_SK: render.path
121
117
  }));
122
118
  return render;
123
119
  } catch (ex) {
@@ -127,16 +123,14 @@ const createRenderStorageOperations = params => {
127
123
  });
128
124
  }
129
125
  };
130
-
131
126
  const deleteRender = async params => {
132
127
  const {
133
128
  render
134
129
  } = params;
135
130
  const keys = {
136
- PK: createRenderPartitionKey(render.namespace),
137
- SK: createRenderSortKey(render.url)
131
+ PK: createRenderPartitionKey(render.tenant, render.path),
132
+ SK: createRenderSortKey()
138
133
  };
139
-
140
134
  try {
141
135
  await entity.delete(keys);
142
136
  } catch (ex) {
@@ -146,73 +140,66 @@ const createRenderStorageOperations = params => {
146
140
  });
147
141
  }
148
142
  };
149
-
150
143
  const listRendersByTag = async params => {
151
144
  const {
152
145
  where
153
146
  } = params;
154
147
  const {
155
- namespace,
148
+ tenant,
156
149
  tag
157
150
  } = where;
158
151
  /**
159
152
  * Possibly there is no tag.key so no need to go further
160
153
  */
161
-
162
154
  if (!tag || !tag.key) {
163
155
  return [];
164
156
  }
165
-
166
- const links = await listTagUrlLinks({
157
+ const links = await listTagPathLinks({
167
158
  where: {
168
- namespace,
159
+ tenant,
169
160
  tag
170
161
  }
171
162
  });
172
163
  const items = links.map(link => {
173
164
  return entity.getBatch({
174
- PK: createRenderPartitionKey(namespace),
175
- SK: createRenderSortKey(link.url)
165
+ PK: createRenderPartitionKey(tenant, link.path),
166
+ SK: createRenderSortKey()
176
167
  });
177
168
  });
178
-
179
169
  try {
180
170
  const results = await (0, _batchRead.batchReadAll)({
181
171
  table: entity.table,
182
172
  items
183
173
  });
184
- return (0, _cleanup.cleanupItems)(entity, results);
174
+ return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
185
175
  } catch (ex) {
186
176
  throw new _error.default(ex.message || "Could not list render records after links.", ex.code || "LIST_LINKS_RENDER_ERROR", {
187
177
  links
188
178
  });
189
179
  }
190
180
  };
191
-
192
181
  const listRenders = async params => {
193
182
  const {
194
183
  where
195
184
  } = params;
196
185
  const {
197
- namespace,
186
+ tenant,
198
187
  tag
199
188
  } = where;
200
-
201
189
  if (tag) {
202
190
  return listRendersByTag(params);
203
191
  }
204
-
205
192
  const queryAllParams = {
206
193
  entity,
207
- partitionKey: createRenderPartitionKey(namespace),
194
+ partitionKey: createRenderGSI1PartitionKey(tenant),
208
195
  options: {
196
+ index: "GSI1",
209
197
  gte: " "
210
198
  }
211
199
  };
212
-
213
200
  try {
214
201
  const results = await (0, _query.queryAll)(queryAllParams);
215
- return (0, _cleanup.cleanupItems)(entity, results);
202
+ return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
216
203
  } catch (ex) {
217
204
  throw new _error.default(ex.message || "Could not list render records.", ex.code || "LIST_RENDER_ERROR", {
218
205
  partitionKey: queryAllParams.partitionKey,
@@ -220,117 +207,120 @@ const createRenderStorageOperations = params => {
220
207
  });
221
208
  }
222
209
  };
223
-
224
- const createTagUrlLinks = async params => {
210
+ const createTagPathLinks = async params => {
225
211
  const {
226
- tagUrlLinks
212
+ tagPathLinks
227
213
  } = params;
228
- const items = tagUrlLinks.map(item => {
229
- return tagUrlLinkEntity.putBatch(_objectSpread(_objectSpread({}, item), {}, {
230
- TYPE: createTagUrlLinkType(),
231
- PK: createTagUrlLinkPartitionKey({
232
- namespace: item.namespace,
233
- tag: item
214
+ const items = tagPathLinks.map(item => {
215
+ return tagPathLinkEntity.putBatch({
216
+ data: item,
217
+ TYPE: createTagPathLinkType(),
218
+ PK: createTagPathLinkPartitionKey({
219
+ tenant: item.tenant,
220
+ tag: item,
221
+ path: item.path
234
222
  }),
235
- SK: createTagUrlLinkSortKey({
223
+ SK: createTagPathLinkSortKey({
236
224
  tag: item,
237
- url: item.url
225
+ path: item.path
226
+ }),
227
+ GSI1_PK: createTagPathLinkGSI1PartitionKey({
228
+ tag: item,
229
+ tenant: item.tenant
230
+ }),
231
+ GSI1_SK: createTagPathLinkGSI1SortKey({
232
+ tag: item,
233
+ path: item.path
238
234
  })
239
- }));
235
+ });
240
236
  });
241
-
242
237
  try {
243
238
  await (0, _batchWrite.batchWriteAll)({
244
- table: tagUrlLinkEntity.table,
239
+ table: tagPathLinkEntity.table,
245
240
  items
246
241
  });
247
- return tagUrlLinks;
242
+ return tagPathLinks;
248
243
  } catch (ex) {
249
- throw new _error.default(ex.message || "Could not create tagUrlLink records.", ex.code || "CREATE_URL_TAG_LINKS_ERROR", {
250
- tagUrlLinks
244
+ throw new _error.default(ex.message || "Could not create tagPathLink records.", ex.code || "CREATE_URL_TAG_LINKS_ERROR", {
245
+ tagPathLinks
251
246
  });
252
247
  }
253
248
  };
254
-
255
- const deleteTagUrlLinks = async params => {
249
+ const deleteTagPathLinks = async params => {
256
250
  const {
257
- namespace,
251
+ tenant,
258
252
  tags,
259
- url
253
+ path
260
254
  } = params;
261
255
  const items = tags.map(tag => {
262
- return tagUrlLinkEntity.deleteBatch({
263
- PK: createTagUrlLinkPartitionKey({
256
+ return tagPathLinkEntity.deleteBatch({
257
+ PK: createTagPathLinkPartitionKey({
264
258
  tag,
265
- namespace
259
+ tenant,
260
+ path
266
261
  }),
267
- SK: createTagUrlLinkSortKey({
262
+ SK: createTagPathLinkSortKey({
268
263
  tag,
269
- url
264
+ path
270
265
  })
271
266
  });
272
267
  });
273
-
274
268
  try {
275
269
  await (0, _batchWrite.batchWriteAll)({
276
- table: tagUrlLinkEntity.table,
270
+ table: tagPathLinkEntity.table,
277
271
  items
278
272
  });
279
273
  } catch (ex) {
280
- throw new _error.default(ex.message || "Could not delete tagUrlLink records.", ex.code || "DELETE_URL_TAG_LINKS_ERROR", {
274
+ throw new _error.default(ex.message || "Could not delete tagPathLink records.", ex.code || "DELETE_URL_TAG_LINKS_ERROR", {
281
275
  tags,
282
- namespace,
283
- url
276
+ tenant,
277
+ path
284
278
  });
285
279
  }
286
280
  };
287
-
288
- const listTagUrlLinks = async params => {
281
+ const listTagPathLinks = async params => {
289
282
  const {
290
283
  where
291
284
  } = params;
292
285
  const {
293
- namespace,
286
+ tenant,
294
287
  tag
295
288
  } = where;
296
- const partitionKey = createTagUrlLinkPartitionKey({
297
- namespace,
289
+ const partitionKey = createTagPathLinkGSI1PartitionKey({
290
+ tenant,
298
291
  tag
299
292
  });
300
- const options = {};
301
-
293
+ const options = {
294
+ index: "GSI1"
295
+ };
302
296
  if (tag.value) {
303
- options.beginsWith = `${tag.value}#`;
297
+ options.beginsWith = `${tag.key}#${tag.value}#`;
304
298
  } else {
305
- options.gte = " ";
299
+ options.beginsWith = `${tag.key}#`;
306
300
  }
307
-
308
301
  const queryAllParams = {
309
- entity: tagUrlLinkEntity,
302
+ entity: tagPathLinkEntity,
310
303
  partitionKey,
311
304
  options
312
305
  };
313
-
314
306
  try {
315
307
  const results = await (0, _query.queryAll)(queryAllParams);
316
- return (0, _cleanup.cleanupItems)(tagUrlLinkEntity, results);
308
+ return (0, _cleanup.cleanupItems)(tagPathLinkEntity, results).map(item => item.data);
317
309
  } catch (ex) {
318
- throw new _error.default(ex.message || "Could not list tagUrlLink records.", ex.code || "LIST_TAG_URL_LINK_ERROR", {
310
+ throw new _error.default(ex.message || "Could not list tagPathLink records.", ex.code || "LIST_TAG_PATH_LINK_ERROR", {
319
311
  partitionKey,
320
312
  options
321
313
  });
322
314
  }
323
315
  };
324
-
325
316
  return {
326
317
  createRender,
327
318
  deleteRender,
328
319
  listRenders,
329
320
  getRender,
330
- createTagUrlLinks,
331
- deleteTagUrlLinks,
332
- listTagUrlLinks
321
+ createTagPathLinks,
322
+ deleteTagPathLinks,
323
+ listTagPathLinks
333
324
  };
334
325
  };
335
-
336
326
  exports.createRenderStorageOperations = createRenderStorageOperations;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createRenderStorageOperations","params","entity","tagPathLinkEntity","createRenderPartitionKey","tenant","path","startsWith","replace","createRenderSortKey","createRenderGSI1PartitionKey","createRenderType","createTagPathLinkPartitionKey","tag","key","value","createTagPathLinkSortKey","values","push","join","createTagPathLinkGSI1PartitionKey","createTagPathLinkGSI1SortKey","createTagPathLinkType","getRender","where","keys","PK","SK","result","get","dbItem","cleanupItem","data","ex","WebinyError","message","code","createRender","render","put","TYPE","GSI1_PK","GSI1_SK","deleteRender","delete","listRendersByTag","links","listTagPathLinks","items","map","link","getBatch","results","batchReadAll","table","cleanupItems","item","listRenders","queryAllParams","partitionKey","options","index","gte","queryAll","createTagPathLinks","tagPathLinks","putBatch","batchWriteAll","deleteTagPathLinks","tags","deleteBatch","beginsWith"],"sources":["render.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceRenderStorageOperations,\n PrerenderingServiceStorageOperationsCreateRenderParams,\n PrerenderingServiceStorageOperationsCreateTagPathLinksParams,\n PrerenderingServiceStorageOperationsDeleteRenderParams,\n PrerenderingServiceStorageOperationsDeleteTagPathLinksParams,\n PrerenderingServiceStorageOperationsGetRenderParams,\n PrerenderingServiceStorageOperationsListRendersParams,\n PrerenderingServiceStorageOperationsListTagPathLinksParams,\n Render,\n TagPathLink\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { Tag } from \"@webiny/api-prerendering-service/types\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryOptions as DynamoDBToolboxQueryOptions } from \"dynamodb-toolbox/dist/classes/Table\";\nimport { DataContainer } from \"~/types\";\n\nexport interface CreateRenderStorageOperationsParams {\n entity: Entity<any>;\n tagPathLinkEntity: Entity<any>;\n}\n\nexport interface CreateTagPathLinkPartitionKeyParams {\n tenant: string;\n tag: Tag;\n path: string;\n}\n\nexport interface CreateTagPathLinkGSI1PartitionKeyParams {\n tenant: string;\n tag: Tag;\n}\n\nexport interface CreateTagPathLinkSortKeyParams {\n tag: Tag;\n path?: string;\n}\n\nexport const createRenderStorageOperations = (\n params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n const { entity, tagPathLinkEntity } = params;\n\n const createRenderPartitionKey = (tenant: string, path: string): string => {\n /**\n * For backwards compatibility remove the T# if it exists.\n */\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#RENDER#${path}`;\n };\n\n const createRenderSortKey = (): string => {\n return \"A\";\n };\n\n const createRenderGSI1PartitionKey = (tenant: string): string => {\n return `T#${tenant}#PS#RENDER`;\n };\n\n const createRenderType = (): string => {\n return \"ps.render\";\n };\n\n const createTagPathLinkPartitionKey = (params: CreateTagPathLinkPartitionKeyParams): string => {\n const { tag, path } = params;\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkSortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n const values = [tag.value];\n if (path) {\n values.push(path);\n }\n return values.join(\"#\");\n };\n\n const createTagPathLinkGSI1PartitionKey = (\n params: CreateTagPathLinkGSI1PartitionKeyParams\n ): string => {\n let { tenant } = params;\n if (tenant.startsWith(\"T#\")) {\n tenant = tenant.replace(/^T#/, \"\");\n }\n return `T#${tenant}#PS#TAG`;\n };\n\n const createTagPathLinkGSI1SortKey = (params: CreateTagPathLinkSortKeyParams): string => {\n const { tag, path } = params;\n\n return `${tag.key}#${tag.value}#${path}`;\n };\n\n const createTagPathLinkType = (): string => {\n return \"ps.tagPathLink\";\n };\n\n const getRender = async (\n params: PrerenderingServiceStorageOperationsGetRenderParams\n ): Promise<Render | null> => {\n const { where } = params;\n\n const keys = {\n PK: createRenderPartitionKey(where.tenant, where.path),\n SK: createRenderSortKey()\n };\n\n try {\n const result = await get<DataContainer<Render>>({\n entity,\n keys\n });\n\n const dbItem = cleanupItem(entity, result);\n\n return dbItem ? dbItem.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get render record by given key.\",\n ex.code || \"GET_RENDER_ERROR\",\n {\n keys,\n params\n }\n );\n }\n };\n const createRender = async (params: PrerenderingServiceStorageOperationsCreateRenderParams) => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await entity.put({\n ...keys,\n data: render,\n TYPE: createRenderType(),\n GSI1_PK: createRenderGSI1PartitionKey(render.tenant),\n GSI1_SK: render.path\n });\n\n return render;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create render record.\",\n ex.code || \"CREATE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n const deleteRender = async (\n params: PrerenderingServiceStorageOperationsDeleteRenderParams\n ): Promise<void> => {\n const { render } = params;\n\n const keys = {\n PK: createRenderPartitionKey(render.tenant, render.path),\n SK: createRenderSortKey()\n };\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete render record.\",\n ex.code || \"DELETE_RENDER_ERROR\",\n {\n keys,\n render\n }\n );\n }\n };\n\n const listRendersByTag = async (\n params: PrerenderingServiceStorageOperationsListRendersParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n /**\n * Possibly there is no tag.key so no need to go further\n */\n if (!tag || !tag.key) {\n return [];\n }\n\n const links = await listTagPathLinks({\n where: {\n tenant,\n tag\n }\n });\n\n const items = links.map(link => {\n return entity.getBatch({\n PK: createRenderPartitionKey(tenant, link.path),\n SK: createRenderSortKey()\n });\n });\n try {\n const results = await batchReadAll<DataContainer<Render>>({\n table: entity.table,\n items\n });\n return cleanupItems(entity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records after links.\",\n ex.code || \"LIST_LINKS_RENDER_ERROR\",\n {\n links\n }\n );\n }\n };\n\n const listRenders = async (params: PrerenderingServiceStorageOperationsListRendersParams) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n if (tag) {\n return listRendersByTag(params);\n }\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createRenderGSI1PartitionKey(tenant),\n options: {\n index: \"GSI1\",\n gte: \" \"\n }\n };\n\n try {\n const results = await queryAll<DataContainer<Render>>(queryAllParams);\n\n return cleanupItems(entity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list render records.\",\n ex.code || \"LIST_RENDER_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n };\n\n const createTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsCreateTagPathLinksParams\n ) => {\n const { tagPathLinks } = params;\n\n const items = tagPathLinks.map(item => {\n return tagPathLinkEntity.putBatch({\n data: item,\n TYPE: createTagPathLinkType(),\n PK: createTagPathLinkPartitionKey({\n tenant: item.tenant,\n tag: item,\n path: item.path\n }),\n SK: createTagPathLinkSortKey({\n tag: item,\n path: item.path\n }),\n GSI1_PK: createTagPathLinkGSI1PartitionKey({ tag: item, tenant: item.tenant }),\n GSI1_SK: createTagPathLinkGSI1SortKey({ tag: item, path: item.path })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagPathLinkEntity.table,\n items\n });\n return tagPathLinks;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create tagPathLink records.\",\n ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n {\n tagPathLinks\n }\n );\n }\n };\n\n const deleteTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsDeleteTagPathLinksParams\n ): Promise<void> => {\n const { tenant, tags, path } = params;\n const items = tags.map(tag => {\n return tagPathLinkEntity.deleteBatch({\n PK: createTagPathLinkPartitionKey({\n tag,\n tenant,\n path\n }),\n SK: createTagPathLinkSortKey({\n tag,\n path\n })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagPathLinkEntity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete tagPathLink records.\",\n ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n {\n tags,\n tenant,\n path\n }\n );\n }\n };\n\n const listTagPathLinks = async (\n params: PrerenderingServiceStorageOperationsListTagPathLinksParams\n ) => {\n const { where } = params;\n const { tenant, tag } = where;\n\n const partitionKey = createTagPathLinkGSI1PartitionKey({\n tenant,\n tag\n });\n\n const options: DynamoDBToolboxQueryOptions = { index: \"GSI1\" };\n\n if (tag.value) {\n options.beginsWith = `${tag.key}#${tag.value}#`;\n } else {\n options.beginsWith = `${tag.key}#`;\n }\n\n const queryAllParams: QueryAllParams = {\n entity: tagPathLinkEntity,\n partitionKey,\n options\n };\n\n try {\n const results = await queryAll<DataContainer<TagPathLink>>(queryAllParams);\n\n return cleanupItems(tagPathLinkEntity, results).map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tagPathLink records.\",\n ex.code || \"LIST_TAG_PATH_LINK_ERROR\",\n {\n partitionKey,\n options\n }\n );\n }\n };\n\n return {\n createRender,\n deleteRender,\n listRenders,\n getRender,\n createTagPathLinks,\n deleteTagPathLinks,\n listTagPathLinks\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { PrerenderingServiceSettingsStorageOperations } from "@webiny/api-prerendering-service/types";
2
+ import { Entity } from "dynamodb-toolbox";
3
+ export interface CreateSettingsStorageOperationsParams {
4
+ entity: Entity<any>;
5
+ }
6
+ export declare const createSettingsStorageOperations: (params: CreateSettingsStorageOperationsParams) => PrerenderingServiceSettingsStorageOperations;