@prisma-idb/idb-client-generator 0.6.1 → 0.8.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.
@@ -5,26 +5,28 @@ const count_1 = require("./api/count");
5
5
  const create_1 = require("./api/create");
6
6
  const createMany_1 = require("./api/createMany");
7
7
  const createManyAndReturn_1 = require("./api/createManyAndReturn");
8
+ const delete_1 = require("./api/delete");
9
+ const deleteMany_1 = require("./api/deleteMany");
8
10
  const findFirst_1 = require("./api/findFirst");
9
11
  const findFirstOrThrow_1 = require("./api/findFirstOrThrow");
10
12
  const findMany_1 = require("./api/findMany");
11
13
  const findUnique_1 = require("./api/findUnique");
12
14
  const findUniqueOrThrow_1 = require("./api/findUniqueOrThrow");
13
15
  const update_1 = require("./api/update");
16
+ const updateMany_1 = require("./api/updateMany");
17
+ const upsert_1 = require("./api/upsert");
18
+ const _applyOrderByClause_1 = require("./utils/_applyOrderByClause");
14
19
  const _applyRelations_1 = require("./utils/_applyRelations");
15
20
  const _applySelectClause_1 = require("./utils/_applySelectClause");
16
21
  const _applyWhereClause_1 = require("./utils/_applyWhereClause");
17
22
  const _fillDefaults_1 = require("./utils/_fillDefaults");
18
23
  const _getNeededStoresForCreate_1 = require("./utils/_getNeededStoresForCreate");
19
24
  const _getNeededStoresForFind_1 = require("./utils/_getNeededStoresForFind");
20
- const _removeNestedCreateData_1 = require("./utils/_removeNestedCreateData");
21
25
  const _getNeededStoresForWhere_1 = require("./utils/_getNeededStoresForWhere");
22
- const delete_1 = require("./api/delete");
23
- const deleteMany_1 = require("./api/deleteMany");
24
- const _applyOrderByClause_1 = require("./utils/_applyOrderByClause");
26
+ const _preprocessListFields_1 = require("./utils/_preprocessListFields");
27
+ const _removeNestedCreateData_1 = require("./utils/_removeNestedCreateData");
25
28
  const _resolveOrderByKey_1 = require("./utils/_resolveOrderByKey");
26
29
  const _resolveSortOrder_1 = require("./utils/_resolveSortOrder");
27
- const _preprocessListFields_1 = require("./utils/_preprocessListFields");
28
30
  function addIDBModelClass(file, model, models) {
29
31
  const modelClass = file.addClass({
30
32
  name: `${model.name}IDBClass`,
@@ -54,5 +56,7 @@ function addIDBModelClass(file, model, models) {
54
56
  (0, delete_1.addDeleteMethod)(modelClass, model, models);
55
57
  (0, deleteMany_1.addDeleteManyMethod)(modelClass, model, models);
56
58
  (0, update_1.addUpdateMethod)(modelClass, model);
59
+ (0, updateMany_1.addUpdateMany)(modelClass, model);
60
+ (0, upsert_1.addUpsertMethod)(modelClass, model);
57
61
  }
58
62
  //# sourceMappingURL=IDBModelClass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IDBModelClass.js","sourceRoot":"","sources":["../../../../../src/fileCreators/prisma-idb-client/classes/models/IDBModelClass.ts"],"names":[],"mappings":";;AA2BA,4CAkCC;AA3DD,uCAA6C;AAC7C,yCAA+C;AAC/C,iDAAuD;AACvD,mEAAmE;AACnE,+CAAqD;AACrD,6DAA6D;AAC7D,6CAAmD;AACnD,iDAAuD;AACvD,+DAA+D;AAC/D,yCAA+C;AAC/C,6DAA4D;AAC5D,mEAAkE;AAClE,iEAAgE;AAChE,yDAAgE;AAChE,iFAAgF;AAChF,6EAA4E;AAC5E,6EAAkF;AAClF,+EAA8E;AAC9E,yCAA+C;AAC/C,iDAAuD;AACvD,qEAAoE;AACpE,mEAAkE;AAClE,iEAAgE;AAChE,yEAAwE;AAExE,SAAgB,gBAAgB,CAAC,IAAgB,EAAE,KAAY,EAAE,MAAwB;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,UAAU;QAC7B,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;IAEH,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,mCAAiB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAA,2CAAqB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,uCAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAA,qDAA0B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAA,mDAAyB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAA,uDAA2B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAA,yDAA+B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,IAAA,+CAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE3C,IAAA,4BAAiB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrC,IAAA,8BAAkB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtC,IAAA,sCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,wCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,sBAAc,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAElC,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,4CAAsB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE1C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"IDBModelClass.js","sourceRoot":"","sources":["../../../../../src/fileCreators/prisma-idb-client/classes/models/IDBModelClass.ts"],"names":[],"mappings":";;AA6BA,4CAoCC;AA/DD,uCAA6C;AAC7C,yCAA+C;AAC/C,iDAAuD;AACvD,mEAAmE;AACnE,yCAA+C;AAC/C,iDAAuD;AACvD,+CAAqD;AACrD,6DAA6D;AAC7D,6CAAmD;AACnD,iDAAuD;AACvD,+DAA+D;AAC/D,yCAA+C;AAC/C,iDAAiD;AACjD,yCAA+C;AAC/C,qEAAoE;AACpE,6DAA4D;AAC5D,mEAAkE;AAClE,iEAAgE;AAChE,yDAAgE;AAChE,iFAAgF;AAChF,6EAA4E;AAC5E,+EAA8E;AAC9E,yEAAwE;AACxE,6EAAkF;AAClF,mEAAkE;AAClE,iEAAgE;AAEhE,SAAgB,gBAAgB,CAAC,IAAgB,EAAE,KAAY,EAAE,MAAwB;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,UAAU;QAC7B,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;IAEH,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,mCAAiB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAA,2CAAqB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,IAAA,yCAAoB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAA,uCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,uCAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAA,qDAA0B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAA,mDAAyB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAA,uDAA2B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAA,yDAA+B,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,IAAA,+CAAuB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE3C,IAAA,4BAAiB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrC,IAAA,8BAAkB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtC,IAAA,sCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,wCAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxC,IAAA,sBAAc,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAElC,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvC,IAAA,4CAAsB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE1C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAA,gCAAmB,EAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,IAAA,0BAAa,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjC,IAAA,wBAAe,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC"}
@@ -13,7 +13,7 @@ function addUpdateMethod(modelClass, model) {
13
13
  ],
14
14
  returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, 'update'>>`,
15
15
  statements: (writer) => {
16
- addGetRecord(writer);
16
+ addGetRecord(writer, model);
17
17
  addStringUpdateHandling(writer, model);
18
18
  addDateTimeUpdateHandling(writer, model);
19
19
  addBooleanUpdateHandling(writer, model);
@@ -24,22 +24,31 @@ function addUpdateMethod(modelClass, model) {
24
24
  },
25
25
  });
26
26
  }
27
- function addGetRecord(writer) {
27
+ function addGetRecord(writer, model) {
28
+ const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath);
28
29
  writer
29
30
  .writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
30
31
  .writeLine(`const record = await this.findUnique({ where: query.where }, tx);`)
31
32
  .writeLine(`if (record === null)`)
32
33
  .block(() => {
33
34
  writer.writeLine(`tx.abort();`).writeLine(`throw new Error("Record not found");`);
34
- });
35
+ })
36
+ .writeLine(`const startKeyPath: PrismaIDBSchema["${model.name}"]["key"] = [${pk.map((field) => `record.${field}, `)}];`);
35
37
  }
36
38
  function addPutAndReturn(writer, model) {
37
- const pk = (0, utils_1.getUniqueIdentifiers)(model)[0];
39
+ const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath);
38
40
  writer
41
+ .writeLine(`const endKeyPath: PrismaIDBSchema["${model.name}"]["key"] = [${pk.map((field) => `record.${field}, `)}];`)
42
+ .writeLine(`for (let i = 0; i < startKeyPath.length; i++)`)
43
+ .block(() => {
44
+ writer.writeLine(`if (startKeyPath[i] !== endKeyPath[i])`).block(() => {
45
+ writer.writeLine(`await tx.objectStore("${model.name}").delete(startKeyPath);`).writeLine(`break;`);
46
+ });
47
+ })
39
48
  .writeLine(`const keyPath = await tx.objectStore("${model.name}").put(record);`)
40
49
  .writeLine(`const recordWithRelations = (await this.findUnique(`)
41
50
  .block(() => {
42
- writer.writeLine(`...query, where: { ${JSON.parse(pk.keyPath)[0]}: keyPath[0] },`);
51
+ writer.writeLine(`...query, where: { ${pk[0]}: keyPath[0] },`);
43
52
  })
44
53
  .writeLine(`, tx))!;`)
45
54
  .writeLine(`return recordWithRelations as Prisma.Result<Prisma.${model.name}Delegate, Q, "update">;`);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addUpdateMany = addUpdateMany;
4
+ const utils_1 = require("../../../../../helpers/utils");
5
+ function addUpdateMany(modelClass, model) {
6
+ modelClass.addMethod({
7
+ name: "updateMany",
8
+ isAsync: true,
9
+ typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "updateMany">` }],
10
+ parameters: [
11
+ { name: "query", type: "Q" },
12
+ {
13
+ name: "tx",
14
+ hasQuestionToken: true,
15
+ type: "IDBUtils.ReadwriteTransactionType",
16
+ },
17
+ ],
18
+ returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, "updateMany">>`,
19
+ statements: (writer) => {
20
+ const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath);
21
+ writer
22
+ .writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
23
+ .writeLine(`const records = await this.findMany({ where: query.where }, tx);`)
24
+ .writeLine(`await Promise.all(`)
25
+ .writeLine(`records.map(async (record) =>`)
26
+ .block(() => {
27
+ writer.writeLine(`await this.update({ where: { ${pk.map((field) => `${field}: record.${field},`)} }, data: query.data }, tx);`);
28
+ })
29
+ .writeLine(`));`)
30
+ .writeLine(`return { count: records.length };`);
31
+ },
32
+ });
33
+ }
34
+ //# sourceMappingURL=updateMany.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMany.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/updateMany.ts"],"names":[],"mappings":";;AAIA,sCAkCC;AAtCD,wDAAoE;AAIpE,SAAgB,aAAa,CAAC,UAA4B,EAAE,KAAY;IACtE,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,yBAAyB,EAAE,CAAC;QACtG,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B;gBACE,IAAI,EAAE,IAAI;gBACV,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,mCAAmC;aAC1C;SACF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,6BAA6B;QACnF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAErB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAa,CAAC;YAC1E,MAAM;iBAEH,SAAS,CACR,uGAAuG,CACxG;iBACA,SAAS,CAAC,kEAAkE,CAAC;iBAC7E,SAAS,CAAC,oBAAoB,CAAC;iBAC/B,SAAS,CAAC,+BAA+B,CAAC;iBAC1C,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,SAAS,CACd,gCAAgC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,KAAK,GAAG,CAAC,8BAA8B,CAC9G,CAAC;YACJ,CAAC,CAAC;iBACD,SAAS,CAAC,KAAK,CAAC;iBAChB,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addUpsertMethod = addUpsertMethod;
4
+ const utils_1 = require("../../../../../helpers/utils");
5
+ function addUpsertMethod(modelClass, model) {
6
+ modelClass.addMethod({
7
+ name: "upsert",
8
+ typeParameters: [{ name: "Q", constraint: `Prisma.Args<Prisma.${model.name}Delegate, "upsert">` }],
9
+ isAsync: true,
10
+ parameters: [
11
+ { name: "query", type: "Q" },
12
+ { name: "tx", hasQuestionToken: true, type: "IDBUtils.ReadwriteTransactionType" },
13
+ ],
14
+ returnType: `Promise<Prisma.Result<Prisma.${model.name}Delegate, Q, "upsert">>`,
15
+ statements: (writer) => {
16
+ addGetAndUpsertRecord(writer);
17
+ addRefetchAndReturnRecord(writer, model);
18
+ },
19
+ });
20
+ }
21
+ function addGetAndUpsertRecord(writer) {
22
+ writer
23
+ .writeLine(`tx = tx ?? this.client._db.transaction(Array.from(this._getNeededStoresForFind(query)), "readwrite");`)
24
+ .writeLine(`let record = await this.findUnique({ where: query.where }, tx);`)
25
+ .writeLine(`if (!record) record = await this.create({ data: query.create }, tx);`)
26
+ .writeLine(`else record = await this.update({ where: query.where, data: query.update }, tx);`);
27
+ }
28
+ function addRefetchAndReturnRecord(writer, model) {
29
+ const pk = JSON.parse((0, utils_1.getUniqueIdentifiers)(model)[0].keyPath)[0];
30
+ const hasRelations = model.fields.some(({ kind }) => kind === "object");
31
+ let recordFindQuery = `record = await this.findUniqueOrThrow({ where: { ${pk}: record.${pk} }, select: query.select`;
32
+ if (hasRelations)
33
+ recordFindQuery += ", include: query.include";
34
+ recordFindQuery += "});";
35
+ writer
36
+ .writeLine(recordFindQuery)
37
+ .writeLine(`return record as Prisma.Result<Prisma.${model.name}Delegate, Q, "upsert">;`);
38
+ }
39
+ //# sourceMappingURL=upsert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../../../../src/fileCreators/prisma-idb-client/classes/models/api/upsert.ts"],"names":[],"mappings":";;AAIA,0CAeC;AAnBD,wDAAoE;AAIpE,SAAgB,eAAe,CAAC,UAA4B,EAAE,KAAY;IACxE,UAAU,CAAC,SAAS,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,sBAAsB,KAAK,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAClG,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5B,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,mCAAmC,EAAE;SAClF;QACD,UAAU,EAAE,gCAAgC,KAAK,CAAC,IAAI,yBAAyB;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB;IAEpD,MAAM;SACH,SAAS,CAAC,uGAAuG,CAAC;SAClH,SAAS,CAAC,iEAAiE,CAAC;SAC5E,SAAS,CAAC,sEAAsE,CAAC;SACjF,SAAS,CAAC,kFAAkF,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAuB,EAAE,KAAY;IAEtE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,4BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAExE,IAAI,eAAe,GAAG,oDAAoD,EAAE,YAAY,EAAE,0BAA0B,CAAC;IACrH,IAAI,YAAY;QAAE,eAAe,IAAI,0BAA0B,CAAC;IAChE,eAAe,IAAI,KAAK,CAAC;IAEzB,MAAM;SACH,SAAS,CAAC,eAAe,CAAC;SAC1B,SAAS,CAAC,yCAAyC,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;AAC7F,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prisma-idb/idb-client-generator",
3
3
  "description": "Generate types for idb from prisma schema",
4
- "version": "0.6.1",
4
+ "version": "0.8.0",
5
5
  "main": "dist/generator.js",
6
6
  "license": "MIT",
7
7
  "bin": {