@webiny/api-prerendering-service-so-ddb 5.28.0-beta.0 → 5.29.0-beta.1
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/render.js +3 -9
- package/definitions/render.js.map +1 -1
- package/definitions/renderLegacy.d.ts +8 -0
- package/definitions/renderLegacy.js +56 -0
- package/definitions/renderLegacy.js.map +1 -0
- package/definitions/settings.d.ts +8 -0
- package/definitions/settings.js +44 -0
- package/definitions/settings.js.map +1 -0
- package/definitions/table.js +7 -1
- package/definitions/table.js.map +1 -1
- package/definitions/tagPathLink.d.ts +9 -0
- package/definitions/tagPathLink.js +50 -0
- package/definitions/tagPathLink.js.map +1 -0
- package/definitions/{tagUrlLink.d.ts → tagPathLinkLegacy.d.ts} +0 -0
- package/definitions/{tagUrlLink.js → tagPathLinkLegacy.js} +0 -0
- package/definitions/tagPathLinkLegacy.js.map +1 -0
- package/index.js +17 -6
- package/index.js.map +1 -1
- package/operations/{queueJob/index.d.ts → queueJob.d.ts} +0 -0
- package/operations/{queueJob/index.js → queueJob.js} +0 -0
- package/operations/queueJob.js.map +1 -0
- package/operations/{render/index.d.ts → render.d.ts} +12 -7
- package/operations/{render/index.js → render.js} +120 -77
- package/operations/render.js.map +1 -0
- package/operations/settings.d.ts +6 -0
- package/operations/settings.js +79 -0
- package/operations/settings.js.map +1 -0
- package/package.json +9 -9
- package/types.d.ts +8 -2
- package/types.js +2 -1
- package/types.js.map +1 -1
- package/definitions/tagUrlLink.js.map +0 -1
- package/operations/queueJob/index.js.map +0 -1
- package/operations/render/index.js.map +0 -1
package/definitions/render.js
CHANGED
|
@@ -34,20 +34,14 @@ const createRenderEntity = params => {
|
|
|
34
34
|
TYPE: {
|
|
35
35
|
type: "string"
|
|
36
36
|
},
|
|
37
|
-
|
|
37
|
+
GSI1_PK: {
|
|
38
38
|
type: "string"
|
|
39
39
|
},
|
|
40
|
-
|
|
40
|
+
GSI1_SK: {
|
|
41
41
|
type: "string"
|
|
42
42
|
},
|
|
43
|
-
|
|
43
|
+
data: {
|
|
44
44
|
type: "map"
|
|
45
|
-
},
|
|
46
|
-
configuration: {
|
|
47
|
-
type: "map"
|
|
48
|
-
},
|
|
49
|
-
files: {
|
|
50
|
-
type: "list"
|
|
51
45
|
}
|
|
52
46
|
}, attributes || {})
|
|
53
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRenderEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","
|
|
1
|
+
{"version":3,"names":["createRenderEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","GSI1_PK","GSI1_SK","data"],"sources":["render.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface CreateRenderEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createRenderEntity = (params: CreateRenderEntityParams): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,kBAAkB,GAAIC,MAAD,IAAmD;EACjF,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,OAAO,EAAE;QACLD,IAAI,EAAE;MADD,CAVH;MAaNE,OAAO,EAAE;QACLF,IAAI,EAAE;MADD,CAbH;MAgBNG,IAAI,EAAE;QACFH,IAAI,EAAE;MADJ;IAhBA,GAmBFT,UAAU,IAAI,EAnBZ;EAHI,CAAX,CAAP;AAyBH,CA3BM"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Entity, Table } from "dynamodb-toolbox";
|
|
2
|
+
import { Attributes } from "../types";
|
|
3
|
+
export interface CreateRenderEntityParams {
|
|
4
|
+
table: Table;
|
|
5
|
+
entityName: string;
|
|
6
|
+
attributes: Attributes;
|
|
7
|
+
}
|
|
8
|
+
export declare const createRenderEntity: (params: CreateRenderEntityParams) => Entity<any>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createRenderEntity = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _dynamodbToolbox = require("dynamodb-toolbox");
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
18
|
+
const createRenderEntity = params => {
|
|
19
|
+
const {
|
|
20
|
+
entityName,
|
|
21
|
+
attributes,
|
|
22
|
+
table
|
|
23
|
+
} = params;
|
|
24
|
+
return new _dynamodbToolbox.Entity({
|
|
25
|
+
name: entityName,
|
|
26
|
+
table,
|
|
27
|
+
attributes: _objectSpread({
|
|
28
|
+
PK: {
|
|
29
|
+
partitionKey: true
|
|
30
|
+
},
|
|
31
|
+
SK: {
|
|
32
|
+
sortKey: true
|
|
33
|
+
},
|
|
34
|
+
TYPE: {
|
|
35
|
+
type: "string"
|
|
36
|
+
},
|
|
37
|
+
namespace: {
|
|
38
|
+
type: "string"
|
|
39
|
+
},
|
|
40
|
+
url: {
|
|
41
|
+
type: "string"
|
|
42
|
+
},
|
|
43
|
+
args: {
|
|
44
|
+
type: "map"
|
|
45
|
+
},
|
|
46
|
+
configuration: {
|
|
47
|
+
type: "map"
|
|
48
|
+
},
|
|
49
|
+
files: {
|
|
50
|
+
type: "list"
|
|
51
|
+
}
|
|
52
|
+
}, attributes || {})
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.createRenderEntity = createRenderEntity;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createRenderEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","namespace","url","args","configuration","files"],"sources":["renderLegacy.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface CreateRenderEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createRenderEntity = (params: CreateRenderEntityParams): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n url: {\n type: \"string\"\n },\n args: {\n type: \"map\"\n },\n configuration: {\n type: \"map\"\n },\n files: {\n type: \"list\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,kBAAkB,GAAIC,MAAD,IAAmD;EACjF,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,SAAS,EAAE;QACPD,IAAI,EAAE;MADC,CAVL;MAaNE,GAAG,EAAE;QACDF,IAAI,EAAE;MADL,CAbC;MAgBNG,IAAI,EAAE;QACFH,IAAI,EAAE;MADJ,CAhBA;MAmBNI,aAAa,EAAE;QACXJ,IAAI,EAAE;MADK,CAnBT;MAsBNK,KAAK,EAAE;QACHL,IAAI,EAAE;MADH;IAtBD,GAyBFT,UAAU,IAAI,EAzBZ;EAHI,CAAX,CAAP;AA+BH,CAjCM"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Entity, Table } from "dynamodb-toolbox";
|
|
2
|
+
import { Attributes } from "../types";
|
|
3
|
+
export interface CreateSettingsEntityParams {
|
|
4
|
+
table: Table;
|
|
5
|
+
entityName: string;
|
|
6
|
+
attributes: Attributes;
|
|
7
|
+
}
|
|
8
|
+
export declare const createSettingsEntity: (params: CreateSettingsEntityParams) => Entity<any>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createSettingsEntity = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _dynamodbToolbox = require("dynamodb-toolbox");
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
18
|
+
const createSettingsEntity = params => {
|
|
19
|
+
const {
|
|
20
|
+
entityName,
|
|
21
|
+
attributes,
|
|
22
|
+
table
|
|
23
|
+
} = params;
|
|
24
|
+
return new _dynamodbToolbox.Entity({
|
|
25
|
+
name: entityName,
|
|
26
|
+
table,
|
|
27
|
+
attributes: _objectSpread({
|
|
28
|
+
PK: {
|
|
29
|
+
partitionKey: true
|
|
30
|
+
},
|
|
31
|
+
SK: {
|
|
32
|
+
sortKey: true
|
|
33
|
+
},
|
|
34
|
+
TYPE: {
|
|
35
|
+
type: "string"
|
|
36
|
+
},
|
|
37
|
+
data: {
|
|
38
|
+
type: "map"
|
|
39
|
+
}
|
|
40
|
+
}, attributes || {})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.createSettingsEntity = createSettingsEntity;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSettingsEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","data"],"sources":["settings.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface CreateSettingsEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createSettingsEntity = (params: CreateSettingsEntityParams): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,oBAAoB,GAAIC,MAAD,IAAqD;EACrF,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,IAAI,EAAE;QACFD,IAAI,EAAE;MADJ;IAVA,GAaFT,UAAU,IAAI,EAbZ;EAHI,CAAX,CAAP;AAmBH,CArBM"}
|
package/definitions/table.js
CHANGED
|
@@ -16,7 +16,13 @@ const createTable = params => {
|
|
|
16
16
|
name: process.env.DB_TABLE_PRERENDERING_SERVICE || process.env.DB_TABLE,
|
|
17
17
|
partitionKey: "PK",
|
|
18
18
|
sortKey: "SK",
|
|
19
|
-
DocumentClient: documentClient
|
|
19
|
+
DocumentClient: documentClient,
|
|
20
|
+
indexes: {
|
|
21
|
+
GSI1: {
|
|
22
|
+
partitionKey: "GSI1_PK",
|
|
23
|
+
sortKey: "GSI1_SK"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
20
26
|
};
|
|
21
27
|
const config = typeof table === "function" ? table(tableConfig) : tableConfig;
|
|
22
28
|
return new _dynamodbToolbox.Table(config);
|
package/definitions/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createTable","params","table","documentClient","tableConfig","name","process","env","DB_TABLE_PRERENDERING_SERVICE","DB_TABLE","partitionKey","sortKey","DocumentClient","config","Table"],"sources":["table.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table } from \"dynamodb-toolbox\";\nimport { TableModifier } from \"~/types\";\nimport { TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\n\ninterface CreateTableParams {\n table?: TableModifier;\n documentClient: DocumentClient;\n}\n\nexport const createTable = (params: CreateTableParams): Table => {\n const { table, documentClient } = params;\n\n const tableConfig: TableConstructor = {\n name: (process.env.DB_TABLE_PRERENDERING_SERVICE || process.env.DB_TABLE) as string,\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient\n };\n\n const config = typeof table === \"function\" ? table(tableConfig) : tableConfig;\n\n return new Table(config);\n};\n"],"mappings":";;;;;;;AACA;;AASO,MAAMA,WAAW,GAAIC,MAAD,IAAsC;EAC7D,MAAM;IAAEC,KAAF;IAASC;EAAT,IAA4BF,MAAlC;EAEA,MAAMG,WAA6B,GAAG;IAClCC,IAAI,EAAGC,OAAO,CAACC,GAAR,CAAYC,6BAAZ,IAA6CF,OAAO,CAACC,GAAR,CAAYE,QAD9B;IAElCC,YAAY,EAAE,IAFoB;IAGlCC,OAAO,EAAE,IAHyB;IAIlCC,cAAc,EAAET;
|
|
1
|
+
{"version":3,"names":["createTable","params","table","documentClient","tableConfig","name","process","env","DB_TABLE_PRERENDERING_SERVICE","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1","config","Table"],"sources":["table.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table } from \"dynamodb-toolbox\";\nimport { TableModifier } from \"~/types\";\nimport { TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\n\ninterface CreateTableParams {\n table?: TableModifier;\n documentClient: DocumentClient;\n}\n\nexport const createTable = (params: CreateTableParams): Table => {\n const { table, documentClient } = params;\n\n const tableConfig: TableConstructor = {\n name: (process.env.DB_TABLE_PRERENDERING_SERVICE || process.env.DB_TABLE) as string,\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n }\n }\n };\n\n const config = typeof table === \"function\" ? table(tableConfig) : tableConfig;\n\n return new Table(config);\n};\n"],"mappings":";;;;;;;AACA;;AASO,MAAMA,WAAW,GAAIC,MAAD,IAAsC;EAC7D,MAAM;IAAEC,KAAF;IAASC;EAAT,IAA4BF,MAAlC;EAEA,MAAMG,WAA6B,GAAG;IAClCC,IAAI,EAAGC,OAAO,CAACC,GAAR,CAAYC,6BAAZ,IAA6CF,OAAO,CAACC,GAAR,CAAYE,QAD9B;IAElCC,YAAY,EAAE,IAFoB;IAGlCC,OAAO,EAAE,IAHyB;IAIlCC,cAAc,EAAET,cAJkB;IAKlCU,OAAO,EAAE;MACLC,IAAI,EAAE;QACFJ,YAAY,EAAE,SADZ;QAEFC,OAAO,EAAE;MAFP;IADD;EALyB,CAAtC;EAaA,MAAMI,MAAM,GAAG,OAAOb,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,CAACE,WAAD,CAAnC,GAAmDA,WAAlE;EAEA,OAAO,IAAIY,sBAAJ,CAAUD,MAAV,CAAP;AACH,CAnBM"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Entity, Table } from "dynamodb-toolbox";
|
|
2
|
+
import { Attributes } from "../types";
|
|
3
|
+
interface CreateTagPathLinkEntityParams {
|
|
4
|
+
table: Table;
|
|
5
|
+
entityName: string;
|
|
6
|
+
attributes: Attributes;
|
|
7
|
+
}
|
|
8
|
+
export declare const createTagPathLinkEntity: (params: CreateTagPathLinkEntityParams) => Entity<{}>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createTagPathLinkEntity = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _dynamodbToolbox = require("dynamodb-toolbox");
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
18
|
+
const createTagPathLinkEntity = params => {
|
|
19
|
+
const {
|
|
20
|
+
entityName,
|
|
21
|
+
attributes,
|
|
22
|
+
table
|
|
23
|
+
} = params;
|
|
24
|
+
return new _dynamodbToolbox.Entity({
|
|
25
|
+
name: entityName,
|
|
26
|
+
table,
|
|
27
|
+
attributes: _objectSpread({
|
|
28
|
+
PK: {
|
|
29
|
+
partitionKey: true
|
|
30
|
+
},
|
|
31
|
+
SK: {
|
|
32
|
+
sortKey: true
|
|
33
|
+
},
|
|
34
|
+
TYPE: {
|
|
35
|
+
type: "string"
|
|
36
|
+
},
|
|
37
|
+
GSI1_PK: {
|
|
38
|
+
type: "string"
|
|
39
|
+
},
|
|
40
|
+
GSI1_SK: {
|
|
41
|
+
type: "string"
|
|
42
|
+
},
|
|
43
|
+
data: {
|
|
44
|
+
type: "map"
|
|
45
|
+
}
|
|
46
|
+
}, attributes || {})
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
exports.createTagPathLinkEntity = createTagPathLinkEntity;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createTagPathLinkEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","GSI1_PK","GSI1_SK","data"],"sources":["tagPathLink.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface CreateTagPathLinkEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createTagPathLinkEntity = (params: CreateTagPathLinkEntityParams) => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,OAAO,EAAE;QACLD,IAAI,EAAE;MADD,CAVH;MAaNE,OAAO,EAAE;QACLF,IAAI,EAAE;MADD,CAbH;MAgBNG,IAAI,EAAE;QACFH,IAAI,EAAE;MADJ;IAhBA,GAmBFT,UAAU,IAAI,EAnBZ;EAHI,CAAX,CAAP;AAyBH,CA3BM"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createTagUrlLinkEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","namespace","url","value","key"],"sources":["tagPathLinkLegacy.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface CreateTagUrlLinkEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createTagUrlLinkEntity = (params: CreateTagUrlLinkEntityParams) => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n url: {\n type: \"string\"\n },\n value: {\n type: \"string\"\n },\n key: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,sBAAsB,GAAIC,MAAD,IAA0C;EAC5E,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,SAAS,EAAE;QACPD,IAAI,EAAE;MADC,CAVL;MAaNE,GAAG,EAAE;QACDF,IAAI,EAAE;MADL,CAbC;MAgBNG,KAAK,EAAE;QACHH,IAAI,EAAE;MADH,CAhBD;MAmBNI,GAAG,EAAE;QACDJ,IAAI,EAAE;MADL;IAnBC,GAsBFT,UAAU,IAAI,EAtBZ;EAHI,CAAX,CAAP;AA4BH,CA9BM"}
|
package/index.js
CHANGED
|
@@ -17,13 +17,17 @@ var _table = require("./definitions/table");
|
|
|
17
17
|
|
|
18
18
|
var _render = require("./definitions/render");
|
|
19
19
|
|
|
20
|
+
var _settings = require("./definitions/settings");
|
|
21
|
+
|
|
20
22
|
var _queueJob = require("./definitions/queueJob");
|
|
21
23
|
|
|
22
24
|
var _render2 = require("./operations/render");
|
|
23
25
|
|
|
26
|
+
var _settings2 = require("./operations/settings");
|
|
27
|
+
|
|
24
28
|
var _queueJob2 = require("./operations/queueJob");
|
|
25
29
|
|
|
26
|
-
var
|
|
30
|
+
var _tagPathLink = require("./definitions/tagPathLink");
|
|
27
31
|
|
|
28
32
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
33
|
|
|
@@ -64,25 +68,32 @@ const createPrerenderingServiceStorageOperations = params => {
|
|
|
64
68
|
table: tableInstance,
|
|
65
69
|
attributes: attributes ? attributes[_types.ENTITIES.RENDER] : {}
|
|
66
70
|
}),
|
|
71
|
+
settings: (0, _settings.createSettingsEntity)({
|
|
72
|
+
entityName: _types.ENTITIES.SETTINGS,
|
|
73
|
+
table: tableInstance,
|
|
74
|
+
attributes: attributes ? attributes[_types.ENTITIES.SETTINGS] : {}
|
|
75
|
+
}),
|
|
67
76
|
queueJob: (0, _queueJob.createQueueJobEntity)({
|
|
68
77
|
entityName: _types.ENTITIES.QUEUE_JOB,
|
|
69
78
|
table: tableInstance,
|
|
70
79
|
attributes: attributes ? attributes[_types.ENTITIES.QUEUE_JOB] : {}
|
|
71
80
|
}),
|
|
72
|
-
|
|
73
|
-
entityName: _types.ENTITIES.
|
|
81
|
+
tagPathLink: (0, _tagPathLink.createTagPathLinkEntity)({
|
|
82
|
+
entityName: _types.ENTITIES.TAG_PATH_LINK,
|
|
74
83
|
table: tableInstance,
|
|
75
|
-
attributes: attributes ? attributes[_types.ENTITIES.
|
|
84
|
+
attributes: attributes ? attributes[_types.ENTITIES.TAG_PATH_LINK] : {}
|
|
76
85
|
})
|
|
77
86
|
};
|
|
78
|
-
return _objectSpread(_objectSpread({
|
|
87
|
+
return _objectSpread(_objectSpread(_objectSpread({
|
|
79
88
|
getTable: () => tableInstance,
|
|
80
89
|
getEntities: () => entities
|
|
81
90
|
}, (0, _render2.createRenderStorageOperations)({
|
|
82
91
|
entity: entities.render,
|
|
83
|
-
|
|
92
|
+
tagPathLinkEntity: entities.tagPathLink
|
|
84
93
|
})), (0, _queueJob2.createQueueJobStorageOperations)({
|
|
85
94
|
entity: entities.queueJob
|
|
95
|
+
})), (0, _settings2.createSettingsStorageOperations)({
|
|
96
|
+
entity: entities.settings
|
|
86
97
|
}));
|
|
87
98
|
};
|
|
88
99
|
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["reservedFields","isReserved","name","includes","WebinyError","createPrerenderingServiceStorageOperations","params","attributes","table","documentClient","Object","values","forEach","attrs","keys","tableInstance","createTable","entities","render","createRenderEntity","entityName","ENTITIES","RENDER","queueJob","createQueueJobEntity","QUEUE_JOB","
|
|
1
|
+
{"version":3,"names":["reservedFields","isReserved","name","includes","WebinyError","createPrerenderingServiceStorageOperations","params","attributes","table","documentClient","Object","values","forEach","attrs","keys","tableInstance","createTable","entities","render","createRenderEntity","entityName","ENTITIES","RENDER","settings","createSettingsEntity","SETTINGS","queueJob","createQueueJobEntity","QUEUE_JOB","tagPathLink","createTagPathLinkEntity","TAG_PATH_LINK","getTable","getEntities","createRenderStorageOperations","entity","tagPathLinkEntity","createQueueJobStorageOperations","createSettingsStorageOperations"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ENTITIES, PrerenderingServiceFactory, PrerenderingServiceFactoryParams } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createRenderEntity } from \"~/definitions/render\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createQueueJobEntity } from \"~/definitions/queueJob\";\nimport { createRenderStorageOperations } from \"~/operations/render\";\nimport { createSettingsStorageOperations } from \"~/operations/settings\";\nimport { createQueueJobStorageOperations } from \"~/operations/queueJob\";\nimport { createTagPathLinkEntity } from \"~/definitions/tagPathLink\";\n\nconst reservedFields = [\"PK\", \"SK\", \"index\", \"data\", \"TYPE\", \"__type\", \"GSI1_PK\", \"GSI1_SK\"];\n\nconst isReserved = (name: string): void => {\n if (reservedFields.includes(name) === false) {\n return;\n }\n throw new WebinyError(`Attribute name \"${name}\" is not allowed.`, \"ATTRIBUTE_NOT_ALLOWED\", {\n name\n });\n};\n\nexport const createPrerenderingServiceStorageOperations: PrerenderingServiceFactory = (\n params: PrerenderingServiceFactoryParams\n) => {\n const { attributes, table, documentClient } = params;\n\n if (attributes) {\n Object.values(attributes).forEach(attrs => {\n Object.keys(attrs).forEach(isReserved);\n });\n }\n\n const tableInstance = createTable({ table, documentClient });\n\n const entities = {\n render: createRenderEntity({\n entityName: ENTITIES.RENDER,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.RENDER] : {}\n }),\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n queueJob: createQueueJobEntity({\n entityName: ENTITIES.QUEUE_JOB,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.QUEUE_JOB] : {}\n }),\n tagPathLink: createTagPathLinkEntity({\n entityName: ENTITIES.TAG_PATH_LINK,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.TAG_PATH_LINK] : {}\n })\n };\n\n return {\n getTable: () => tableInstance,\n getEntities: () => entities,\n ...createRenderStorageOperations({\n entity: entities.render,\n tagPathLinkEntity: entities.tagPathLink\n }),\n ...createQueueJobStorageOperations({\n entity: entities.queueJob\n }),\n ...createSettingsStorageOperations({\n entity: entities.settings\n })\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,cAAc,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsB,MAAtB,EAA8B,MAA9B,EAAsC,QAAtC,EAAgD,SAAhD,EAA2D,SAA3D,CAAvB;;AAEA,MAAMC,UAAU,GAAIC,IAAD,IAAwB;EACvC,IAAIF,cAAc,CAACG,QAAf,CAAwBD,IAAxB,MAAkC,KAAtC,EAA6C;IACzC;EACH;;EACD,MAAM,IAAIE,cAAJ,CAAiB,mBAAkBF,IAAK,mBAAxC,EAA4D,uBAA5D,EAAqF;IACvFA;EADuF,CAArF,CAAN;AAGH,CAPD;;AASO,MAAMG,0CAAsE,GAC/EC,MADkF,IAEjF;EACD,MAAM;IAAEC,UAAF;IAAcC,KAAd;IAAqBC;EAArB,IAAwCH,MAA9C;;EAEA,IAAIC,UAAJ,EAAgB;IACZG,MAAM,CAACC,MAAP,CAAcJ,UAAd,EAA0BK,OAA1B,CAAkCC,KAAK,IAAI;MACvCH,MAAM,CAACI,IAAP,CAAYD,KAAZ,EAAmBD,OAAnB,CAA2BX,UAA3B;IACH,CAFD;EAGH;;EAED,MAAMc,aAAa,GAAG,IAAAC,kBAAA,EAAY;IAAER,KAAF;IAASC;EAAT,CAAZ,CAAtB;EAEA,MAAMQ,QAAQ,GAAG;IACbC,MAAM,EAAE,IAAAC,0BAAA,EAAmB;MACvBC,UAAU,EAAEC,eAAA,CAASC,MADE;MAEvBd,KAAK,EAAEO,aAFgB;MAGvBR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASC,MAAV,CAAb,GAAiC;IAHhC,CAAnB,CADK;IAMbC,QAAQ,EAAE,IAAAC,8BAAA,EAAqB;MAC3BJ,UAAU,EAAEC,eAAA,CAASI,QADM;MAE3BjB,KAAK,EAAEO,aAFoB;MAG3BR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASI,QAAV,CAAb,GAAmC;IAH9B,CAArB,CANG;IAWbC,QAAQ,EAAE,IAAAC,8BAAA,EAAqB;MAC3BP,UAAU,EAAEC,eAAA,CAASO,SADM;MAE3BpB,KAAK,EAAEO,aAFoB;MAG3BR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASO,SAAV,CAAb,GAAoC;IAH/B,CAArB,CAXG;IAgBbC,WAAW,EAAE,IAAAC,oCAAA,EAAwB;MACjCV,UAAU,EAAEC,eAAA,CAASU,aADY;MAEjCvB,KAAK,EAAEO,aAF0B;MAGjCR,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACc,eAAA,CAASU,aAAV,CAAb,GAAwC;IAH7B,CAAxB;EAhBA,CAAjB;EAuBA;IACIC,QAAQ,EAAE,MAAMjB,aADpB;IAEIkB,WAAW,EAAE,MAAMhB;EAFvB,GAGO,IAAAiB,sCAAA,EAA8B;IAC7BC,MAAM,EAAElB,QAAQ,CAACC,MADY;IAE7BkB,iBAAiB,EAAEnB,QAAQ,CAACY;EAFC,CAA9B,CAHP,GAOO,IAAAQ,0CAAA,EAAgC;IAC/BF,MAAM,EAAElB,QAAQ,CAACS;EADc,CAAhC,CAPP,GAUO,IAAAY,0CAAA,EAAgC;IAC/BH,MAAM,EAAElB,QAAQ,CAACM;EADc,CAAhC,CAVP;AAcH,CAlDM"}
|
|
File without changes
|
|
File without changes
|
|
@@ -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,MAD2C,IAEI;EAC/C,MAAM;IAAEC;EAAF,IAAaD,MAAnB;;EAEA,MAAME,0BAA0B,GAAG,MAAc;IAC7C,OAAO,UAAP;EACH,CAFD;;EAGA,MAAMC,qBAAqB,GAAIC,EAAD,IAAwB;IAClD,OAAOA,EAAP;EACH,CAFD;;EAIA,MAAMC,kBAAkB,GAAG,MAAM;IAC7B,OAAO,cAAP;EACH,CAFD;;EAIA,MAAMC,cAAc,GAAG,MACnBN,MADmB,IAEC;IACpB,MAAM;MAAEO;IAAF,IAAeP,MAArB;IACA,MAAMQ,IAAI,GAAG;MACTC,EAAE,EAAEP,0BAA0B,EADrB;MAETQ,EAAE,EAAEP,qBAAqB,CAACI,QAAQ,CAACH,EAAV;IAFhB,CAAb;;IAKA,IAAI;MACA,MAAMH,MAAM,CAACU,GAAP,+CACCJ,QADD,GAECC,IAFD;QAGFI,IAAI,EAAEP,kBAAkB;MAHtB,GAAN;MAKA,OAAOE,QAAP;IACH,CAPD,CAOE,OAAOM,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIR,IADJ;QAEID;MAFJ,CAHE,CAAN;IAQH;EACJ,CA1BD;;EA4BA,MAAMU,aAAa,GAAG,YAAY;IAC9B,MAAMC,cAA8B,GAAG;MACnCjB,MADmC;MAEnCkB,YAAY,EAAEjB,0BAA0B,EAFL;MAGnCkB,OAAO,EAAE;QACLC,GAAG,EAAE;MADA;IAH0B,CAAvC;;IAQA,IAAI;MACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,eAAA,EAAmBL,cAAnB,CAAtB;MAEA,OAAO,IAAAM,qBAAA,EAAavB,MAAb,EAAqBqB,OAArB,CAAP;IACH,CAJD,CAIE,OAAOT,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,oCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,uBAFT,EAGF;QACIG,YAAY,EAAED,cAAc,CAACC,YADjC;QAEIC,OAAO,EAAEF,cAAc,CAACE;MAF5B,CAHE,CAAN;IAQH;EACJ,CAvBD;;EAyBA,MAAMK,eAAe,GAAG,MACpBzB,MADoB,IAEnB;IACD,MAAM;MAAE0B;IAAF,IAAgB1B,MAAtB;IAEA,MAAM2B,KAAK,GAAGD,SAAS,CAACE,GAAV,CAAcC,GAAG,IAAI;MAC/B,OAAO5B,MAAM,CAAC6B,WAAP,CAAmB;QACtBrB,EAAE,EAAEP,0BAA0B,EADR;QAEtBQ,EAAE,EAAEP,qBAAqB,CAAC0B,GAAG,CAACzB,EAAL;MAFH,CAAnB,CAAP;IAIH,CALa,CAAd;;IAOA,IAAI;MACA,MAAM,IAAA2B,yBAAA,EAAc;QAChBC,KAAK,EAAE/B,MAAM,CAAC+B,KADE;QAEhBL;MAFgB,CAAd,CAAN;MAIA,OAAOD,SAAP;IACH,CAND,CAME,OAAOb,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,sCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIU;MADJ,CAHE,CAAN;IAOH;EACJ,CA3BD;;EA6BA,OAAO;IACHpB,cADG;IAEHmB,eAFG;IAGHR;EAHG,CAAP;AAKH,CAvGM"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { PrerenderingServiceRenderStorageOperations } from "@webiny/api-prerendering-service/types";
|
|
2
2
|
import { Entity } from "dynamodb-toolbox";
|
|
3
|
-
import { Tag } from "@webiny/api-prerendering-service/
|
|
3
|
+
import { Tag } from "@webiny/api-prerendering-service/types";
|
|
4
4
|
export interface CreateRenderStorageOperationsParams {
|
|
5
5
|
entity: Entity<any>;
|
|
6
|
-
|
|
6
|
+
tagPathLinkEntity: Entity<any>;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
9
|
-
|
|
10
|
-
tag:
|
|
8
|
+
export interface CreateTagPathLinkPartitionKeyParams {
|
|
9
|
+
tenant: string;
|
|
10
|
+
tag: Tag;
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CreateTagPathLinkGSI1PartitionKeyParams {
|
|
14
|
+
tenant: string;
|
|
15
|
+
tag: Tag;
|
|
11
16
|
}
|
|
12
|
-
export interface
|
|
17
|
+
export interface CreateTagPathLinkSortKeyParams {
|
|
13
18
|
tag: Tag;
|
|
14
|
-
|
|
19
|
+
path?: string;
|
|
15
20
|
}
|
|
16
21
|
export declare const createRenderStorageOperations: (params: CreateRenderStorageOperationsParams) => PrerenderingServiceRenderStorageOperations;
|
|
@@ -28,59 +28,84 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
28
28
|
const createRenderStorageOperations = params => {
|
|
29
29
|
const {
|
|
30
30
|
entity,
|
|
31
|
-
|
|
31
|
+
tagPathLinkEntity
|
|
32
32
|
} = params;
|
|
33
33
|
|
|
34
|
-
const createRenderPartitionKey =
|
|
34
|
+
const createRenderPartitionKey = (tenant, path) => {
|
|
35
35
|
/**
|
|
36
36
|
* For backwards compatibility remove the T# if it exists.
|
|
37
37
|
*/
|
|
38
|
-
if (
|
|
39
|
-
|
|
38
|
+
if (tenant.startsWith("T#")) {
|
|
39
|
+
tenant = tenant.replace(/^T#/, "");
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
return `T#${
|
|
42
|
+
return `T#${tenant}#PS#RENDER#${path}`;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
const createRenderSortKey =
|
|
46
|
-
return
|
|
45
|
+
const createRenderSortKey = () => {
|
|
46
|
+
return "A";
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const createRenderGSI1PartitionKey = tenant => {
|
|
50
|
+
return `T#${tenant}#PS#RENDER`;
|
|
47
51
|
};
|
|
48
52
|
|
|
49
53
|
const createRenderType = () => {
|
|
50
54
|
return "ps.render";
|
|
51
55
|
};
|
|
52
56
|
|
|
53
|
-
const
|
|
57
|
+
const createTagPathLinkPartitionKey = params => {
|
|
54
58
|
const {
|
|
55
|
-
tag
|
|
59
|
+
tag,
|
|
60
|
+
path
|
|
56
61
|
} = params;
|
|
57
62
|
let {
|
|
58
|
-
|
|
63
|
+
tenant
|
|
59
64
|
} = params;
|
|
60
65
|
|
|
61
|
-
if (
|
|
62
|
-
|
|
66
|
+
if (tenant.startsWith("T#")) {
|
|
67
|
+
tenant = tenant.replace(/^T#/, "");
|
|
63
68
|
}
|
|
64
69
|
|
|
65
|
-
return `T#${
|
|
70
|
+
return `T#${tenant}#PS#TAG#${tag.key}#${tag.value}#${path}`;
|
|
66
71
|
};
|
|
67
72
|
|
|
68
|
-
const
|
|
73
|
+
const createTagPathLinkSortKey = params => {
|
|
69
74
|
const {
|
|
70
75
|
tag,
|
|
71
|
-
|
|
76
|
+
path
|
|
72
77
|
} = params;
|
|
73
78
|
const values = [tag.value];
|
|
74
79
|
|
|
75
|
-
if (
|
|
76
|
-
values.push(
|
|
80
|
+
if (path) {
|
|
81
|
+
values.push(path);
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
return values.join("#");
|
|
80
85
|
};
|
|
81
86
|
|
|
82
|
-
const
|
|
83
|
-
|
|
87
|
+
const createTagPathLinkGSI1PartitionKey = params => {
|
|
88
|
+
let {
|
|
89
|
+
tenant
|
|
90
|
+
} = params;
|
|
91
|
+
|
|
92
|
+
if (tenant.startsWith("T#")) {
|
|
93
|
+
tenant = tenant.replace(/^T#/, "");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return `T#${tenant}#PS#TAG`;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const createTagPathLinkGSI1SortKey = params => {
|
|
100
|
+
const {
|
|
101
|
+
tag,
|
|
102
|
+
path
|
|
103
|
+
} = params;
|
|
104
|
+
return `${tag.key}#${tag.value}#${path}`;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const createTagPathLinkType = () => {
|
|
108
|
+
return "ps.tagPathLink";
|
|
84
109
|
};
|
|
85
110
|
|
|
86
111
|
const getRender = async params => {
|
|
@@ -88,8 +113,8 @@ const createRenderStorageOperations = params => {
|
|
|
88
113
|
where
|
|
89
114
|
} = params;
|
|
90
115
|
const keys = {
|
|
91
|
-
PK: createRenderPartitionKey(where.
|
|
92
|
-
SK: createRenderSortKey(
|
|
116
|
+
PK: createRenderPartitionKey(where.tenant, where.path),
|
|
117
|
+
SK: createRenderSortKey()
|
|
93
118
|
};
|
|
94
119
|
|
|
95
120
|
try {
|
|
@@ -97,7 +122,8 @@ const createRenderStorageOperations = params => {
|
|
|
97
122
|
entity,
|
|
98
123
|
keys
|
|
99
124
|
});
|
|
100
|
-
|
|
125
|
+
const dbItem = (0, _cleanup.cleanupItem)(entity, result);
|
|
126
|
+
return dbItem ? dbItem.data : null;
|
|
101
127
|
} catch (ex) {
|
|
102
128
|
throw new _error.default(ex.message || "Could not get render record by given key.", ex.code || "GET_RENDER_ERROR", {
|
|
103
129
|
keys,
|
|
@@ -111,13 +137,16 @@ const createRenderStorageOperations = params => {
|
|
|
111
137
|
render
|
|
112
138
|
} = params;
|
|
113
139
|
const keys = {
|
|
114
|
-
PK: createRenderPartitionKey(render.
|
|
115
|
-
SK: createRenderSortKey(
|
|
140
|
+
PK: createRenderPartitionKey(render.tenant, render.path),
|
|
141
|
+
SK: createRenderSortKey()
|
|
116
142
|
};
|
|
117
143
|
|
|
118
144
|
try {
|
|
119
|
-
await entity.put(_objectSpread(_objectSpread(
|
|
120
|
-
|
|
145
|
+
await entity.put(_objectSpread(_objectSpread({}, keys), {}, {
|
|
146
|
+
data: render,
|
|
147
|
+
TYPE: createRenderType(),
|
|
148
|
+
GSI1_PK: createRenderGSI1PartitionKey(render.tenant),
|
|
149
|
+
GSI1_SK: render.path
|
|
121
150
|
}));
|
|
122
151
|
return render;
|
|
123
152
|
} catch (ex) {
|
|
@@ -133,8 +162,8 @@ const createRenderStorageOperations = params => {
|
|
|
133
162
|
render
|
|
134
163
|
} = params;
|
|
135
164
|
const keys = {
|
|
136
|
-
PK: createRenderPartitionKey(render.
|
|
137
|
-
SK: createRenderSortKey(
|
|
165
|
+
PK: createRenderPartitionKey(render.tenant, render.path),
|
|
166
|
+
SK: createRenderSortKey()
|
|
138
167
|
};
|
|
139
168
|
|
|
140
169
|
try {
|
|
@@ -152,7 +181,7 @@ const createRenderStorageOperations = params => {
|
|
|
152
181
|
where
|
|
153
182
|
} = params;
|
|
154
183
|
const {
|
|
155
|
-
|
|
184
|
+
tenant,
|
|
156
185
|
tag
|
|
157
186
|
} = where;
|
|
158
187
|
/**
|
|
@@ -163,16 +192,16 @@ const createRenderStorageOperations = params => {
|
|
|
163
192
|
return [];
|
|
164
193
|
}
|
|
165
194
|
|
|
166
|
-
const links = await
|
|
195
|
+
const links = await listTagPathLinks({
|
|
167
196
|
where: {
|
|
168
|
-
|
|
197
|
+
tenant,
|
|
169
198
|
tag
|
|
170
199
|
}
|
|
171
200
|
});
|
|
172
201
|
const items = links.map(link => {
|
|
173
202
|
return entity.getBatch({
|
|
174
|
-
PK: createRenderPartitionKey(
|
|
175
|
-
SK: createRenderSortKey(
|
|
203
|
+
PK: createRenderPartitionKey(tenant, link.path),
|
|
204
|
+
SK: createRenderSortKey()
|
|
176
205
|
});
|
|
177
206
|
});
|
|
178
207
|
|
|
@@ -181,7 +210,7 @@ const createRenderStorageOperations = params => {
|
|
|
181
210
|
table: entity.table,
|
|
182
211
|
items
|
|
183
212
|
});
|
|
184
|
-
return (0, _cleanup.cleanupItems)(entity, results);
|
|
213
|
+
return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
|
|
185
214
|
} catch (ex) {
|
|
186
215
|
throw new _error.default(ex.message || "Could not list render records after links.", ex.code || "LIST_LINKS_RENDER_ERROR", {
|
|
187
216
|
links
|
|
@@ -194,7 +223,7 @@ const createRenderStorageOperations = params => {
|
|
|
194
223
|
where
|
|
195
224
|
} = params;
|
|
196
225
|
const {
|
|
197
|
-
|
|
226
|
+
tenant,
|
|
198
227
|
tag
|
|
199
228
|
} = where;
|
|
200
229
|
|
|
@@ -204,15 +233,16 @@ const createRenderStorageOperations = params => {
|
|
|
204
233
|
|
|
205
234
|
const queryAllParams = {
|
|
206
235
|
entity,
|
|
207
|
-
partitionKey:
|
|
236
|
+
partitionKey: createRenderGSI1PartitionKey(tenant),
|
|
208
237
|
options: {
|
|
238
|
+
index: "GSI1",
|
|
209
239
|
gte: " "
|
|
210
240
|
}
|
|
211
241
|
};
|
|
212
242
|
|
|
213
243
|
try {
|
|
214
244
|
const results = await (0, _query.queryAll)(queryAllParams);
|
|
215
|
-
return (0, _cleanup.cleanupItems)(entity, results);
|
|
245
|
+
return (0, _cleanup.cleanupItems)(entity, results).map(item => item.data);
|
|
216
246
|
} catch (ex) {
|
|
217
247
|
throw new _error.default(ex.message || "Could not list render records.", ex.code || "LIST_RENDER_ERROR", {
|
|
218
248
|
partitionKey: queryAllParams.partitionKey,
|
|
@@ -221,101 +251,114 @@ const createRenderStorageOperations = params => {
|
|
|
221
251
|
}
|
|
222
252
|
};
|
|
223
253
|
|
|
224
|
-
const
|
|
254
|
+
const createTagPathLinks = async params => {
|
|
225
255
|
const {
|
|
226
|
-
|
|
256
|
+
tagPathLinks
|
|
227
257
|
} = params;
|
|
228
|
-
const items =
|
|
229
|
-
return
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
258
|
+
const items = tagPathLinks.map(item => {
|
|
259
|
+
return tagPathLinkEntity.putBatch({
|
|
260
|
+
data: item,
|
|
261
|
+
TYPE: createTagPathLinkType(),
|
|
262
|
+
PK: createTagPathLinkPartitionKey({
|
|
263
|
+
tenant: item.tenant,
|
|
264
|
+
tag: item,
|
|
265
|
+
path: item.path
|
|
266
|
+
}),
|
|
267
|
+
SK: createTagPathLinkSortKey({
|
|
268
|
+
tag: item,
|
|
269
|
+
path: item.path
|
|
270
|
+
}),
|
|
271
|
+
GSI1_PK: createTagPathLinkGSI1PartitionKey({
|
|
272
|
+
tag: item,
|
|
273
|
+
tenant: item.tenant
|
|
234
274
|
}),
|
|
235
|
-
|
|
275
|
+
GSI1_SK: createTagPathLinkGSI1SortKey({
|
|
236
276
|
tag: item,
|
|
237
|
-
|
|
277
|
+
path: item.path
|
|
238
278
|
})
|
|
239
|
-
})
|
|
279
|
+
});
|
|
240
280
|
});
|
|
241
281
|
|
|
242
282
|
try {
|
|
243
283
|
await (0, _batchWrite.batchWriteAll)({
|
|
244
|
-
table:
|
|
284
|
+
table: tagPathLinkEntity.table,
|
|
245
285
|
items
|
|
246
286
|
});
|
|
247
|
-
return
|
|
287
|
+
return tagPathLinks;
|
|
248
288
|
} catch (ex) {
|
|
249
|
-
throw new _error.default(ex.message || "Could not create
|
|
250
|
-
|
|
289
|
+
throw new _error.default(ex.message || "Could not create tagPathLink records.", ex.code || "CREATE_URL_TAG_LINKS_ERROR", {
|
|
290
|
+
tagPathLinks
|
|
251
291
|
});
|
|
252
292
|
}
|
|
253
293
|
};
|
|
254
294
|
|
|
255
|
-
const
|
|
295
|
+
const deleteTagPathLinks = async params => {
|
|
256
296
|
const {
|
|
257
|
-
|
|
297
|
+
tenant,
|
|
258
298
|
tags,
|
|
259
|
-
|
|
299
|
+
path
|
|
260
300
|
} = params;
|
|
261
301
|
const items = tags.map(tag => {
|
|
262
|
-
return
|
|
263
|
-
PK:
|
|
302
|
+
return tagPathLinkEntity.deleteBatch({
|
|
303
|
+
PK: createTagPathLinkPartitionKey({
|
|
264
304
|
tag,
|
|
265
|
-
|
|
305
|
+
tenant,
|
|
306
|
+
path
|
|
266
307
|
}),
|
|
267
|
-
SK:
|
|
308
|
+
SK: createTagPathLinkSortKey({
|
|
268
309
|
tag,
|
|
269
|
-
|
|
310
|
+
path
|
|
270
311
|
})
|
|
271
312
|
});
|
|
272
313
|
});
|
|
273
314
|
|
|
274
315
|
try {
|
|
275
316
|
await (0, _batchWrite.batchWriteAll)({
|
|
276
|
-
table:
|
|
317
|
+
table: tagPathLinkEntity.table,
|
|
277
318
|
items
|
|
278
319
|
});
|
|
279
320
|
} catch (ex) {
|
|
280
|
-
throw new _error.default(ex.message || "Could not delete
|
|
321
|
+
throw new _error.default(ex.message || "Could not delete tagPathLink records.", ex.code || "DELETE_URL_TAG_LINKS_ERROR", {
|
|
281
322
|
tags,
|
|
282
|
-
|
|
283
|
-
|
|
323
|
+
tenant,
|
|
324
|
+
path
|
|
284
325
|
});
|
|
285
326
|
}
|
|
286
327
|
};
|
|
287
328
|
|
|
288
|
-
const
|
|
329
|
+
const listTagPathLinks = async params => {
|
|
289
330
|
const {
|
|
290
331
|
where
|
|
291
332
|
} = params;
|
|
292
333
|
const {
|
|
293
|
-
|
|
334
|
+
tenant,
|
|
294
335
|
tag
|
|
295
336
|
} = where;
|
|
296
|
-
const partitionKey =
|
|
297
|
-
|
|
337
|
+
const partitionKey = createTagPathLinkGSI1PartitionKey({
|
|
338
|
+
tenant,
|
|
298
339
|
tag
|
|
299
340
|
});
|
|
300
|
-
const options = {
|
|
341
|
+
const options = {
|
|
342
|
+
index: "GSI1"
|
|
343
|
+
};
|
|
301
344
|
|
|
302
345
|
if (tag.value) {
|
|
303
|
-
options.beginsWith = `${tag.value}#`;
|
|
346
|
+
options.beginsWith = `${tag.key}#${tag.value}#`;
|
|
304
347
|
} else {
|
|
305
|
-
options.
|
|
348
|
+
options.beginsWith = `${tag.key}#`;
|
|
306
349
|
}
|
|
307
350
|
|
|
308
351
|
const queryAllParams = {
|
|
309
|
-
entity:
|
|
352
|
+
entity: tagPathLinkEntity,
|
|
310
353
|
partitionKey,
|
|
311
354
|
options
|
|
312
355
|
};
|
|
313
356
|
|
|
314
357
|
try {
|
|
315
358
|
const results = await (0, _query.queryAll)(queryAllParams);
|
|
316
|
-
return (0, _cleanup.cleanupItems)(
|
|
359
|
+
return (0, _cleanup.cleanupItems)(tagPathLinkEntity, results).map(item => item.data);
|
|
317
360
|
} catch (ex) {
|
|
318
|
-
throw new _error.default(ex.message || "Could not list
|
|
361
|
+
throw new _error.default(ex.message || "Could not list tagPathLink records.", ex.code || "LIST_TAG_PATH_LINK_ERROR", {
|
|
319
362
|
partitionKey,
|
|
320
363
|
options
|
|
321
364
|
});
|
|
@@ -327,9 +370,9 @@ const createRenderStorageOperations = params => {
|
|
|
327
370
|
deleteRender,
|
|
328
371
|
listRenders,
|
|
329
372
|
getRender,
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
373
|
+
createTagPathLinks,
|
|
374
|
+
deleteTagPathLinks,
|
|
375
|
+
listTagPathLinks
|
|
333
376
|
};
|
|
334
377
|
};
|
|
335
378
|
|
|
@@ -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;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createSettingsStorageOperations = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
+
|
|
14
|
+
var _get = require("@webiny/db-dynamodb/utils/get");
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
|
|
20
|
+
const createSettingsStorageOperations = params => {
|
|
21
|
+
const {
|
|
22
|
+
entity
|
|
23
|
+
} = params;
|
|
24
|
+
|
|
25
|
+
const getSettings = async (variant = "default") => {
|
|
26
|
+
const keys = {
|
|
27
|
+
PK: "PS#SETTINGS",
|
|
28
|
+
SK: variant
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
const result = await (0, _get.get)({
|
|
33
|
+
entity,
|
|
34
|
+
keys
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
if (!result) {
|
|
38
|
+
throw Error();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return result.data;
|
|
42
|
+
} catch (ex) {
|
|
43
|
+
throw new _error.default(ex.message || "Could not load prerendering settings!", ex.code || "GET_SETTINGS_ERROR", {
|
|
44
|
+
keys,
|
|
45
|
+
params
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const saveSettings = async params => {
|
|
51
|
+
const {
|
|
52
|
+
settings,
|
|
53
|
+
variant = "default"
|
|
54
|
+
} = params;
|
|
55
|
+
const keys = {
|
|
56
|
+
PK: "PS#SETTINGS",
|
|
57
|
+
SK: variant
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
await entity.put(_objectSpread(_objectSpread({}, keys), {}, {
|
|
62
|
+
TYPE: "ps.settings",
|
|
63
|
+
data: settings
|
|
64
|
+
}));
|
|
65
|
+
return settings;
|
|
66
|
+
} catch (ex) {
|
|
67
|
+
throw new _error.default(ex.message || "Could not save settings.", ex.code || "SAVE_SETTINGS_ERROR", {
|
|
68
|
+
keys
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return {
|
|
74
|
+
getSettings,
|
|
75
|
+
saveSettings
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
exports.createSettingsStorageOperations = createSettingsStorageOperations;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSettingsStorageOperations","params","entity","getSettings","variant","keys","PK","SK","result","get","Error","data","ex","WebinyError","message","code","saveSettings","settings","put","TYPE"],"sources":["settings.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceSaveSettingsParams,\n PrerenderingServiceSettingsStorageOperations,\n PrerenderingSettings\n} from \"@webiny/api-prerendering-service/types\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\nexport interface CreateSettingsStorageOperationsParams {\n entity: Entity<any>;\n}\n\nexport const createSettingsStorageOperations = (\n params: CreateSettingsStorageOperationsParams\n): PrerenderingServiceSettingsStorageOperations => {\n const { entity } = params;\n\n const getSettings = async (variant = \"default\"): Promise<PrerenderingSettings> => {\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n const result = await get<{ data: PrerenderingSettings }>({\n entity,\n keys\n });\n\n if (!result) {\n throw Error();\n }\n\n return result.data;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not load prerendering settings!\",\n ex.code || \"GET_SETTINGS_ERROR\",\n {\n keys,\n params\n }\n );\n }\n };\n\n const saveSettings = async (params: PrerenderingServiceSaveSettingsParams) => {\n const { settings, variant = \"default\" } = params;\n const keys = {\n PK: \"PS#SETTINGS\",\n SK: variant\n };\n\n try {\n await entity.put({\n ...keys,\n TYPE: \"ps.settings\",\n data: settings\n });\n\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not save settings.\",\n ex.code || \"SAVE_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n return {\n getSettings,\n saveSettings\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAOA;;;;;;AAMO,MAAMA,+BAA+B,GACxCC,MAD2C,IAEI;EAC/C,MAAM;IAAEC;EAAF,IAAaD,MAAnB;;EAEA,MAAME,WAAW,GAAG,OAAOC,OAAO,GAAG,SAAjB,KAA8D;IAC9E,MAAMC,IAAI,GAAG;MACTC,EAAE,EAAE,aADK;MAETC,EAAE,EAAEH;IAFK,CAAb;;IAKA,IAAI;MACA,MAAMI,MAAM,GAAG,MAAM,IAAAC,QAAA,EAAoC;QACrDP,MADqD;QAErDG;MAFqD,CAApC,CAArB;;MAKA,IAAI,CAACG,MAAL,EAAa;QACT,MAAME,KAAK,EAAX;MACH;;MAED,OAAOF,MAAM,CAACG,IAAd;IACH,CAXD,CAWE,OAAOC,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,uCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,oBAFT,EAGF;QACIV,IADJ;QAEIJ;MAFJ,CAHE,CAAN;IAQH;EACJ,CA3BD;;EA6BA,MAAMe,YAAY,GAAG,MAAOf,MAAP,IAAyD;IAC1E,MAAM;MAAEgB,QAAF;MAAYb,OAAO,GAAG;IAAtB,IAAoCH,MAA1C;IACA,MAAMI,IAAI,GAAG;MACTC,EAAE,EAAE,aADK;MAETC,EAAE,EAAEH;IAFK,CAAb;;IAKA,IAAI;MACA,MAAMF,MAAM,CAACgB,GAAP,iCACCb,IADD;QAEFc,IAAI,EAAE,aAFJ;QAGFR,IAAI,EAAEM;MAHJ,GAAN;MAMA,OAAOA,QAAP;IACH,CARD,CAQE,OAAOL,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,0BADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIV;MADJ,CAHE,CAAN;IAOH;EACJ,CAxBD;;EA0BA,OAAO;IACHF,WADG;IAEHa;EAFG,CAAP;AAIH,CAhEM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-prerendering-service-so-ddb",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.29.0-beta.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@babel/runtime": "7.18.3",
|
|
21
|
-
"@webiny/api-prerendering-service": "5.
|
|
22
|
-
"@webiny/error": "5.
|
|
21
|
+
"@webiny/api-prerendering-service": "5.29.0-beta.1",
|
|
22
|
+
"@webiny/error": "5.29.0-beta.1",
|
|
23
23
|
"dynamodb-toolbox": "0.3.5"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"@babel/plugin-proposal-export-default-from": "^7.16.0",
|
|
29
29
|
"@babel/preset-env": "^7.16.4",
|
|
30
30
|
"@babel/preset-typescript": "^7.16.0",
|
|
31
|
-
"@webiny/cli": "^5.
|
|
32
|
-
"@webiny/db": "^5.
|
|
33
|
-
"@webiny/db-dynamodb": "^5.
|
|
34
|
-
"@webiny/handler-aws": "^5.
|
|
35
|
-
"@webiny/project-utils": "^5.
|
|
31
|
+
"@webiny/cli": "^5.29.0-beta.1",
|
|
32
|
+
"@webiny/db": "^5.29.0-beta.1",
|
|
33
|
+
"@webiny/db-dynamodb": "^5.29.0-beta.1",
|
|
34
|
+
"@webiny/handler-aws": "^5.29.0-beta.1",
|
|
35
|
+
"@webiny/project-utils": "^5.29.0-beta.1",
|
|
36
36
|
"jest-dynalite": "^3.3.1",
|
|
37
37
|
"jest-environment-node": "^27.3.0",
|
|
38
38
|
"prettier": "^2.3.2",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
]
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "e4393aa7faa07c7a465ff320d8b4dc51f2f38315"
|
|
59
59
|
}
|
package/types.d.ts
CHANGED
|
@@ -7,15 +7,16 @@ export declare type AttributeDefinition = DynamoDBTypes | EntityAttributeConfig
|
|
|
7
7
|
export declare type Attributes = Record<string, AttributeDefinition>;
|
|
8
8
|
export declare enum ENTITIES {
|
|
9
9
|
RENDER = "PrerenderingServiceRender",
|
|
10
|
+
SETTINGS = "PrerenderingServiceSettings",
|
|
10
11
|
QUEUE_JOB = "PrerenderingServiceQueueJob",
|
|
11
|
-
|
|
12
|
+
TAG_PATH_LINK = "PrerenderingServiceTagPathLink"
|
|
12
13
|
}
|
|
13
14
|
export interface PrerenderingServiceFactoryParams {
|
|
14
15
|
documentClient: DocumentClient;
|
|
15
16
|
table?: TableModifier;
|
|
16
17
|
attributes?: Record<ENTITIES, Attributes>;
|
|
17
18
|
}
|
|
18
|
-
export declare type Entities = "render" | "queueJob" | "
|
|
19
|
+
export declare type Entities = "render" | "queueJob" | "tagPathLink";
|
|
19
20
|
export interface PrerenderingServiceStorageOperations extends BasePrerenderingServiceStorageOperations {
|
|
20
21
|
getTable(): Table;
|
|
21
22
|
getEntities(): Record<Entities, Entity<any>>;
|
|
@@ -26,3 +27,8 @@ export interface PrerenderingServiceFactory {
|
|
|
26
27
|
export interface TableModifier {
|
|
27
28
|
(table: TableConstructor): TableConstructor;
|
|
28
29
|
}
|
|
30
|
+
export interface DataContainer<T> {
|
|
31
|
+
PK: string;
|
|
32
|
+
SK: string;
|
|
33
|
+
data: T;
|
|
34
|
+
}
|
package/types.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.ENTITIES = ENTITIES;
|
|
|
9
9
|
|
|
10
10
|
(function (ENTITIES) {
|
|
11
11
|
ENTITIES["RENDER"] = "PrerenderingServiceRender";
|
|
12
|
+
ENTITIES["SETTINGS"] = "PrerenderingServiceSettings";
|
|
12
13
|
ENTITIES["QUEUE_JOB"] = "PrerenderingServiceQueueJob";
|
|
13
|
-
ENTITIES["
|
|
14
|
+
ENTITIES["TAG_PATH_LINK"] = "PrerenderingServiceTagPathLink";
|
|
14
15
|
})(ENTITIES || (exports.ENTITIES = ENTITIES = {}));
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ENTITIES"],"sources":["types.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table, Entity } from \"dynamodb-toolbox\";\nimport { DynamoDBTypes, TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\nimport {\n EntityAttributeConfig,\n EntityCompositeAttributes\n} from \"dynamodb-toolbox/dist/classes/Entity\";\nimport { PrerenderingServiceStorageOperations as BasePrerenderingServiceStorageOperations } from \"@webiny/api-prerendering-service/types\";\n\nexport type AttributeDefinition = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;\n\nexport type Attributes = Record<string, AttributeDefinition>;\n\nexport enum ENTITIES {\n RENDER = \"PrerenderingServiceRender\",\n QUEUE_JOB = \"PrerenderingServiceQueueJob\",\n
|
|
1
|
+
{"version":3,"names":["ENTITIES"],"sources":["types.ts"],"sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table, Entity } from \"dynamodb-toolbox\";\nimport { DynamoDBTypes, TableConstructor } from \"dynamodb-toolbox/dist/classes/Table\";\nimport {\n EntityAttributeConfig,\n EntityCompositeAttributes\n} from \"dynamodb-toolbox/dist/classes/Entity\";\nimport { PrerenderingServiceStorageOperations as BasePrerenderingServiceStorageOperations } from \"@webiny/api-prerendering-service/types\";\n\nexport type AttributeDefinition = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;\n\nexport type Attributes = Record<string, AttributeDefinition>;\n\nexport enum ENTITIES {\n RENDER = \"PrerenderingServiceRender\",\n SETTINGS = \"PrerenderingServiceSettings\",\n QUEUE_JOB = \"PrerenderingServiceQueueJob\",\n TAG_PATH_LINK = \"PrerenderingServiceTagPathLink\"\n}\n\nexport interface PrerenderingServiceFactoryParams {\n documentClient: DocumentClient;\n table?: TableModifier;\n attributes?: Record<ENTITIES, Attributes>;\n}\n\nexport type Entities = \"render\" | \"queueJob\" | \"tagPathLink\";\n\nexport interface PrerenderingServiceStorageOperations\n extends BasePrerenderingServiceStorageOperations {\n getTable(): Table;\n getEntities(): Record<Entities, Entity<any>>;\n}\n\nexport interface PrerenderingServiceFactory {\n (params: PrerenderingServiceFactoryParams): PrerenderingServiceStorageOperations;\n}\n\nexport interface TableModifier {\n (table: TableConstructor): TableConstructor;\n}\n\nexport interface DataContainer<T> {\n PK: string;\n SK: string;\n data: T;\n}\n"],"mappings":";;;;;;IAaYA,Q;;;WAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;EAAAA,Q;GAAAA,Q,wBAAAA,Q"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createTagUrlLinkEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","namespace","url","value","key"],"sources":["tagUrlLink.ts"],"sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\ninterface CreateTagUrlLinkEntityParams {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createTagUrlLinkEntity = (params: CreateTagUrlLinkEntityParams) => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n namespace: {\n type: \"string\"\n },\n url: {\n type: \"string\"\n },\n value: {\n type: \"string\"\n },\n key: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,sBAAsB,GAAIC,MAAD,IAA0C;EAC5E,MAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAAoCH,MAA1C;EACA,OAAO,IAAII,uBAAJ,CAAW;IACdC,IAAI,EAAEJ,UADQ;IAEdE,KAFc;IAGdD,UAAU;MACNI,EAAE,EAAE;QACAC,YAAY,EAAE;MADd,CADE;MAINC,EAAE,EAAE;QACAC,OAAO,EAAE;MADT,CAJE;MAONC,IAAI,EAAE;QACFC,IAAI,EAAE;MADJ,CAPA;MAUNC,SAAS,EAAE;QACPD,IAAI,EAAE;MADC,CAVL;MAaNE,GAAG,EAAE;QACDF,IAAI,EAAE;MADL,CAbC;MAgBNG,KAAK,EAAE;QACHH,IAAI,EAAE;MADH,CAhBD;MAmBNI,GAAG,EAAE;QACDJ,IAAI,EAAE;MADL;IAnBC,GAsBFT,UAAU,IAAI,EAtBZ;EAHI,CAAX,CAAP;AA4BH,CA9BM"}
|
|
@@ -1 +0,0 @@
|
|
|
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":["index.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,MAD2C,IAEI;EAC/C,MAAM;IAAEC;EAAF,IAAaD,MAAnB;;EAEA,MAAME,0BAA0B,GAAG,MAAc;IAC7C,OAAO,UAAP;EACH,CAFD;;EAGA,MAAMC,qBAAqB,GAAIC,EAAD,IAAwB;IAClD,OAAOA,EAAP;EACH,CAFD;;EAIA,MAAMC,kBAAkB,GAAG,MAAM;IAC7B,OAAO,cAAP;EACH,CAFD;;EAIA,MAAMC,cAAc,GAAG,MACnBN,MADmB,IAEC;IACpB,MAAM;MAAEO;IAAF,IAAeP,MAArB;IACA,MAAMQ,IAAI,GAAG;MACTC,EAAE,EAAEP,0BAA0B,EADrB;MAETQ,EAAE,EAAEP,qBAAqB,CAACI,QAAQ,CAACH,EAAV;IAFhB,CAAb;;IAKA,IAAI;MACA,MAAMH,MAAM,CAACU,GAAP,+CACCJ,QADD,GAECC,IAFD;QAGFI,IAAI,EAAEP,kBAAkB;MAHtB,GAAN;MAKA,OAAOE,QAAP;IACH,CAPD,CAOE,OAAOM,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,iCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;QACIR,IADJ;QAEID;MAFJ,CAHE,CAAN;IAQH;EACJ,CA1BD;;EA4BA,MAAMU,aAAa,GAAG,YAAY;IAC9B,MAAMC,cAA8B,GAAG;MACnCjB,MADmC;MAEnCkB,YAAY,EAAEjB,0BAA0B,EAFL;MAGnCkB,OAAO,EAAE;QACLC,GAAG,EAAE;MADA;IAH0B,CAAvC;;IAQA,IAAI;MACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,eAAA,EAAmBL,cAAnB,CAAtB;MAEA,OAAO,IAAAM,qBAAA,EAAavB,MAAb,EAAqBqB,OAArB,CAAP;IACH,CAJD,CAIE,OAAOT,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,oCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,uBAFT,EAGF;QACIG,YAAY,EAAED,cAAc,CAACC,YADjC;QAEIC,OAAO,EAAEF,cAAc,CAACE;MAF5B,CAHE,CAAN;IAQH;EACJ,CAvBD;;EAyBA,MAAMK,eAAe,GAAG,MACpBzB,MADoB,IAEnB;IACD,MAAM;MAAE0B;IAAF,IAAgB1B,MAAtB;IAEA,MAAM2B,KAAK,GAAGD,SAAS,CAACE,GAAV,CAAcC,GAAG,IAAI;MAC/B,OAAO5B,MAAM,CAAC6B,WAAP,CAAmB;QACtBrB,EAAE,EAAEP,0BAA0B,EADR;QAEtBQ,EAAE,EAAEP,qBAAqB,CAAC0B,GAAG,CAACzB,EAAL;MAFH,CAAnB,CAAP;IAIH,CALa,CAAd;;IAOA,IAAI;MACA,MAAM,IAAA2B,yBAAA,EAAc;QAChBC,KAAK,EAAE/B,MAAM,CAAC+B,KADE;QAEhBL;MAFgB,CAAd,CAAN;MAIA,OAAOD,SAAP;IACH,CAND,CAME,OAAOb,EAAP,EAAW;MACT,MAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,sCADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,yBAFT,EAGF;QACIU;MADJ,CAHE,CAAN;IAOH;EACJ,CA3BD;;EA6BA,OAAO;IACHpB,cADG;IAEHmB,eAFG;IAGHR;EAHG,CAAP;AAKH,CAvGM"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createRenderStorageOperations","params","entity","tagUrlLinkEntity","createRenderPartitionKey","namespace","startsWith","replace","createRenderSortKey","url","createRenderType","createTagUrlLinkPartitionKey","tag","key","createTagUrlLinkSortKey","values","value","push","join","createTagUrlLinkType","getRender","where","keys","PK","SK","result","get","cleanupItem","ex","WebinyError","message","code","createRender","render","put","TYPE","deleteRender","delete","listRendersByTag","links","listTagUrlLinks","items","map","link","getBatch","results","batchReadAll","table","cleanupItems","listRenders","queryAllParams","partitionKey","options","gte","queryAll","createTagUrlLinks","tagUrlLinks","item","putBatch","batchWriteAll","deleteTagUrlLinks","tags","deleteBatch","beginsWith"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n PrerenderingServiceRenderStorageOperations,\n PrerenderingServiceStorageOperationsCreateRenderParams,\n PrerenderingServiceStorageOperationsCreateTagUrlLinksParams,\n PrerenderingServiceStorageOperationsDeleteRenderParams,\n PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams,\n PrerenderingServiceStorageOperationsGetRenderParams,\n PrerenderingServiceStorageOperationsListRendersParams,\n PrerenderingServiceStorageOperationsListTagUrlLinksParams,\n Render,\n TagUrlLink\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/queue/add/types\";\nimport { cleanupItem, cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { queryOptions as DynamoDBToolboxQueryOptions } from \"dynamodb-toolbox/dist/classes/Table\";\n\nexport interface CreateRenderStorageOperationsParams {\n entity: Entity<any>;\n tagUrlLinkEntity: Entity<any>;\n}\n\nexport interface CreateTagUrlLinkPartitionKeyParams {\n namespace: string;\n tag: Pick<Tag, \"key\">;\n}\n\nexport interface CreateTagUrlLinkSortKeyParams {\n tag: Tag;\n url?: string;\n}\n\nexport const createRenderStorageOperations = (\n params: CreateRenderStorageOperationsParams\n): PrerenderingServiceRenderStorageOperations => {\n const { entity, tagUrlLinkEntity } = params;\n\n const createRenderPartitionKey = (namespace: string): string => {\n /**\n * For backwards compatibility remove the T# if it exists.\n */\n if (namespace.startsWith(\"T#\")) {\n namespace = namespace.replace(/^T#/, \"\");\n }\n return `T#${namespace}#PS#RENDER`;\n };\n\n const createRenderSortKey = (url: string): string => {\n return url;\n };\n\n const createRenderType = (): string => {\n return \"ps.render\";\n };\n\n const createTagUrlLinkPartitionKey = (params: CreateTagUrlLinkPartitionKeyParams): string => {\n const { tag } = params;\n let { namespace } = params;\n if (namespace.startsWith(\"T#\")) {\n namespace = namespace.replace(/^T#/, \"\");\n }\n return `T#${namespace}#PS#TAG#${tag.key}`;\n };\n\n const createTagUrlLinkSortKey = (params: CreateTagUrlLinkSortKeyParams): string => {\n const { tag, url } = params;\n const values = [tag.value];\n if (url) {\n values.push(url);\n }\n return values.join(\"#\");\n };\n\n const createTagUrlLinkType = (): string => {\n return \"ps.tagUrlLink\";\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.namespace),\n SK: createRenderSortKey(where.url)\n };\n\n try {\n const result = await get<Render>({\n entity,\n keys\n });\n return cleanupItem(entity, result);\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.namespace),\n SK: createRenderSortKey(render.url)\n };\n\n try {\n await entity.put({\n ...render,\n ...keys,\n TYPE: createRenderType()\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.namespace),\n SK: createRenderSortKey(render.url)\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 { namespace, 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 listTagUrlLinks({\n where: {\n namespace,\n tag\n }\n });\n\n const items = links.map(link => {\n return entity.getBatch({\n PK: createRenderPartitionKey(namespace),\n SK: createRenderSortKey(link.url)\n });\n });\n try {\n const results = await batchReadAll<Render>({\n table: entity.table,\n items\n });\n return cleanupItems(entity, results);\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 { namespace, tag } = where;\n\n if (tag) {\n return listRendersByTag(params);\n }\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createRenderPartitionKey(namespace),\n options: {\n gte: \" \"\n }\n };\n\n try {\n const results = await queryAll<Render>(queryAllParams);\n\n return cleanupItems(entity, results);\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 createTagUrlLinks = async (\n params: PrerenderingServiceStorageOperationsCreateTagUrlLinksParams\n ) => {\n const { tagUrlLinks } = params;\n\n const items = tagUrlLinks.map(item => {\n return tagUrlLinkEntity.putBatch({\n ...item,\n TYPE: createTagUrlLinkType(),\n PK: createTagUrlLinkPartitionKey({\n namespace: item.namespace,\n tag: item\n }),\n SK: createTagUrlLinkSortKey({\n tag: item,\n url: item.url\n })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagUrlLinkEntity.table,\n items\n });\n return tagUrlLinks;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create tagUrlLink records.\",\n ex.code || \"CREATE_URL_TAG_LINKS_ERROR\",\n {\n tagUrlLinks\n }\n );\n }\n };\n\n const deleteTagUrlLinks = async (\n params: PrerenderingServiceStorageOperationsDeleteTagUrlLinksParams\n ): Promise<void> => {\n const { namespace, tags, url } = params;\n const items = tags.map(tag => {\n return tagUrlLinkEntity.deleteBatch({\n PK: createTagUrlLinkPartitionKey({\n tag,\n namespace\n }),\n SK: createTagUrlLinkSortKey({\n tag,\n url\n })\n });\n });\n\n try {\n await batchWriteAll({\n table: tagUrlLinkEntity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete tagUrlLink records.\",\n ex.code || \"DELETE_URL_TAG_LINKS_ERROR\",\n {\n tags,\n namespace,\n url\n }\n );\n }\n };\n\n const listTagUrlLinks = async (\n params: PrerenderingServiceStorageOperationsListTagUrlLinksParams\n ) => {\n const { where } = params;\n const { namespace, tag } = where;\n\n const partitionKey = createTagUrlLinkPartitionKey({\n namespace,\n tag\n });\n\n const options: DynamoDBToolboxQueryOptions = {};\n if (tag.value) {\n options.beginsWith = `${tag.value}#`;\n } else {\n options.gte = \" \";\n }\n\n const queryAllParams: QueryAllParams = {\n entity: tagUrlLinkEntity,\n partitionKey,\n options\n };\n\n try {\n const results = await queryAll<TagUrlLink>(queryAllParams);\n\n return cleanupItems(tagUrlLinkEntity, results);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list tagUrlLink records.\",\n ex.code || \"LIST_TAG_URL_LINK_ERROR\",\n {\n partitionKey,\n options\n }\n );\n }\n };\n\n return {\n createRender,\n deleteRender,\n listRenders,\n getRender,\n createTagUrlLinks,\n deleteTagUrlLinks,\n listTagUrlLinks\n };\n};\n"],"mappings":"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"}
|