@webiny/api-prerendering-service-so-ddb 0.0.0-mt-2 → 0.0.0-unstable.1145e7667f
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/definitions/queueJob.d.ts +2 -2
- package/definitions/queueJob.js +3 -12
- package/definitions/queueJob.js.map +1 -0
- package/definitions/render.d.ts +2 -2
- package/definitions/render.js +6 -21
- package/definitions/render.js.map +1 -0
- package/definitions/{tagUrlLink.d.ts → renderLegacy.d.ts} +2 -2
- package/definitions/renderLegacy.js +47 -0
- package/definitions/renderLegacy.js.map +1 -0
- package/definitions/settings.d.ts +8 -0
- package/definitions/settings.js +35 -0
- package/definitions/settings.js.map +1 -0
- package/definitions/table.d.ts +3 -2
- package/definitions/table.js +7 -4
- package/definitions/table.js.map +1 -0
- package/definitions/tagPathLink.d.ts +9 -0
- package/definitions/tagPathLink.js +41 -0
- package/definitions/tagPathLink.js.map +1 -0
- package/definitions/tagPathLinkLegacy.d.ts +9 -0
- package/definitions/tagPathLinkLegacy.js +44 -0
- package/definitions/tagPathLinkLegacy.js.map +1 -0
- package/definitions/tenantEntity.d.ts +7 -0
- package/definitions/tenantEntity.js +37 -0
- package/definitions/tenantEntity.js.map +1 -0
- package/index.js +28 -32
- package/index.js.map +1 -0
- package/operations/queueJob.d.ts +6 -0
- package/operations/{queueJob/index.js → queueJob.js} +5 -28
- package/operations/queueJob.js.map +1 -0
- package/operations/render.d.ts +21 -0
- package/operations/{render/index.js → render.js} +117 -127
- package/operations/render.js.map +1 -0
- package/operations/settings.d.ts +6 -0
- package/operations/settings.js +62 -0
- package/operations/settings.js.map +1 -0
- package/operations/tenant.d.ts +6 -0
- package/operations/tenant.js +28 -0
- package/operations/tenant.js.map +1 -0
- package/package.json +17 -17
- package/types.d.ts +9 -2
- package/types.js +3 -2
- package/types.js.map +1 -0
- package/definitions/tagUrlLink.js +0 -53
- package/operations/queueJob/index.d.ts +0 -6
- 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(
|
|
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
|
-
};
|
|
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
|
-
|
|
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 (
|
|
39
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
44
|
+
tenant
|
|
59
45
|
} = params;
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
54
|
+
path
|
|
72
55
|
} = params;
|
|
73
56
|
const values = [tag.value];
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
values.push(url);
|
|
57
|
+
if (path) {
|
|
58
|
+
values.push(path);
|
|
77
59
|
}
|
|
78
|
-
|
|
79
60
|
return values.join("#");
|
|
80
61
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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.
|
|
92
|
-
SK: createRenderSortKey(
|
|
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
|
-
|
|
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.
|
|
115
|
-
SK: createRenderSortKey(
|
|
108
|
+
PK: createRenderPartitionKey(render.tenant, render.path),
|
|
109
|
+
SK: createRenderSortKey()
|
|
116
110
|
};
|
|
117
|
-
|
|
118
111
|
try {
|
|
119
|
-
await entity.put(
|
|
120
|
-
|
|
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.
|
|
137
|
-
SK: createRenderSortKey(
|
|
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
|
-
|
|
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
|
-
|
|
159
|
+
tenant,
|
|
169
160
|
tag
|
|
170
161
|
}
|
|
171
162
|
});
|
|
172
163
|
const items = links.map(link => {
|
|
173
164
|
return entity.getBatch({
|
|
174
|
-
PK: createRenderPartitionKey(
|
|
175
|
-
SK: createRenderSortKey(
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
212
|
+
tagPathLinks
|
|
227
213
|
} = params;
|
|
228
|
-
const items =
|
|
229
|
-
return
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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:
|
|
223
|
+
SK: createTagPathLinkSortKey({
|
|
236
224
|
tag: item,
|
|
237
|
-
|
|
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:
|
|
239
|
+
table: tagPathLinkEntity.table,
|
|
245
240
|
items
|
|
246
241
|
});
|
|
247
|
-
return
|
|
242
|
+
return tagPathLinks;
|
|
248
243
|
} catch (ex) {
|
|
249
|
-
throw new _error.default(ex.message || "Could not create
|
|
250
|
-
|
|
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
|
-
|
|
251
|
+
tenant,
|
|
258
252
|
tags,
|
|
259
|
-
|
|
253
|
+
path
|
|
260
254
|
} = params;
|
|
261
255
|
const items = tags.map(tag => {
|
|
262
|
-
return
|
|
263
|
-
PK:
|
|
256
|
+
return tagPathLinkEntity.deleteBatch({
|
|
257
|
+
PK: createTagPathLinkPartitionKey({
|
|
264
258
|
tag,
|
|
265
|
-
|
|
259
|
+
tenant,
|
|
260
|
+
path
|
|
266
261
|
}),
|
|
267
|
-
SK:
|
|
262
|
+
SK: createTagPathLinkSortKey({
|
|
268
263
|
tag,
|
|
269
|
-
|
|
264
|
+
path
|
|
270
265
|
})
|
|
271
266
|
});
|
|
272
267
|
});
|
|
273
|
-
|
|
274
268
|
try {
|
|
275
269
|
await (0, _batchWrite.batchWriteAll)({
|
|
276
|
-
table:
|
|
270
|
+
table: tagPathLinkEntity.table,
|
|
277
271
|
items
|
|
278
272
|
});
|
|
279
273
|
} catch (ex) {
|
|
280
|
-
throw new _error.default(ex.message || "Could not delete
|
|
274
|
+
throw new _error.default(ex.message || "Could not delete tagPathLink records.", ex.code || "DELETE_URL_TAG_LINKS_ERROR", {
|
|
281
275
|
tags,
|
|
282
|
-
|
|
283
|
-
|
|
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
|
-
|
|
286
|
+
tenant,
|
|
294
287
|
tag
|
|
295
288
|
} = where;
|
|
296
|
-
const partitionKey =
|
|
297
|
-
|
|
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.
|
|
299
|
+
options.beginsWith = `${tag.key}#`;
|
|
306
300
|
}
|
|
307
|
-
|
|
308
301
|
const queryAllParams = {
|
|
309
|
-
entity:
|
|
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)(
|
|
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
|
|
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
|
-
|
|
331
|
-
|
|
332
|
-
|
|
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;
|