@webiny/db-dynamodb 6.0.0-alpha.5 → 6.0.0-rc.0
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/DynamoDbDriver.d.ts +4 -8
- package/DynamoDbDriver.js +71 -102
- package/DynamoDbDriver.js.map +1 -1
- package/README.md +6 -142
- package/index.d.ts +4 -3
- package/index.js +4 -28
- package/index.js.map +1 -1
- package/package.json +18 -20
- package/plugins/definitions/AttributePlugin.d.ts +1 -1
- package/plugins/definitions/AttributePlugin.js +4 -12
- package/plugins/definitions/AttributePlugin.js.map +1 -1
- package/plugins/definitions/DateTimeTransformPlugin.d.ts +2 -2
- package/plugins/definitions/DateTimeTransformPlugin.js +6 -14
- package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -1
- package/plugins/definitions/FieldPathPlugin.js +6 -14
- package/plugins/definitions/FieldPathPlugin.js.map +1 -1
- package/plugins/definitions/FieldPlugin.d.ts +1 -1
- package/plugins/definitions/FieldPlugin.js +2 -9
- package/plugins/definitions/FieldPlugin.js.map +1 -1
- package/plugins/definitions/TimeTransformPlugin.d.ts +2 -2
- package/plugins/definitions/TimeTransformPlugin.js +7 -15
- package/plugins/definitions/TimeTransformPlugin.js.map +1 -1
- package/plugins/definitions/ValueFilterPlugin.js +5 -13
- package/plugins/definitions/ValueFilterPlugin.js.map +1 -1
- package/plugins/definitions/ValueTransformPlugin.js +6 -14
- package/plugins/definitions/ValueTransformPlugin.js.map +1 -1
- package/plugins/definitions/assignFields.js +4 -12
- package/plugins/definitions/assignFields.js.map +1 -1
- package/plugins/filters/andIn.d.ts +1 -1
- package/plugins/filters/andIn.js +5 -12
- package/plugins/filters/andIn.js.map +1 -1
- package/plugins/filters/between.d.ts +1 -1
- package/plugins/filters/between.js +5 -12
- package/plugins/filters/between.js.map +1 -1
- package/plugins/filters/contains.d.ts +1 -1
- package/plugins/filters/contains.js +3 -9
- package/plugins/filters/contains.js.map +1 -1
- package/plugins/filters/eq.d.ts +1 -1
- package/plugins/filters/eq.js +3 -9
- package/plugins/filters/eq.js.map +1 -1
- package/plugins/filters/fuzzy.d.ts +1 -1
- package/plugins/filters/fuzzy.js +5 -12
- package/plugins/filters/fuzzy.js.map +1 -1
- package/plugins/filters/gt.d.ts +1 -1
- package/plugins/filters/gt.js +3 -9
- package/plugins/filters/gt.js.map +1 -1
- package/plugins/filters/gte.d.ts +1 -1
- package/plugins/filters/gte.js +3 -9
- package/plugins/filters/gte.js.map +1 -1
- package/plugins/filters/in.d.ts +1 -1
- package/plugins/filters/in.js +5 -12
- package/plugins/filters/in.js.map +1 -1
- package/plugins/filters/index.d.ts +1 -1
- package/plugins/filters/index.js +12 -20
- package/plugins/filters/index.js.map +1 -1
- package/plugins/filters/lt.d.ts +1 -1
- package/plugins/filters/lt.js +3 -9
- package/plugins/filters/lt.js.map +1 -1
- package/plugins/filters/lte.d.ts +1 -1
- package/plugins/filters/lte.js +3 -9
- package/plugins/filters/lte.js.map +1 -1
- package/plugins/filters/startsWith.d.ts +1 -1
- package/plugins/filters/startsWith.js +3 -9
- package/plugins/filters/startsWith.js.map +1 -1
- package/plugins/index.d.ts +9 -1
- package/plugins/index.js +11 -11
- package/plugins/index.js.map +1 -1
- package/store/entity.d.ts +4 -76
- package/store/entity.js +5 -35
- package/store/entity.js.map +1 -1
- package/store/keys.d.ts +1 -1
- package/store/keys.js +7 -13
- package/store/keys.js.map +1 -1
- package/store/types.d.ts +3 -4
- package/store/types.js +1 -5
- package/store/types.js.map +1 -1
- package/toolbox.d.ts +7 -2
- package/toolbox.js +2 -17
- package/toolbox.js.map +1 -1
- package/types.js +1 -5
- package/utils/attributes.d.ts +2 -2
- package/utils/attributes.js +4 -12
- package/utils/attributes.js.map +1 -1
- package/utils/batch/batchRead.d.ts +2 -2
- package/utils/batch/batchRead.js +5 -13
- package/utils/batch/batchRead.js.map +1 -1
- package/utils/batch/batchWrite.d.ts +2 -2
- package/utils/batch/batchWrite.js +3 -11
- package/utils/batch/batchWrite.js.map +1 -1
- package/utils/batch/index.d.ts +3 -3
- package/utils/batch/index.js +3 -38
- package/utils/batch/index.js.map +1 -1
- package/utils/batch/types.d.ts +7 -2
- package/utils/batch/types.js +1 -5
- package/utils/batch/types.js.map +1 -1
- package/utils/cleanup.d.ts +1 -1
- package/utils/cleanup.js +3 -10
- package/utils/cleanup.js.map +1 -1
- package/utils/count.d.ts +1 -1
- package/utils/count.js +1 -8
- package/utils/count.js.map +1 -1
- package/utils/createEntity.d.ts +36 -54
- package/utils/createEntity.js +75 -51
- package/utils/createEntity.js.map +1 -1
- package/utils/createTable.d.ts +10 -7
- package/utils/createTable.js +25 -15
- package/utils/createTable.js.map +1 -1
- package/utils/cursor.js +2 -10
- package/utils/cursor.js.map +1 -1
- package/utils/delete.d.ts +1 -1
- package/utils/delete.js +1 -8
- package/utils/delete.js.map +1 -1
- package/utils/entity/Entity.d.ts +23 -21
- package/utils/entity/Entity.js +56 -34
- package/utils/entity/Entity.js.map +1 -1
- package/utils/entity/EntityReadBatch.d.ts +9 -8
- package/utils/entity/EntityReadBatch.js +14 -16
- package/utils/entity/EntityReadBatch.js.map +1 -1
- package/utils/entity/EntityReadBatchBuilder.d.ts +4 -4
- package/utils/entity/EntityReadBatchBuilder.js +7 -15
- package/utils/entity/EntityReadBatchBuilder.js.map +1 -1
- package/utils/entity/EntityWriteBatch.d.ts +9 -8
- package/utils/entity/EntityWriteBatch.js +10 -18
- package/utils/entity/EntityWriteBatch.js.map +1 -1
- package/utils/entity/EntityWriteBatchBuilder.d.ts +4 -4
- package/utils/entity/EntityWriteBatchBuilder.js +4 -12
- package/utils/entity/EntityWriteBatchBuilder.js.map +1 -1
- package/utils/entity/getEntity.d.ts +2 -2
- package/utils/entity/getEntity.js +3 -10
- package/utils/entity/getEntity.js.map +1 -1
- package/utils/entity/index.d.ts +7 -7
- package/utils/entity/index.js +7 -82
- package/utils/entity/index.js.map +1 -1
- package/utils/entity/types.d.ts +46 -22
- package/utils/entity/types.js +2 -5
- package/utils/entity/types.js.map +1 -1
- package/utils/filter.d.ts +1 -1
- package/utils/filter.js +7 -14
- package/utils/filter.js.map +1 -1
- package/utils/get.d.ts +1 -1
- package/utils/get.js +4 -12
- package/utils/get.js.map +1 -1
- package/utils/index.d.ts +17 -17
- package/utils/index.js +17 -192
- package/utils/index.js.map +1 -1
- package/utils/listResponse.js +4 -10
- package/utils/listResponse.js.map +1 -1
- package/utils/put.d.ts +2 -2
- package/utils/put.js +1 -8
- package/utils/put.js.map +1 -1
- package/utils/query.d.ts +5 -12
- package/utils/query.js +13 -27
- package/utils/query.js.map +1 -1
- package/utils/scan.d.ts +2 -2
- package/utils/scan.js +5 -13
- package/utils/scan.js.map +1 -1
- package/utils/sort.d.ts +1 -1
- package/utils/sort.js +7 -14
- package/utils/sort.js.map +1 -1
- package/utils/table/Table.d.ts +4 -5
- package/utils/table/Table.js +9 -20
- package/utils/table/Table.js.map +1 -1
- package/utils/table/TableReadBatch.d.ts +4 -4
- package/utils/table/TableReadBatch.js +8 -16
- package/utils/table/TableReadBatch.js.map +1 -1
- package/utils/table/TableWriteBatch.d.ts +3 -3
- package/utils/table/TableWriteBatch.js +6 -14
- package/utils/table/TableWriteBatch.js.map +1 -1
- package/utils/table/index.d.ts +4 -4
- package/utils/table/index.js +4 -49
- package/utils/table/index.js.map +1 -1
- package/utils/table/types.d.ts +8 -8
- package/utils/table/types.js +1 -5
- package/utils/table/types.js.map +1 -1
- package/utils/update.d.ts +1 -1
- package/utils/update.js +1 -8
- package/utils/update.js.map +1 -1
package/utils/entity/types.d.ts
CHANGED
|
@@ -1,35 +1,57 @@
|
|
|
1
1
|
import type { Entity as BaseEntity } from "dynamodb-toolbox";
|
|
2
|
-
import type { BatchWriteItem, BatchWriteResult, IDeleteBatchItem, IPutBatchItem } from "
|
|
3
|
-
import type { GenericRecord } from "@webiny/api/types";
|
|
4
|
-
import type { TableDef } from "../../toolbox";
|
|
5
|
-
import type { ITableWriteBatch } from "
|
|
6
|
-
import type { IPutParamsItem, put } from "
|
|
7
|
-
import type
|
|
8
|
-
import type { get, getClean, GetRecordParamsKeys } from "
|
|
9
|
-
import type { deleteItem, IDeleteItemKeys } from "
|
|
10
|
-
import type { batchReadAll } from "
|
|
2
|
+
import type { BatchWriteItem, BatchWriteResult, IDeleteBatchItem, IPutBatchItem } from "../../utils/batch/types.js";
|
|
3
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
4
|
+
import type { TableDef } from "../../toolbox.js";
|
|
5
|
+
import type { ITableWriteBatch } from "../../utils/table/types.js";
|
|
6
|
+
import type { IPutParamsItem, put } from "../../utils/put.js";
|
|
7
|
+
import { queryAll, queryAllClean, type QueryAllParams, queryOne, queryOneClean, type QueryOneParams } from "../../utils/query.js";
|
|
8
|
+
import type { get, getClean, GetRecordParamsKeys } from "../../utils/get.js";
|
|
9
|
+
import type { deleteItem, IDeleteItemKeys } from "../../utils/delete.js";
|
|
10
|
+
import type { batchReadAll, BatchReadItem } from "../../utils/batch/batchRead.js";
|
|
11
|
+
import type { IEntityWriteBatchParams } from "./EntityWriteBatch.js";
|
|
12
|
+
import type { IEntityReadBatchParams } from "./EntityReadBatch.js";
|
|
13
|
+
import { queryPerPage } from "../../utils/index.js";
|
|
11
14
|
export type IEntityQueryOneParams = Omit<QueryOneParams, "entity">;
|
|
12
15
|
export type IEntityQueryAllParams = Omit<QueryAllParams, "entity">;
|
|
13
|
-
export
|
|
16
|
+
export type IEntityQueryPerPageParams = Omit<QueryAllParams, "entity">;
|
|
17
|
+
export interface IEntityCreateEntityWriterParams<T = GenericRecord> extends Omit<IEntityWriteBatchParams<T>, "entity"> {
|
|
18
|
+
}
|
|
19
|
+
export interface IEntityCreateEntityReaderParams extends Omit<IEntityReadBatchParams, "entity"> {
|
|
20
|
+
}
|
|
21
|
+
export type IEntityPutResult = ReturnType<typeof put>;
|
|
22
|
+
export type IEntityGetResult<T> = ReturnType<typeof get<T>>;
|
|
23
|
+
export type IEntityGetCleanResult<T> = ReturnType<typeof getClean<T>>;
|
|
24
|
+
export type IEntityDeleteResult = ReturnType<typeof deleteItem>;
|
|
25
|
+
export type IEntityQueryOneResult<T> = ReturnType<typeof queryOne<T>>;
|
|
26
|
+
export type IEntityQueryOneCleanResult<T> = ReturnType<typeof queryOneClean<T>>;
|
|
27
|
+
export type IEntityQueryAllResult<T> = ReturnType<typeof queryAll<T>>;
|
|
28
|
+
export type IEntityQueryAllCleanResult<T> = ReturnType<typeof queryAllClean<T>>;
|
|
29
|
+
export type IEntityQueryPerPageResult<T> = ReturnType<typeof queryPerPage<T>>;
|
|
30
|
+
export interface IEntity<T extends GenericRecord = GenericRecord> {
|
|
14
31
|
readonly entity: BaseEntity;
|
|
15
|
-
|
|
16
|
-
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly table: TableDef;
|
|
34
|
+
createEntityReader(params?: IEntityCreateEntityReaderParams): IEntityReadBatch<T>;
|
|
35
|
+
createEntityWriter(params?: IEntityCreateEntityWriterParams<T>): IEntityWriteBatch<T>;
|
|
17
36
|
createTableWriter(): ITableWriteBatch;
|
|
18
|
-
put
|
|
19
|
-
get<T>(keys: GetRecordParamsKeys):
|
|
20
|
-
getClean<T>(keys: GetRecordParamsKeys):
|
|
21
|
-
delete(keys: IDeleteItemKeys):
|
|
22
|
-
queryOne<T>(params: IEntityQueryOneParams):
|
|
23
|
-
|
|
37
|
+
put(item: IPutParamsItem<T>): IEntityPutResult;
|
|
38
|
+
get<R extends T = T>(keys: GetRecordParamsKeys): IEntityGetResult<R>;
|
|
39
|
+
getClean<R extends T = T>(keys: GetRecordParamsKeys): IEntityGetCleanResult<R>;
|
|
40
|
+
delete(keys: IDeleteItemKeys): IEntityDeleteResult;
|
|
41
|
+
queryOne<R extends T = T>(params: IEntityQueryOneParams): IEntityQueryOneResult<R>;
|
|
42
|
+
queryOneClean<R extends T = T>(params: IEntityQueryOneParams): IEntityQueryOneCleanResult<R>;
|
|
43
|
+
queryAll<R extends T = T>(params: IEntityQueryAllParams): IEntityQueryAllResult<R>;
|
|
44
|
+
queryAllClean<R extends T = T>(params: IEntityQueryAllParams): IEntityQueryAllCleanResult<R>;
|
|
45
|
+
queryPerPage<R extends T = T>(params: IEntityQueryPerPageParams): IEntityQueryPerPageResult<R>;
|
|
24
46
|
}
|
|
25
47
|
export interface IEntityWriteBatchBuilder {
|
|
26
48
|
put<T extends Record<string, any>>(item: IPutBatchItem<T>): BatchWriteItem;
|
|
27
49
|
delete(item: IDeleteBatchItem): BatchWriteItem;
|
|
28
50
|
}
|
|
29
|
-
export interface IEntityWriteBatch {
|
|
51
|
+
export interface IEntityWriteBatch<T = GenericRecord> {
|
|
30
52
|
readonly total: number;
|
|
31
53
|
readonly items: BatchWriteItem[];
|
|
32
|
-
put(item: IPutBatchItem): void;
|
|
54
|
+
put(item: IPutBatchItem<T>): void;
|
|
33
55
|
delete(item: IDeleteBatchItem): void;
|
|
34
56
|
execute(): Promise<BatchWriteResult>;
|
|
35
57
|
combine(items: BatchWriteItem[]): ITableWriteBatch;
|
|
@@ -38,9 +60,11 @@ export interface IEntityReadBatchKey {
|
|
|
38
60
|
PK: string;
|
|
39
61
|
SK: string;
|
|
40
62
|
}
|
|
41
|
-
export interface IEntityReadBatch {
|
|
63
|
+
export interface IEntityReadBatch<T = GenericRecord> {
|
|
64
|
+
readonly total: number;
|
|
65
|
+
readonly items: BatchReadItem[];
|
|
42
66
|
get(input: IEntityReadBatchKey | IEntityReadBatchKey[]): void;
|
|
43
|
-
execute
|
|
67
|
+
execute(): ReturnType<typeof batchReadAll<T>>;
|
|
44
68
|
}
|
|
45
69
|
export interface IEntityReadBatchBuilderGetResponse {
|
|
46
70
|
Table: TableDef;
|
package/utils/entity/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { Entity as BaseEntity } from \"dynamodb-toolbox\";\nimport type {\n BatchWriteItem,\n BatchWriteResult,\n IDeleteBatchItem,\n IPutBatchItem\n} from \"~/utils/batch/types\";\nimport type { GenericRecord } from \"@webiny/api/types\";\nimport type { TableDef } from \"~/toolbox\";\nimport type { ITableWriteBatch } from \"~/utils/table/types\";\nimport type { IPutParamsItem, put } from \"~/utils/put\";\nimport type
|
|
1
|
+
{"version":3,"names":["queryAll","queryAllClean","queryOne","queryOneClean","queryPerPage"],"sources":["types.ts"],"sourcesContent":["import type { Entity as BaseEntity } from \"dynamodb-toolbox\";\nimport type {\n BatchWriteItem,\n BatchWriteResult,\n IDeleteBatchItem,\n IPutBatchItem\n} from \"~/utils/batch/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { TableDef } from \"~/toolbox.js\";\nimport type { ITableWriteBatch } from \"~/utils/table/types.js\";\nimport type { IPutParamsItem, put } from \"~/utils/put.js\";\nimport {\n queryAll,\n queryAllClean,\n type QueryAllParams,\n queryOne,\n queryOneClean,\n type QueryOneParams\n} from \"~/utils/query.js\";\nimport type { get, getClean, GetRecordParamsKeys } from \"~/utils/get.js\";\nimport type { deleteItem, IDeleteItemKeys } from \"~/utils/delete.js\";\nimport type { batchReadAll, BatchReadItem } from \"~/utils/batch/batchRead.js\";\nimport type { IEntityWriteBatchParams } from \"./EntityWriteBatch.js\";\nimport type { IEntityReadBatchParams } from \"./EntityReadBatch.js\";\nimport { queryPerPage } from \"~/utils/index.js\";\n\nexport type IEntityQueryOneParams = Omit<QueryOneParams, \"entity\">;\n\nexport type IEntityQueryAllParams = Omit<QueryAllParams, \"entity\">;\nexport type IEntityQueryPerPageParams = Omit<QueryAllParams, \"entity\">;\n\nexport interface IEntityCreateEntityWriterParams<T = GenericRecord>\n extends Omit<IEntityWriteBatchParams<T>, \"entity\"> {}\nexport interface IEntityCreateEntityReaderParams extends Omit<IEntityReadBatchParams, \"entity\"> {}\n\nexport type IEntityPutResult = ReturnType<typeof put>;\nexport type IEntityGetResult<T> = ReturnType<typeof get<T>>;\nexport type IEntityGetCleanResult<T> = ReturnType<typeof getClean<T>>;\nexport type IEntityDeleteResult = ReturnType<typeof deleteItem>;\nexport type IEntityQueryOneResult<T> = ReturnType<typeof queryOne<T>>;\nexport type IEntityQueryOneCleanResult<T> = ReturnType<typeof queryOneClean<T>>;\nexport type IEntityQueryAllResult<T> = ReturnType<typeof queryAll<T>>;\nexport type IEntityQueryAllCleanResult<T> = ReturnType<typeof queryAllClean<T>>;\nexport type IEntityQueryPerPageResult<T> = ReturnType<typeof queryPerPage<T>>;\n\nexport interface IEntity<T extends GenericRecord = GenericRecord> {\n readonly entity: BaseEntity;\n readonly name: string;\n readonly table: TableDef;\n createEntityReader(params?: IEntityCreateEntityReaderParams): IEntityReadBatch<T>;\n createEntityWriter(params?: IEntityCreateEntityWriterParams<T>): IEntityWriteBatch<T>;\n createTableWriter(): ITableWriteBatch;\n put(item: IPutParamsItem<T>): IEntityPutResult;\n get<R extends T = T>(keys: GetRecordParamsKeys): IEntityGetResult<R>;\n getClean<R extends T = T>(keys: GetRecordParamsKeys): IEntityGetCleanResult<R>;\n delete(keys: IDeleteItemKeys): IEntityDeleteResult;\n queryOne<R extends T = T>(params: IEntityQueryOneParams): IEntityQueryOneResult<R>;\n queryOneClean<R extends T = T>(params: IEntityQueryOneParams): IEntityQueryOneCleanResult<R>;\n queryAll<R extends T = T>(params: IEntityQueryAllParams): IEntityQueryAllResult<R>;\n queryAllClean<R extends T = T>(params: IEntityQueryAllParams): IEntityQueryAllCleanResult<R>;\n queryPerPage<R extends T = T>(params: IEntityQueryPerPageParams): IEntityQueryPerPageResult<R>;\n}\n\nexport interface IEntityWriteBatchBuilder {\n // readonly entity: Entity;\n put<T extends Record<string, any>>(item: IPutBatchItem<T>): BatchWriteItem;\n delete(item: IDeleteBatchItem): BatchWriteItem;\n}\n\nexport interface IEntityWriteBatch<T = GenericRecord> {\n readonly total: number;\n readonly items: BatchWriteItem[];\n\n put(item: IPutBatchItem<T>): void;\n delete(item: IDeleteBatchItem): void;\n execute(): Promise<BatchWriteResult>;\n combine(items: BatchWriteItem[]): ITableWriteBatch;\n}\n\nexport interface IEntityReadBatchKey {\n PK: string;\n SK: string;\n}\n\nexport interface IEntityReadBatch<T = GenericRecord> {\n readonly total: number;\n readonly items: BatchReadItem[];\n get(input: IEntityReadBatchKey | IEntityReadBatchKey[]): void;\n execute(): ReturnType<typeof batchReadAll<T>>;\n}\n\nexport interface IEntityReadBatchBuilderGetResponse {\n Table: TableDef;\n Key: IEntityReadBatchKey;\n}\n\nexport interface IEntityReadBatchBuilder {\n get(item: IEntityReadBatchKey): IEntityReadBatchBuilderGetResponse;\n}\n"],"mappings":"AAWA,SACIA,QAAQ,EACRC,aAAa,EAEbC,QAAQ,EACRC,aAAa;AAQjB,SAASC,YAAY","ignoreList":[]}
|
package/utils/filter.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PluginsContainer } from "@webiny/plugins";
|
|
2
|
-
import type { FieldPlugin } from "../plugins/definitions/FieldPlugin";
|
|
2
|
+
import type { FieldPlugin } from "../plugins/definitions/FieldPlugin.js";
|
|
3
3
|
export interface Params<T = any> {
|
|
4
4
|
plugins: PluginsContainer;
|
|
5
5
|
items: T[];
|
package/utils/filter.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.filterItems = filterItems;
|
|
8
|
-
var _dotProp = _interopRequireDefault(require("dot-prop"));
|
|
9
|
-
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
|
-
var _ValueFilterPlugin = require("../plugins/definitions/ValueFilterPlugin");
|
|
1
|
+
import dotProp from "dot-prop";
|
|
2
|
+
import WebinyError from "@webiny/error";
|
|
3
|
+
import { ValueFilterPlugin } from "../plugins/definitions/ValueFilterPlugin.js";
|
|
11
4
|
const getMappedPlugins = params => {
|
|
12
5
|
return params.plugins.byType(params.type).reduce((plugins, plugin) => {
|
|
13
6
|
/**
|
|
@@ -44,7 +37,7 @@ const findFilterPlugin = (plugins, operation) => {
|
|
|
44
37
|
if (plugins[operation]) {
|
|
45
38
|
return plugins[operation];
|
|
46
39
|
}
|
|
47
|
-
throw new
|
|
40
|
+
throw new WebinyError(`Missing filter plugin definition.`, "FILTER_PLUGIN_ERROR", {
|
|
48
41
|
operation
|
|
49
42
|
});
|
|
50
43
|
};
|
|
@@ -64,7 +57,7 @@ const createFilters = params => {
|
|
|
64
57
|
}
|
|
65
58
|
const filterPlugins = getMappedPlugins({
|
|
66
59
|
plugins,
|
|
67
|
-
type:
|
|
60
|
+
type: ValueFilterPlugin.type,
|
|
68
61
|
property: "operation"
|
|
69
62
|
});
|
|
70
63
|
return keys.reduce((filters, key) => {
|
|
@@ -152,7 +145,7 @@ const createFilterCallable = params => {
|
|
|
152
145
|
return item => {
|
|
153
146
|
for (const filter of filters) {
|
|
154
147
|
const result = filter.paths.some(path => {
|
|
155
|
-
const value = transform(
|
|
148
|
+
const value = transform(dotProp.get(item, path), filter.transformValue);
|
|
156
149
|
const compareValue = transform(filter.compareValue, filter.transformValue);
|
|
157
150
|
const matched = filter.filterPlugin.matches({
|
|
158
151
|
value,
|
|
@@ -167,7 +160,7 @@ const createFilterCallable = params => {
|
|
|
167
160
|
return true;
|
|
168
161
|
};
|
|
169
162
|
};
|
|
170
|
-
function filterItems(params) {
|
|
163
|
+
export function filterItems(params) {
|
|
171
164
|
const filter = createFilterCallable(params);
|
|
172
165
|
/**
|
|
173
166
|
* No point in going through all the items when there are no filters to be applied.
|
package/utils/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dotProp","_interopRequireDefault","require","_error","_ValueFilterPlugin","getMappedPlugins","params","plugins","byType","type","reduce","plugin","op","property","extractWhereArgs","key","result","split","field","shift","rawOp","length","join","operation","negate","match","replace","findFilterPlugin","WebinyError","multiSearchFieldOperations","createFilters","where","fields","keys","Object","filterPlugins","ValueFilterPlugin","filters","compareValue","undefined","includes","data","transformValue","paths","map","fieldPlugin","find","getField","value","getPath","filterPlugin","push","path","transform","Array","isArray","v","createFilterCallable","item","filter","some","dotProp","get","matched","matches","filterItems","items"],"sources":["filter.ts"],"sourcesContent":["import dotProp from \"dot-prop\";\nimport WebinyError from \"@webiny/error\";\nimport type { Plugin, PluginsContainer } from \"@webiny/plugins\";\nimport { ValueFilterPlugin } from \"~/plugins/definitions/ValueFilterPlugin\";\nimport type { FieldPlugin } from \"~/plugins/definitions/FieldPlugin\";\nimport type { DynamoDbContainsFilter } from \"~/types\";\n\ntype TransformValue = (value: any) => any;\n\nexport interface Params<T = any> {\n plugins: PluginsContainer;\n items: T[];\n where: Record<string, any>;\n /**\n * An array of fields that require some special operation.\n */\n fields: FieldPlugin[];\n}\n\ninterface MappedPluginParams<T extends Plugin = Plugin> {\n plugins: PluginsContainer;\n type: string;\n property: keyof T;\n}\n\ninterface Filter {\n operation: string;\n compareValue: any;\n filterPlugin: ValueFilterPlugin;\n transformValue?: TransformValue;\n paths: string[];\n negate: boolean;\n}\n\nconst getMappedPlugins = <T extends Plugin>(params: MappedPluginParams<T>): Record<string, T> => {\n return params.plugins.byType<T>(params.type).reduce((plugins, plugin) => {\n /**\n * We expect op to be a string, that is why we cast.\n */\n const op = plugin[params.property] as unknown as string;\n plugins[op] = plugin;\n return plugins;\n }, {} as Record<string, T>);\n};\n\ninterface ExtractWhereArgsResult {\n field: string;\n operation: string;\n negate: boolean;\n}\nconst extractWhereArgs = (key: string): ExtractWhereArgsResult => {\n const result = key.split(\"_\");\n const field = result.shift() as string;\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n field,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n field,\n operation,\n negate\n };\n};\n\nconst findFilterPlugin = (\n plugins: Record<string, ValueFilterPlugin>,\n operation: string\n): ValueFilterPlugin => {\n if (plugins[operation]) {\n return plugins[operation];\n }\n throw new WebinyError(`Missing filter plugin definition.`, \"FILTER_PLUGIN_ERROR\", {\n operation\n });\n};\n\nconst multiSearchFieldOperations = [\"contains\", \"fuzzy\"];\n\nconst createFilters = (params: Omit<Params, \"items\">): Filter[] => {\n const { plugins, where, fields } = params;\n\n const keys = Object.keys(where);\n /**\n * Skip everything if there are no conditions to be applied.\n */\n if (keys.length === 0) {\n return [];\n }\n const filterPlugins = getMappedPlugins<ValueFilterPlugin>({\n plugins,\n type: ValueFilterPlugin.type,\n property: \"operation\"\n });\n\n return keys.reduce((filters, key) => {\n const compareValue = where[key];\n if (compareValue === undefined) {\n return filters;\n }\n /**\n * @see DynamoDbContainsFilter\n */\n if (multiSearchFieldOperations.includes(key) === true) {\n const data: DynamoDbContainsFilter = compareValue;\n let transformValue: TransformValue | undefined = undefined;\n const paths = data.fields.map(field => {\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n return fieldPlugin.getPath();\n }\n return field;\n });\n\n const filterPlugin = findFilterPlugin(filterPlugins, key);\n filters.push({\n operation: filterPlugin.operation,\n compareValue: data.value,\n filterPlugin,\n transformValue,\n paths,\n negate: false\n });\n return filters;\n }\n\n const { field, operation, negate } = extractWhereArgs(key);\n\n const filterPlugin = findFilterPlugin(filterPlugins, operation);\n\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n let path: string = field;\n let transformValue: TransformValue | undefined = undefined;\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n path = fieldPlugin.getPath();\n }\n\n filters.push({\n operation: filterPlugin.operation,\n compareValue,\n filterPlugin,\n transformValue,\n paths: [path],\n negate\n });\n\n return filters;\n }, [] as Filter[]);\n};\n/**\n * Transforms the value with given transformer callable.\n */\nconst transform = (value: any, transformValue?: TransformValue): any => {\n if (!transformValue) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(v => transformValue(v));\n }\n return transformValue(value);\n};\n/**\n * Creates a filter callable that we can send to the .filter() method of the array.\n */\nconst createFilterCallable = (params: Omit<Params, \"items\">): ((item: any) => boolean) | null => {\n const filters = createFilters(params);\n /**\n * Just return null so there are no filters to be applied.\n * Later in the code we check for null so we do not loop through the items.\n */\n if (filters.length === 0) {\n return null;\n }\n\n return (item: any) => {\n for (const filter of filters) {\n const result = filter.paths.some(path => {\n const value = transform(dotProp.get(item, path), filter.transformValue);\n const compareValue = transform(filter.compareValue, filter.transformValue);\n const matched = filter.filterPlugin.matches({\n value,\n compareValue\n });\n\n return filter.negate ? !matched : matched;\n });\n if (result === false) {\n return false;\n }\n }\n return true;\n };\n};\n\nexport function filterItems<T = any>(params: Params<T>): T[] {\n const filter = createFilterCallable(params);\n /**\n * No point in going through all the items when there are no filters to be applied.\n */\n if (!filter) {\n return params.items;\n }\n return params.items.filter(filter);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["dotProp","WebinyError","ValueFilterPlugin","getMappedPlugins","params","plugins","byType","type","reduce","plugin","op","property","extractWhereArgs","key","result","split","field","shift","rawOp","length","join","operation","negate","match","replace","findFilterPlugin","multiSearchFieldOperations","createFilters","where","fields","keys","Object","filterPlugins","filters","compareValue","undefined","includes","data","transformValue","paths","map","fieldPlugin","find","getField","value","getPath","filterPlugin","push","path","transform","Array","isArray","v","createFilterCallable","item","filter","some","get","matched","matches","filterItems","items"],"sources":["filter.ts"],"sourcesContent":["import dotProp from \"dot-prop\";\nimport WebinyError from \"@webiny/error\";\nimport type { Plugin, PluginsContainer } from \"@webiny/plugins\";\nimport { ValueFilterPlugin } from \"~/plugins/definitions/ValueFilterPlugin.js\";\nimport type { FieldPlugin } from \"~/plugins/definitions/FieldPlugin.js\";\nimport type { DynamoDbContainsFilter } from \"~/types.js\";\n\ntype TransformValue = (value: any) => any;\n\nexport interface Params<T = any> {\n plugins: PluginsContainer;\n items: T[];\n where: Record<string, any>;\n /**\n * An array of fields that require some special operation.\n */\n fields: FieldPlugin[];\n}\n\ninterface MappedPluginParams<T extends Plugin = Plugin> {\n plugins: PluginsContainer;\n type: string;\n property: keyof T;\n}\n\ninterface Filter {\n operation: string;\n compareValue: any;\n filterPlugin: ValueFilterPlugin;\n transformValue?: TransformValue;\n paths: string[];\n negate: boolean;\n}\n\nconst getMappedPlugins = <T extends Plugin>(params: MappedPluginParams<T>): Record<string, T> => {\n return params.plugins.byType<T>(params.type).reduce(\n (plugins, plugin) => {\n /**\n * We expect op to be a string, that is why we cast.\n */\n const op = plugin[params.property] as unknown as string;\n plugins[op] = plugin;\n return plugins;\n },\n {} as Record<string, T>\n );\n};\n\ninterface ExtractWhereArgsResult {\n field: string;\n operation: string;\n negate: boolean;\n}\nconst extractWhereArgs = (key: string): ExtractWhereArgsResult => {\n const result = key.split(\"_\");\n const field = result.shift() as string;\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n field,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n field,\n operation,\n negate\n };\n};\n\nconst findFilterPlugin = (\n plugins: Record<string, ValueFilterPlugin>,\n operation: string\n): ValueFilterPlugin => {\n if (plugins[operation]) {\n return plugins[operation];\n }\n throw new WebinyError(`Missing filter plugin definition.`, \"FILTER_PLUGIN_ERROR\", {\n operation\n });\n};\n\nconst multiSearchFieldOperations = [\"contains\", \"fuzzy\"];\n\nconst createFilters = (params: Omit<Params, \"items\">): Filter[] => {\n const { plugins, where, fields } = params;\n\n const keys = Object.keys(where);\n /**\n * Skip everything if there are no conditions to be applied.\n */\n if (keys.length === 0) {\n return [];\n }\n const filterPlugins = getMappedPlugins<ValueFilterPlugin>({\n plugins,\n type: ValueFilterPlugin.type,\n property: \"operation\"\n });\n\n return keys.reduce((filters, key) => {\n const compareValue = where[key];\n if (compareValue === undefined) {\n return filters;\n }\n /**\n * @see DynamoDbContainsFilter\n */\n if (multiSearchFieldOperations.includes(key) === true) {\n const data: DynamoDbContainsFilter = compareValue;\n let transformValue: TransformValue | undefined = undefined;\n const paths = data.fields.map(field => {\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n return fieldPlugin.getPath();\n }\n return field;\n });\n\n const filterPlugin = findFilterPlugin(filterPlugins, key);\n filters.push({\n operation: filterPlugin.operation,\n compareValue: data.value,\n filterPlugin,\n transformValue,\n paths,\n negate: false\n });\n return filters;\n }\n\n const { field, operation, negate } = extractWhereArgs(key);\n\n const filterPlugin = findFilterPlugin(filterPlugins, operation);\n\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n let path: string = field;\n let transformValue: TransformValue | undefined = undefined;\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n path = fieldPlugin.getPath();\n }\n\n filters.push({\n operation: filterPlugin.operation,\n compareValue,\n filterPlugin,\n transformValue,\n paths: [path],\n negate\n });\n\n return filters;\n }, [] as Filter[]);\n};\n/**\n * Transforms the value with given transformer callable.\n */\nconst transform = (value: any, transformValue?: TransformValue): any => {\n if (!transformValue) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(v => transformValue(v));\n }\n return transformValue(value);\n};\n/**\n * Creates a filter callable that we can send to the .filter() method of the array.\n */\nconst createFilterCallable = (params: Omit<Params, \"items\">): ((item: any) => boolean) | null => {\n const filters = createFilters(params);\n /**\n * Just return null so there are no filters to be applied.\n * Later in the code we check for null so we do not loop through the items.\n */\n if (filters.length === 0) {\n return null;\n }\n\n return (item: any) => {\n for (const filter of filters) {\n const result = filter.paths.some(path => {\n const value = transform(dotProp.get(item, path), filter.transformValue);\n const compareValue = transform(filter.compareValue, filter.transformValue);\n const matched = filter.filterPlugin.matches({\n value,\n compareValue\n });\n\n return filter.negate ? !matched : matched;\n });\n if (result === false) {\n return false;\n }\n }\n return true;\n };\n};\n\nexport function filterItems<T = any>(params: Params<T>): T[] {\n const filter = createFilterCallable(params);\n /**\n * No point in going through all the items when there are no filters to be applied.\n */\n if (!filter) {\n return params.items;\n }\n return params.items.filter(filter);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/utils/get.d.ts
CHANGED
package/utils/get.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getClean = exports.get = void 0;
|
|
7
|
-
var _cleanup = require("./cleanup");
|
|
1
|
+
import { cleanupItem } from "./cleanup.js";
|
|
8
2
|
/**
|
|
9
3
|
* Gets a single record from the DynamoDB table.
|
|
10
4
|
* Returns either record or null.
|
|
@@ -13,7 +7,7 @@ var _cleanup = require("./cleanup");
|
|
|
13
7
|
*
|
|
14
8
|
* @throws
|
|
15
9
|
*/
|
|
16
|
-
const get = async params => {
|
|
10
|
+
export const get = async params => {
|
|
17
11
|
const {
|
|
18
12
|
entity,
|
|
19
13
|
keys
|
|
@@ -26,14 +20,12 @@ const get = async params => {
|
|
|
26
20
|
}
|
|
27
21
|
return result.Item;
|
|
28
22
|
};
|
|
29
|
-
|
|
30
|
-
const getClean = async params => {
|
|
23
|
+
export const getClean = async params => {
|
|
31
24
|
const result = await get(params);
|
|
32
25
|
if (!result) {
|
|
33
26
|
return null;
|
|
34
27
|
}
|
|
35
|
-
return
|
|
28
|
+
return cleanupItem(params.entity, result);
|
|
36
29
|
};
|
|
37
|
-
exports.getClean = getClean;
|
|
38
30
|
|
|
39
31
|
//# sourceMappingURL=get.js.map
|
package/utils/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["cleanupItem","get","params","entity","keys","result","execute","Item","getClean"],"sources":["get.ts"],"sourcesContent":["import type { Entity } from \"~/toolbox.js\";\nimport { cleanupItem } from \"~/utils/cleanup.js\";\n\nexport interface GetRecordParamsKeys {\n PK: string;\n SK: string;\n}\n\nexport interface GetRecordParams {\n entity: Entity;\n keys: GetRecordParamsKeys;\n}\n\n/**\n * Gets a single record from the DynamoDB table.\n * Returns either record or null.\n *\n * Be aware to wrap in try/catch to avoid the error killing your app.\n *\n * @throws\n */\nexport const get = async <T>(params: GetRecordParams): Promise<T | null> => {\n const { entity, keys } = params;\n\n const result = await entity.get(keys, {\n execute: true\n });\n\n if (!result?.Item) {\n return null;\n }\n return result.Item as T;\n};\n\nexport const getClean = async <T>(params: GetRecordParams): Promise<T | null> => {\n const result = await get<T>(params);\n if (!result) {\n return null;\n }\n return cleanupItem<T>(params.entity, result);\n};\n"],"mappings":"AACA,SAASA,WAAW;AAYpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,GAAG,GAAG,MAAUC,MAAuB,IAAwB;EACxE,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAE/B,MAAMG,MAAM,GAAG,MAAMF,MAAM,CAACF,GAAG,CAACG,IAAI,EAAE;IAClCE,OAAO,EAAE;EACb,CAAC,CAAC;EAEF,IAAI,CAACD,MAAM,EAAEE,IAAI,EAAE;IACf,OAAO,IAAI;EACf;EACA,OAAOF,MAAM,CAACE,IAAI;AACtB,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAG,MAAUN,MAAuB,IAAwB;EAC7E,MAAMG,MAAM,GAAG,MAAMJ,GAAG,CAAIC,MAAM,CAAC;EACnC,IAAI,CAACG,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EACA,OAAOL,WAAW,CAAIE,MAAM,CAACC,MAAM,EAAEE,MAAM,CAAC;AAChD,CAAC","ignoreList":[]}
|
package/utils/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export * from "./cleanup";
|
|
2
|
-
export * from "./createEntity";
|
|
3
|
-
export * from "./createTable";
|
|
4
|
-
export * from "./cursor";
|
|
5
|
-
export * from "./filter";
|
|
6
|
-
export * from "./get";
|
|
7
|
-
export * from "./delete";
|
|
8
|
-
export * from "./put";
|
|
9
|
-
export * from "./listResponse";
|
|
10
|
-
export * from "./query";
|
|
11
|
-
export * from "./count";
|
|
12
|
-
export * from "./scan";
|
|
13
|
-
export * from "./sort";
|
|
14
|
-
export * from "./update";
|
|
15
|
-
export * from "./batch";
|
|
16
|
-
export * from "./entity";
|
|
17
|
-
export * from "./table";
|
|
1
|
+
export * from "./cleanup.js";
|
|
2
|
+
export * from "./createEntity.js";
|
|
3
|
+
export * from "./createTable.js";
|
|
4
|
+
export * from "./cursor.js";
|
|
5
|
+
export * from "./filter.js";
|
|
6
|
+
export * from "./get.js";
|
|
7
|
+
export * from "./delete.js";
|
|
8
|
+
export * from "./put.js";
|
|
9
|
+
export * from "./listResponse.js";
|
|
10
|
+
export * from "./query.js";
|
|
11
|
+
export * from "./count.js";
|
|
12
|
+
export * from "./scan.js";
|
|
13
|
+
export * from "./sort.js";
|
|
14
|
+
export * from "./update.js";
|
|
15
|
+
export * from "./batch/index.js";
|
|
16
|
+
export * from "./entity/index.js";
|
|
17
|
+
export * from "./table/index.js";
|
package/utils/index.js
CHANGED
|
@@ -1,194 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Object.keys(_createEntity).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _createEntity[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _createEntity[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
var _createTable = require("./createTable");
|
|
29
|
-
Object.keys(_createTable).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _createTable[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () {
|
|
35
|
-
return _createTable[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
var _cursor = require("./cursor");
|
|
40
|
-
Object.keys(_cursor).forEach(function (key) {
|
|
41
|
-
if (key === "default" || key === "__esModule") return;
|
|
42
|
-
if (key in exports && exports[key] === _cursor[key]) return;
|
|
43
|
-
Object.defineProperty(exports, key, {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: function () {
|
|
46
|
-
return _cursor[key];
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
var _filter = require("./filter");
|
|
51
|
-
Object.keys(_filter).forEach(function (key) {
|
|
52
|
-
if (key === "default" || key === "__esModule") return;
|
|
53
|
-
if (key in exports && exports[key] === _filter[key]) return;
|
|
54
|
-
Object.defineProperty(exports, key, {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function () {
|
|
57
|
-
return _filter[key];
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
var _get = require("./get");
|
|
62
|
-
Object.keys(_get).forEach(function (key) {
|
|
63
|
-
if (key === "default" || key === "__esModule") return;
|
|
64
|
-
if (key in exports && exports[key] === _get[key]) return;
|
|
65
|
-
Object.defineProperty(exports, key, {
|
|
66
|
-
enumerable: true,
|
|
67
|
-
get: function () {
|
|
68
|
-
return _get[key];
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
var _delete = require("./delete");
|
|
73
|
-
Object.keys(_delete).forEach(function (key) {
|
|
74
|
-
if (key === "default" || key === "__esModule") return;
|
|
75
|
-
if (key in exports && exports[key] === _delete[key]) return;
|
|
76
|
-
Object.defineProperty(exports, key, {
|
|
77
|
-
enumerable: true,
|
|
78
|
-
get: function () {
|
|
79
|
-
return _delete[key];
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
var _put = require("./put");
|
|
84
|
-
Object.keys(_put).forEach(function (key) {
|
|
85
|
-
if (key === "default" || key === "__esModule") return;
|
|
86
|
-
if (key in exports && exports[key] === _put[key]) return;
|
|
87
|
-
Object.defineProperty(exports, key, {
|
|
88
|
-
enumerable: true,
|
|
89
|
-
get: function () {
|
|
90
|
-
return _put[key];
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
var _listResponse = require("./listResponse");
|
|
95
|
-
Object.keys(_listResponse).forEach(function (key) {
|
|
96
|
-
if (key === "default" || key === "__esModule") return;
|
|
97
|
-
if (key in exports && exports[key] === _listResponse[key]) return;
|
|
98
|
-
Object.defineProperty(exports, key, {
|
|
99
|
-
enumerable: true,
|
|
100
|
-
get: function () {
|
|
101
|
-
return _listResponse[key];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
var _query = require("./query");
|
|
106
|
-
Object.keys(_query).forEach(function (key) {
|
|
107
|
-
if (key === "default" || key === "__esModule") return;
|
|
108
|
-
if (key in exports && exports[key] === _query[key]) return;
|
|
109
|
-
Object.defineProperty(exports, key, {
|
|
110
|
-
enumerable: true,
|
|
111
|
-
get: function () {
|
|
112
|
-
return _query[key];
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
var _count = require("./count");
|
|
117
|
-
Object.keys(_count).forEach(function (key) {
|
|
118
|
-
if (key === "default" || key === "__esModule") return;
|
|
119
|
-
if (key in exports && exports[key] === _count[key]) return;
|
|
120
|
-
Object.defineProperty(exports, key, {
|
|
121
|
-
enumerable: true,
|
|
122
|
-
get: function () {
|
|
123
|
-
return _count[key];
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
var _scan = require("./scan");
|
|
128
|
-
Object.keys(_scan).forEach(function (key) {
|
|
129
|
-
if (key === "default" || key === "__esModule") return;
|
|
130
|
-
if (key in exports && exports[key] === _scan[key]) return;
|
|
131
|
-
Object.defineProperty(exports, key, {
|
|
132
|
-
enumerable: true,
|
|
133
|
-
get: function () {
|
|
134
|
-
return _scan[key];
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
var _sort = require("./sort");
|
|
139
|
-
Object.keys(_sort).forEach(function (key) {
|
|
140
|
-
if (key === "default" || key === "__esModule") return;
|
|
141
|
-
if (key in exports && exports[key] === _sort[key]) return;
|
|
142
|
-
Object.defineProperty(exports, key, {
|
|
143
|
-
enumerable: true,
|
|
144
|
-
get: function () {
|
|
145
|
-
return _sort[key];
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
var _update = require("./update");
|
|
150
|
-
Object.keys(_update).forEach(function (key) {
|
|
151
|
-
if (key === "default" || key === "__esModule") return;
|
|
152
|
-
if (key in exports && exports[key] === _update[key]) return;
|
|
153
|
-
Object.defineProperty(exports, key, {
|
|
154
|
-
enumerable: true,
|
|
155
|
-
get: function () {
|
|
156
|
-
return _update[key];
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
var _batch = require("./batch");
|
|
161
|
-
Object.keys(_batch).forEach(function (key) {
|
|
162
|
-
if (key === "default" || key === "__esModule") return;
|
|
163
|
-
if (key in exports && exports[key] === _batch[key]) return;
|
|
164
|
-
Object.defineProperty(exports, key, {
|
|
165
|
-
enumerable: true,
|
|
166
|
-
get: function () {
|
|
167
|
-
return _batch[key];
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
var _entity = require("./entity");
|
|
172
|
-
Object.keys(_entity).forEach(function (key) {
|
|
173
|
-
if (key === "default" || key === "__esModule") return;
|
|
174
|
-
if (key in exports && exports[key] === _entity[key]) return;
|
|
175
|
-
Object.defineProperty(exports, key, {
|
|
176
|
-
enumerable: true,
|
|
177
|
-
get: function () {
|
|
178
|
-
return _entity[key];
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
var _table = require("./table");
|
|
183
|
-
Object.keys(_table).forEach(function (key) {
|
|
184
|
-
if (key === "default" || key === "__esModule") return;
|
|
185
|
-
if (key in exports && exports[key] === _table[key]) return;
|
|
186
|
-
Object.defineProperty(exports, key, {
|
|
187
|
-
enumerable: true,
|
|
188
|
-
get: function () {
|
|
189
|
-
return _table[key];
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
});
|
|
1
|
+
export * from "./cleanup.js";
|
|
2
|
+
export * from "./createEntity.js";
|
|
3
|
+
export * from "./createTable.js";
|
|
4
|
+
export * from "./cursor.js";
|
|
5
|
+
export * from "./filter.js";
|
|
6
|
+
export * from "./get.js";
|
|
7
|
+
export * from "./delete.js";
|
|
8
|
+
export * from "./put.js";
|
|
9
|
+
export * from "./listResponse.js";
|
|
10
|
+
export * from "./query.js";
|
|
11
|
+
export * from "./count.js";
|
|
12
|
+
export * from "./scan.js";
|
|
13
|
+
export * from "./sort.js";
|
|
14
|
+
export * from "./update.js";
|
|
15
|
+
export * from "./batch/index.js";
|
|
16
|
+
export * from "./entity/index.js";
|
|
17
|
+
export * from "./table/index.js";
|
|
193
18
|
|
|
194
19
|
//# sourceMappingURL=index.js.map
|
package/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./cleanup.js\";\nexport * from \"./createEntity.js\";\nexport * from \"./createTable.js\";\nexport * from \"./cursor.js\";\nexport * from \"./filter.js\";\nexport * from \"./get.js\";\nexport * from \"./delete.js\";\nexport * from \"./put.js\";\nexport * from \"./listResponse.js\";\nexport * from \"./query.js\";\nexport * from \"./count.js\";\nexport * from \"./scan.js\";\nexport * from \"./sort.js\";\nexport * from \"./update.js\";\nexport * from \"./batch/index.js\";\nexport * from \"./entity/index.js\";\nexport * from \"./table/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
package/utils/listResponse.js
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createListResponse = createListResponse;
|
|
7
|
-
var _cursor = require("./cursor");
|
|
8
|
-
function createListResponse(params) {
|
|
1
|
+
import { decodeCursor, encodeCursor } from "./cursor.js";
|
|
2
|
+
export function createListResponse(params) {
|
|
9
3
|
const {
|
|
10
4
|
items: initialItems,
|
|
11
5
|
after,
|
|
12
6
|
totalCount,
|
|
13
7
|
limit
|
|
14
8
|
} = params;
|
|
15
|
-
let start = Number(
|
|
9
|
+
let start = Number(decodeCursor(after));
|
|
16
10
|
if (isNaN(start) === true) {
|
|
17
11
|
start = 0;
|
|
18
12
|
}
|
|
19
13
|
const hasMoreItems = totalCount > start + limit;
|
|
20
14
|
const end = limit > totalCount + start + limit ? undefined : start + limit;
|
|
21
15
|
const items = end ? initialItems.slice(start, end) : initialItems;
|
|
22
|
-
const cursor = items.length > 0 ?
|
|
16
|
+
const cursor = items.length > 0 ? encodeCursor(start + limit) : null;
|
|
23
17
|
const meta = {
|
|
24
18
|
hasMoreItems,
|
|
25
19
|
totalCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["decodeCursor","encodeCursor","createListResponse","params","items","initialItems","after","totalCount","limit","start","Number","isNaN","hasMoreItems","end","undefined","slice","cursor","length","meta"],"sources":["listResponse.ts"],"sourcesContent":["import { decodeCursor, encodeCursor } from \"~/utils/cursor.js\";\n\ninterface MetaResponse {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\ninterface CreateListResponseParams<T> {\n items: T[];\n after?: string | null;\n totalCount: number;\n limit: number;\n}\n\nexport function createListResponse<T>(params: CreateListResponseParams<T>): [T[], MetaResponse] {\n const { items: initialItems, after, totalCount, limit } = params;\n let start = Number(decodeCursor(after));\n if (isNaN(start) === true) {\n start = 0;\n }\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = end ? initialItems.slice(start, end) : initialItems;\n\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return [items, meta];\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,YAAY;AAenC,OAAO,SAASC,kBAAkBA,CAAIC,MAAmC,EAAuB;EAC5F,MAAM;IAAEC,KAAK,EAAEC,YAAY;IAAEC,KAAK;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAAGL,MAAM;EAChE,IAAIM,KAAK,GAAGC,MAAM,CAACV,YAAY,CAACM,KAAK,CAAC,CAAC;EACvC,IAAIK,KAAK,CAACF,KAAK,CAAC,KAAK,IAAI,EAAE;IACvBA,KAAK,GAAG,CAAC;EACb;EACA,MAAMG,YAAY,GAAGL,UAAU,GAAGE,KAAK,GAAGD,KAAK;EAC/C,MAAMK,GAAG,GAAGL,KAAK,GAAGD,UAAU,GAAGE,KAAK,GAAGD,KAAK,GAAGM,SAAS,GAAGL,KAAK,GAAGD,KAAK;EAC1E,MAAMJ,KAAK,GAAGS,GAAG,GAAGR,YAAY,CAACU,KAAK,CAACN,KAAK,EAAEI,GAAG,CAAC,GAAGR,YAAY;EAEjE,MAAMW,MAAM,GAAGZ,KAAK,CAACa,MAAM,GAAG,CAAC,GAAGhB,YAAY,CAACQ,KAAK,GAAGD,KAAK,CAAC,GAAG,IAAI;EAEpE,MAAMU,IAAI,GAAG;IACTN,YAAY;IACZL,UAAU;IACVS;EACJ,CAAC;EAED,OAAO,CAACZ,KAAK,EAAEc,IAAI,CAAC;AACxB","ignoreList":[]}
|
package/utils/put.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Entity } from "../toolbox";
|
|
2
|
-
import type { GenericRecord } from "@webiny/api/types";
|
|
1
|
+
import type { Entity } from "../toolbox.js";
|
|
2
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
3
3
|
export type IPutParamsItem<T extends GenericRecord = GenericRecord> = {
|
|
4
4
|
PK: string;
|
|
5
5
|
SK: string;
|