remult 0.23.5 → 0.23.6

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.
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,49 @@
1
+ import { readBody } from 'h3';
2
+ import { createRemultServer, } from './server/index.js';
3
+ export function remultNuxt(options) {
4
+ const result = createRemultServer(options, {
5
+ buildGenericRequestInfo: (event) => {
6
+ return {
7
+ method: event.node.req.method,
8
+ url: event.node.req.url,
9
+ on: (a, b) => event.node.req.on('close', () => {
10
+ b();
11
+ }),
12
+ };
13
+ },
14
+ getRequestBody: async (event) => await readBody(event),
15
+ });
16
+ const handler = async (event) => {
17
+ let sse = false;
18
+ const response = {
19
+ end: () => { },
20
+ json: () => { },
21
+ status: () => {
22
+ return response;
23
+ },
24
+ write: (what) => {
25
+ event.node.res.write(what);
26
+ },
27
+ writeHead: (status, headers) => {
28
+ sse = true;
29
+ event.node.res.writeHead(status, headers);
30
+ },
31
+ };
32
+ const r = await result.handle(event, response);
33
+ if (sse) {
34
+ await new Promise((resolve) => {
35
+ event.node.req.on('close', () => resolve({}));
36
+ });
37
+ }
38
+ if (r) {
39
+ return r.data;
40
+ }
41
+ };
42
+ return Object.assign(handler, {
43
+ getRemult: (req) => result.getRemult(req),
44
+ openApiDoc: (options) => result.openApiDoc(options),
45
+ withRemult(event, what) {
46
+ return result.withRemultAsync(event, what);
47
+ },
48
+ });
49
+ }
@@ -176,11 +176,21 @@ export class RepositoryImplementation {
176
176
  return x;
177
177
  }
178
178
  async delete(item) {
179
+ const ref = getEntityRef(item, false);
180
+ if (ref)
181
+ return ref.delete();
179
182
  if (typeof item === 'string' || typeof item === 'number')
180
- return this.edp.delete(item);
181
- else {
182
- return this.getRefForExistingRow(item, undefined).delete();
183
- }
183
+ if (this.dataProvider.isProxy)
184
+ return this.edp.delete(item);
185
+ else {
186
+ let ref2 = await this.findId(item);
187
+ if (ref2)
188
+ return await getEntityRef(ref2).delete();
189
+ }
190
+ let ref2 = this.getRefForExistingRow(item, undefined);
191
+ if (!this.dataProvider.isProxy)
192
+ await ref2.reload();
193
+ return ref2.delete();
184
194
  }
185
195
  async insert(entity) {
186
196
  if (Array.isArray(entity)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.23.5",
3
+ "version": "0.23.6",
4
4
  "description": "A CRUD framework for full-stack TypeScript",
5
5
  "types": "index.d.ts",
6
6
  "module": "esm/index.js",
@@ -0,0 +1,6 @@
1
+ import type { H3Event } from 'h3';
2
+ import { RemultServerCore, RemultServerOptions, RemultServer } from './server/index.js';
3
+ export declare function remultNuxt(options: RemultServerOptions<H3Event>): RemultNuxtServer;
4
+ export type RemultNuxtServer = RemultServerCore<H3Event> & ((event: H3Event) => Promise<any>) & {
5
+ withRemult: RemultServer<H3Event>['withRemultAsync'];
6
+ };
package/remult-nuxt.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.remultNuxt = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var h3_1 = require("h3");
6
+ var index_js_1 = require("./server/index.js");
7
+ function remultNuxt(options) {
8
+ var _this = this;
9
+ var result = (0, index_js_1.createRemultServer)(options, {
10
+ buildGenericRequestInfo: function (event) {
11
+ return {
12
+ method: event.node.req.method,
13
+ url: event.node.req.url,
14
+ on: function (a, b) {
15
+ return event.node.req.on('close', function () {
16
+ b();
17
+ });
18
+ },
19
+ };
20
+ },
21
+ getRequestBody: function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
22
+ switch (_a.label) {
23
+ case 0: return [4 /*yield*/, (0, h3_1.readBody)(event)];
24
+ case 1: return [2 /*return*/, _a.sent()];
25
+ }
26
+ }); }); },
27
+ });
28
+ var handler = function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
29
+ var sse, response, r;
30
+ return tslib_1.__generator(this, function (_a) {
31
+ switch (_a.label) {
32
+ case 0:
33
+ sse = false;
34
+ response = {
35
+ end: function () { },
36
+ json: function () { },
37
+ status: function () {
38
+ return response;
39
+ },
40
+ write: function (what) {
41
+ event.node.res.write(what);
42
+ },
43
+ writeHead: function (status, headers) {
44
+ sse = true;
45
+ event.node.res.writeHead(status, headers);
46
+ },
47
+ };
48
+ return [4 /*yield*/, result.handle(event, response)];
49
+ case 1:
50
+ r = _a.sent();
51
+ if (!sse) return [3 /*break*/, 3];
52
+ return [4 /*yield*/, new Promise(function (resolve) {
53
+ event.node.req.on('close', function () { return resolve({}); });
54
+ })];
55
+ case 2:
56
+ _a.sent();
57
+ _a.label = 3;
58
+ case 3:
59
+ if (r) {
60
+ return [2 /*return*/, r.data];
61
+ }
62
+ return [2 /*return*/];
63
+ }
64
+ });
65
+ }); };
66
+ return Object.assign(handler, {
67
+ getRemult: function (req) { return result.getRemult(req); },
68
+ openApiDoc: function (options) { return result.openApiDoc(options); },
69
+ withRemult: function (event, what) {
70
+ return result.withRemultAsync(event, what);
71
+ },
72
+ });
73
+ }
74
+ exports.remultNuxt = remultNuxt;
@@ -233,13 +233,31 @@ var RepositoryImplementation = /** @class */ (function () {
233
233
  };
234
234
  RepositoryImplementation.prototype.delete = function (item) {
235
235
  return tslib_1.__awaiter(this, void 0, void 0, function () {
236
+ var ref, ref2_1, ref2;
236
237
  return tslib_1.__generator(this, function (_a) {
237
- if (typeof item === 'string' || typeof item === 'number')
238
- return [2 /*return*/, this.edp.delete(item)];
239
- else {
240
- return [2 /*return*/, this.getRefForExistingRow(item, undefined).delete()];
238
+ switch (_a.label) {
239
+ case 0:
240
+ ref = (0, getEntityRef_1.getEntityRef)(item, false);
241
+ if (ref)
242
+ return [2 /*return*/, ref.delete()];
243
+ if (!(typeof item === 'string' || typeof item === 'number')) return [3 /*break*/, 4];
244
+ if (!this.dataProvider.isProxy) return [3 /*break*/, 1];
245
+ return [2 /*return*/, this.edp.delete(item)];
246
+ case 1: return [4 /*yield*/, this.findId(item)];
247
+ case 2:
248
+ ref2_1 = _a.sent();
249
+ if (!ref2_1) return [3 /*break*/, 4];
250
+ return [4 /*yield*/, (0, getEntityRef_1.getEntityRef)(ref2_1).delete()];
251
+ case 3: return [2 /*return*/, _a.sent()];
252
+ case 4:
253
+ ref2 = this.getRefForExistingRow(item, undefined);
254
+ if (!!this.dataProvider.isProxy) return [3 /*break*/, 6];
255
+ return [4 /*yield*/, ref2.reload()];
256
+ case 5:
257
+ _a.sent();
258
+ _a.label = 6;
259
+ case 6: return [2 /*return*/, ref2.delete()];
241
260
  }
242
- return [2 /*return*/];
243
261
  });
244
262
  });
245
263
  };