@webiny/db 5.17.4-beta.1 → 5.18.0-beta.2

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/index.js CHANGED
@@ -209,5 +209,4 @@ class Batch {
209
209
 
210
210
  }
211
211
 
212
- exports.Batch = Batch;
213
- //# sourceMappingURL=index.js.map
212
+ exports.Batch = Batch;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/db",
3
- "version": "5.17.4-beta.1",
3
+ "version": "5.18.0-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,8 +15,8 @@
15
15
  "devDependencies": {
16
16
  "@babel/cli": "^7.5.5",
17
17
  "@babel/core": "^7.5.5",
18
- "@webiny/cli": "^5.17.4-beta.1",
19
- "@webiny/project-utils": "^5.17.4-beta.1",
18
+ "@webiny/cli": "^5.18.0-beta.2",
19
+ "@webiny/project-utils": "^5.18.0-beta.2",
20
20
  "rimraf": "^3.0.2",
21
21
  "typescript": "^4.1.3"
22
22
  },
@@ -24,5 +24,5 @@
24
24
  "build": "yarn webiny run build",
25
25
  "watch": "yarn webiny run watch"
26
26
  },
27
- "gitHead": "42a79226fee87b18750a72c9d8399f3b32625a9a"
27
+ "gitHead": "02bb6242be1f61cbc204aea458fbc9e7c6000fc8"
28
28
  }
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["shortId","time","Date","getTime","uniqueId","Math","random","toString","slice","getCreateLogData","args","table","meta","limit","sort","data","query","keys","logData","batch","__batch","id","instance","type","Db","constructor","driver","logTable","create","createArgs","createLog","read","readArgs","update","updateArgs","delete","deleteArgs","operation","readLogs","Batch","db","operations","push","i","length","item","execute","promises","result","Promise","all"],"mappings":"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","sourcesContent":["export type Key = { primary?: boolean; unique?: boolean; name: string; fields: { name: string }[] };\n\nexport type Args = {\n __batch?: { instance: Batch; operation: Operation };\n table?: string;\n meta?: boolean;\n limit?: number;\n sort?: Record<string, 1 | -1>;\n data?: Record<string, any>;\n query?: Record<string, any>;\n keys?: Key[];\n};\n\nexport type Result<T = any> = [T, Record<string, any>];\n\nexport interface DbDriver {\n create: (args: Args) => Promise<Result<true>>;\n read: <T = Record<string, any>>(args: Args) => Promise<Result<T[]>>;\n update: (args: Args) => Promise<Result<true>>;\n delete: (args: Args) => Promise<Result<true>>;\n\n // Logging functions.\n createLog: (args: {\n operation: string;\n data: Args;\n table: string;\n id: string;\n }) => Promise<Result<true>>;\n readLogs: <T = Record<string, any>>(args: { table: string }) => Promise<Result<T[]>>;\n}\n\nexport type OperationType = \"create\" | \"read\" | \"update\" | \"delete\";\nexport type Operation = [OperationType, Args];\n\nexport type ConstructorArgs = {\n driver: DbDriver;\n table?: string;\n logTable?: string;\n};\n\n// Generates a short and sortable ID, e.g. \"1607677774994.tfz58m\".\nconst shortId = () => {\n const time = new Date().getTime();\n const uniqueId = Math.random().toString(36).slice(-6);\n\n return `${time}.${uniqueId}`;\n};\n\n// Picks necessary data from received args, ready to be stored in the log table.\nconst getCreateLogData = (args: Args) => {\n const { table, meta, limit, sort, data, query, keys } = args;\n\n const logData = { table, meta, limit, sort, data, query, keys, batch: null };\n if (args.__batch) {\n logData.batch = {\n id: args.__batch.instance.id,\n type: args.__batch.instance.type\n };\n }\n\n return logData;\n};\n\nclass Db {\n driver: DbDriver;\n table: string;\n logTable?: string;\n constructor({ driver, table, logTable }: ConstructorArgs) {\n this.driver = driver;\n this.table = table;\n this.logTable = logTable;\n }\n\n async create(args: Args): Promise<Result<true>> {\n const createArgs = { ...args, table: args.table || this.table };\n await this.createLog(\"create\", createArgs);\n return this.driver.create(createArgs);\n }\n\n async read<T = Record<string, any>>(args: Args): Promise<Result<T[]>> {\n const readArgs = { ...args, table: args.table || this.table };\n await this.createLog(\"read\", readArgs);\n return this.driver.read(readArgs);\n }\n\n async update(args: Args): Promise<Result<true>> {\n const updateArgs = { ...args, table: args.table || this.table };\n await this.createLog(\"update\", updateArgs);\n return this.driver.update(updateArgs);\n }\n\n async delete(args: Args): Promise<Result<true>> {\n const deleteArgs = { ...args, table: args.table || this.table };\n await this.createLog(\"delete\", deleteArgs);\n return this.driver.delete(deleteArgs);\n }\n\n // Logging functions.\n async createLog(operation, args: Args): Promise<Result<true>> {\n if (!this.logTable) {\n return;\n }\n\n const data = getCreateLogData(args);\n return this.driver.createLog({ operation, data, table: this.logTable, id: shortId() });\n }\n\n async readLogs<T = Record<string, any>>(): Promise<Result<T[]>> {\n if (!this.logTable) {\n return;\n }\n\n return this.driver.readLogs({\n table: this.logTable\n });\n }\n\n batch<\n T0 = any,\n T1 = any,\n T2 = any,\n T3 = any,\n T4 = any,\n T5 = any,\n T6 = any,\n T7 = any,\n T8 = any,\n T9 = any\n >() {\n return new Batch<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(this);\n }\n}\n\nclass Batch<\n T0 = any,\n T1 = any,\n T2 = any,\n T3 = any,\n T4 = any,\n T5 = any,\n T6 = any,\n T7 = any,\n T8 = any,\n T9 = any\n> {\n db: Db;\n type: \"batch\" | \"transaction\";\n id: string;\n meta: Record<string, any>;\n operations: Operation[];\n constructor(db) {\n this.db = db;\n this.type = \"batch\";\n this.id = shortId();\n\n this.meta = {};\n this.operations = [];\n }\n\n push(...operations: Operation[]) {\n for (let i = 0; i < operations.length; i++) {\n const item = operations[i];\n this.operations.push(item);\n }\n return this;\n }\n\n create(...args: Args[]) {\n for (let i = 0; i < args.length; i++) {\n this.push([\"create\", args[i]]);\n }\n return this;\n }\n\n read(...args: Args[]) {\n for (let i = 0; i < args.length; i++) {\n this.push([\"read\", args[i]]);\n }\n return this;\n }\n\n update(...args: Args[]) {\n for (let i = 0; i < args.length; i++) {\n this.push([\"update\", args[i]]);\n }\n return this;\n }\n\n delete(...args: Args[]) {\n for (let i = 0; i < args.length; i++) {\n this.push([\"delete\", args[i]]);\n }\n return this;\n }\n\n async execute(): Promise<[T0?, T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?]> {\n const promises = [];\n for (let i = 0; i < this.operations.length; i++) {\n const [operation, args] = this.operations[i];\n promises.push(\n this.db[operation]({\n ...args,\n __batch: {\n instance: this,\n operation: this.operations[i]\n }\n })\n );\n }\n\n const result = Promise.all(promises);\n\n return result as Promise<[T0?, T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?]>;\n }\n}\n\nexport { Batch, Db };\n"],"file":"index.js"}