remult 0.25.5-exp.2 → 0.25.5-exp.21
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/esm/graphql.js +87 -64
- package/esm/index.js +1 -0
- package/esm/package.json +1 -1
- package/esm/remult-fastify.js +3 -0
- package/esm/remult-hapi.js +3 -0
- package/esm/remult-knex/index.js +22 -5
- package/esm/remult-next.js +8 -0
- package/esm/remult-nuxt.js +3 -0
- package/esm/remult-sveltekit.js +63 -42
- package/esm/server/expressBridge.js +25 -0
- package/esm/server/get-remult-admin-html.js +3 -0
- package/esm/server/remult-admin.js +92 -0
- package/esm/src/remult-static.js +2 -1
- package/esm/src/remult3/Fields.js +7 -1
- package/esm/src/remult3/RepositoryImplementation.js +9 -5
- package/esm/src/remult3/remult3.js +47 -12
- package/esm/src/server-action.js +16 -11
- package/esm/src/sort.js +1 -1
- package/graphql.js +154 -99
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/internals.d.ts +1 -1
- package/package.json +1 -1
- package/remult-fastify.js +3 -0
- package/remult-hapi.js +3 -0
- package/remult-knex/index.js +73 -49
- package/remult-next.js +8 -0
- package/remult-nuxt.js +3 -0
- package/remult-sveltekit.d.ts +5 -1
- package/remult-sveltekit.js +85 -56
- package/server/expressBridge.d.ts +8 -0
- package/server/expressBridge.js +39 -0
- package/server/get-remult-admin-html.d.ts +1 -0
- package/server/get-remult-admin-html.js +7 -0
- package/server/remult-admin.d.ts +36 -0
- package/server/remult-admin.js +121 -0
- package/src/remult-static.js +2 -1
- package/src/remult3/Fields.d.ts +1 -0
- package/src/remult3/Fields.js +7 -1
- package/src/remult3/RepositoryImplementation.d.ts +9 -2
- package/src/remult3/RepositoryImplementation.js +9 -5
- package/src/remult3/remult3.js +47 -12
- package/src/remult3/repository-internals.d.ts +6 -0
- package/src/server-action.d.ts +2 -2
- package/src/server-action.js +16 -11
- package/src/sort.js +1 -1
package/remult-knex/index.js
CHANGED
|
@@ -23,11 +23,11 @@ var KnexDataProvider = /** @class */ (function () {
|
|
|
23
23
|
return r.knex;
|
|
24
24
|
};
|
|
25
25
|
KnexDataProvider.prototype.getEntityDataProvider = function (entity) {
|
|
26
|
-
var e_1, _a;
|
|
27
|
-
if (!
|
|
26
|
+
var e_1, _a, e_2, _b;
|
|
27
|
+
if (!supportsJsonLoadingAndSaving(this.knex))
|
|
28
28
|
try {
|
|
29
|
-
for (var
|
|
30
|
-
var f =
|
|
29
|
+
for (var _c = tslib_1.__values(entity.fields.toArray()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
30
|
+
var f = _d.value;
|
|
31
31
|
if (f.valueConverter.fieldTypeInDb === 'json') {
|
|
32
32
|
//@ts-ignore
|
|
33
33
|
f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb, fromDb: valueConverters_js_1.ValueConverters.JsonString.fromDb });
|
|
@@ -37,10 +37,28 @@ var KnexDataProvider = /** @class */ (function () {
|
|
|
37
37
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
38
|
finally {
|
|
39
39
|
try {
|
|
40
|
-
if (
|
|
40
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
41
41
|
}
|
|
42
42
|
finally { if (e_1) throw e_1.error; }
|
|
43
43
|
}
|
|
44
|
+
else if (this.knex.client.config.client === 'mysql2') {
|
|
45
|
+
try {
|
|
46
|
+
for (var _e = tslib_1.__values(entity.fields.toArray()), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
47
|
+
var f = _f.value;
|
|
48
|
+
if (f.valueConverter.fieldTypeInDb === 'json') {
|
|
49
|
+
//@ts-ignore
|
|
50
|
+
f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
55
|
+
finally {
|
|
56
|
+
try {
|
|
57
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
58
|
+
}
|
|
59
|
+
finally { if (e_2) throw e_2.error; }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
44
62
|
return new KnexEntityDataProvider(entity, this.knex);
|
|
45
63
|
};
|
|
46
64
|
KnexDataProvider.prototype.transaction = function (action) {
|
|
@@ -160,7 +178,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
160
178
|
KnexEntityDataProvider.prototype.find = function (options) {
|
|
161
179
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
162
180
|
var e, cols, colKeys, _a, _b, x, query, br, r_1, r;
|
|
163
|
-
var
|
|
181
|
+
var e_3, _c;
|
|
164
182
|
return tslib_1.__generator(this, function (_d) {
|
|
165
183
|
switch (_d.label) {
|
|
166
184
|
case 0: return [4 /*yield*/, this.init()];
|
|
@@ -179,12 +197,12 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
179
197
|
}
|
|
180
198
|
}
|
|
181
199
|
}
|
|
182
|
-
catch (
|
|
200
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
183
201
|
finally {
|
|
184
202
|
try {
|
|
185
203
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
186
204
|
}
|
|
187
|
-
finally { if (
|
|
205
|
+
finally { if (e_3) throw e_3.error; }
|
|
188
206
|
}
|
|
189
207
|
query = this.knex(e.$entityName).select(cols);
|
|
190
208
|
if (!(options === null || options === void 0 ? void 0 : options.where)) return [3 /*break*/, 3];
|
|
@@ -255,8 +273,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
255
273
|
};
|
|
256
274
|
KnexEntityDataProvider.prototype.update = function (id, data) {
|
|
257
275
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
258
|
-
var e, f, resultFilter, updateObject, _a, _b, x, v, key,
|
|
259
|
-
var
|
|
276
|
+
var e, f, resultFilter, updateObject, _a, _b, x, v, key, e_4_1, where;
|
|
277
|
+
var e_4, _c;
|
|
260
278
|
return tslib_1.__generator(this, function (_d) {
|
|
261
279
|
switch (_d.label) {
|
|
262
280
|
case 0: return [4 /*yield*/, this.init()];
|
|
@@ -292,14 +310,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
292
310
|
return [3 /*break*/, 3];
|
|
293
311
|
case 7: return [3 /*break*/, 10];
|
|
294
312
|
case 8:
|
|
295
|
-
|
|
296
|
-
|
|
313
|
+
e_4_1 = _d.sent();
|
|
314
|
+
e_4 = { error: e_4_1 };
|
|
297
315
|
return [3 /*break*/, 10];
|
|
298
316
|
case 9:
|
|
299
317
|
try {
|
|
300
318
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
301
319
|
}
|
|
302
|
-
finally { if (
|
|
320
|
+
finally { if (e_4) throw e_4.error; }
|
|
303
321
|
return [7 /*endfinally*/];
|
|
304
322
|
case 10: return [4 /*yield*/, f.resolveWhere()];
|
|
305
323
|
case 11:
|
|
@@ -341,8 +359,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
341
359
|
};
|
|
342
360
|
KnexEntityDataProvider.prototype.insert = function (data) {
|
|
343
361
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
344
|
-
var e, resultFilter, insertObject, _a, _b, x, v, key,
|
|
345
|
-
var
|
|
362
|
+
var e, resultFilter, insertObject, _a, _b, x, v, key, e_5_1, insert, newId_1, result, result;
|
|
363
|
+
var e_5, _c;
|
|
346
364
|
var _this = this;
|
|
347
365
|
return tslib_1.__generator(this, function (_d) {
|
|
348
366
|
switch (_d.label) {
|
|
@@ -377,14 +395,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
377
395
|
return [3 /*break*/, 3];
|
|
378
396
|
case 7: return [3 /*break*/, 10];
|
|
379
397
|
case 8:
|
|
380
|
-
|
|
381
|
-
|
|
398
|
+
e_5_1 = _d.sent();
|
|
399
|
+
e_5 = { error: e_5_1 };
|
|
382
400
|
return [3 /*break*/, 10];
|
|
383
401
|
case 9:
|
|
384
402
|
try {
|
|
385
403
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
386
404
|
}
|
|
387
|
-
finally { if (
|
|
405
|
+
finally { if (e_5) throw e_5.error; }
|
|
388
406
|
return [7 /*endfinally*/];
|
|
389
407
|
case 10:
|
|
390
408
|
insert = this.knex(e.$entityName).insert(insertObject);
|
|
@@ -428,8 +446,8 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
428
446
|
}
|
|
429
447
|
FilterConsumerBridgeToKnexRequest.prototype.resolveWhere = function () {
|
|
430
448
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
431
|
-
var p, p_1, p_1_1, pr,
|
|
432
|
-
var
|
|
449
|
+
var p, p_1, p_1_1, pr, e_6_1;
|
|
450
|
+
var e_6, _a;
|
|
433
451
|
return tslib_1.__generator(this, function (_b) {
|
|
434
452
|
switch (_b.label) {
|
|
435
453
|
case 0:
|
|
@@ -439,7 +457,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
439
457
|
_b.label = 1;
|
|
440
458
|
case 1:
|
|
441
459
|
_b.trys.push([1, 6, 7, 8]);
|
|
442
|
-
p_1 = (
|
|
460
|
+
p_1 = (e_6 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
|
|
443
461
|
_b.label = 2;
|
|
444
462
|
case 2:
|
|
445
463
|
if (!!p_1_1.done) return [3 /*break*/, 5];
|
|
@@ -453,14 +471,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
453
471
|
return [3 /*break*/, 2];
|
|
454
472
|
case 5: return [3 /*break*/, 8];
|
|
455
473
|
case 6:
|
|
456
|
-
|
|
457
|
-
|
|
474
|
+
e_6_1 = _b.sent();
|
|
475
|
+
e_6 = { error: e_6_1 };
|
|
458
476
|
return [3 /*break*/, 8];
|
|
459
477
|
case 7:
|
|
460
478
|
try {
|
|
461
479
|
if (p_1_1 && !p_1_1.done && (_a = p_1.return)) _a.call(p_1);
|
|
462
480
|
}
|
|
463
|
-
finally { if (
|
|
481
|
+
finally { if (e_6) throw e_6.error; }
|
|
464
482
|
return [7 /*endfinally*/];
|
|
465
483
|
case 8: return [3 /*break*/, 0];
|
|
466
484
|
case 9: return [2 /*return*/, this.result];
|
|
@@ -474,8 +492,8 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
474
492
|
FilterConsumerBridgeToKnexRequest.prototype.or = function (orElements) {
|
|
475
493
|
var _this = this;
|
|
476
494
|
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
477
|
-
var result, _loop_1, this_1, orElements_1, orElements_1_1, element, state_1,
|
|
478
|
-
var
|
|
495
|
+
var result, _loop_1, this_1, orElements_1, orElements_1_1, element, state_1, e_7_1;
|
|
496
|
+
var e_7, _a;
|
|
479
497
|
return tslib_1.__generator(this, function (_b) {
|
|
480
498
|
switch (_b.label) {
|
|
481
499
|
case 0:
|
|
@@ -524,14 +542,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
524
542
|
return [3 /*break*/, 2];
|
|
525
543
|
case 5: return [3 /*break*/, 8];
|
|
526
544
|
case 6:
|
|
527
|
-
|
|
528
|
-
|
|
545
|
+
e_7_1 = _b.sent();
|
|
546
|
+
e_7 = { error: e_7_1 };
|
|
529
547
|
return [3 /*break*/, 8];
|
|
530
548
|
case 7:
|
|
531
549
|
try {
|
|
532
550
|
if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
|
|
533
551
|
}
|
|
534
|
-
finally { if (
|
|
552
|
+
finally { if (e_7) throw e_7.error; }
|
|
535
553
|
return [7 /*endfinally*/];
|
|
536
554
|
case 8:
|
|
537
555
|
if (result.length > 0) {
|
|
@@ -650,8 +668,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
650
668
|
};
|
|
651
669
|
KnexSchemaBuilder.prototype.ensureSchema = function (entities) {
|
|
652
670
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
653
|
-
var entities_1, entities_1_1, entity, e, err_2,
|
|
654
|
-
var
|
|
671
|
+
var entities_1, entities_1_1, entity, e, err_2, e_8_1;
|
|
672
|
+
var e_8, _a;
|
|
655
673
|
return tslib_1.__generator(this, function (_b) {
|
|
656
674
|
switch (_b.label) {
|
|
657
675
|
case 0:
|
|
@@ -686,14 +704,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
686
704
|
return [3 /*break*/, 1];
|
|
687
705
|
case 9: return [3 /*break*/, 12];
|
|
688
706
|
case 10:
|
|
689
|
-
|
|
690
|
-
|
|
707
|
+
e_8_1 = _b.sent();
|
|
708
|
+
e_8 = { error: e_8_1 };
|
|
691
709
|
return [3 /*break*/, 12];
|
|
692
710
|
case 11:
|
|
693
711
|
try {
|
|
694
712
|
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
695
713
|
}
|
|
696
|
-
finally { if (
|
|
714
|
+
finally { if (e_8) throw e_8.error; }
|
|
697
715
|
return [7 /*endfinally*/];
|
|
698
716
|
case 12: return [2 /*return*/];
|
|
699
717
|
}
|
|
@@ -703,7 +721,7 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
703
721
|
KnexSchemaBuilder.prototype.createIfNotExist = function (entity) {
|
|
704
722
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
705
723
|
var e, cols_1, _a, _b, f;
|
|
706
|
-
var
|
|
724
|
+
var e_9, _c;
|
|
707
725
|
var _this = this;
|
|
708
726
|
return tslib_1.__generator(this, function (_d) {
|
|
709
727
|
switch (_d.label) {
|
|
@@ -723,15 +741,15 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
723
741
|
});
|
|
724
742
|
}
|
|
725
743
|
}
|
|
726
|
-
catch (
|
|
744
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
727
745
|
finally {
|
|
728
746
|
try {
|
|
729
747
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
730
748
|
}
|
|
731
|
-
finally { if (
|
|
749
|
+
finally { if (e_9) throw e_9.error; }
|
|
732
750
|
}
|
|
733
751
|
return [4 /*yield*/, logSql(this.knex.schema.createTable(e.$entityName, function (b) {
|
|
734
|
-
var
|
|
752
|
+
var e_10, _a;
|
|
735
753
|
try {
|
|
736
754
|
for (var _b = tslib_1.__values(entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
737
755
|
var x = _c.value;
|
|
@@ -739,19 +757,19 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
739
757
|
if ((0, RepositoryImplementation_js_1.isAutoIncrement)(x))
|
|
740
758
|
b.increments(cols_1.get(x).name);
|
|
741
759
|
else {
|
|
742
|
-
buildColumn(x, cols_1.get(x).name, b,
|
|
760
|
+
buildColumn(x, cols_1.get(x).name, b, supportsJsonDataStorage(_this.knex));
|
|
743
761
|
if (x == entity.idMetadata.field)
|
|
744
762
|
b.primary([cols_1.get(x).name]);
|
|
745
763
|
}
|
|
746
764
|
}
|
|
747
765
|
}
|
|
748
766
|
}
|
|
749
|
-
catch (
|
|
767
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
750
768
|
finally {
|
|
751
769
|
try {
|
|
752
770
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
753
771
|
}
|
|
754
|
-
finally { if (
|
|
772
|
+
finally { if (e_10) throw e_10.error; }
|
|
755
773
|
}
|
|
756
774
|
}))];
|
|
757
775
|
case 3:
|
|
@@ -779,7 +797,7 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
779
797
|
case 2:
|
|
780
798
|
if (!!(_a.sent())) return [3 /*break*/, 4];
|
|
781
799
|
return [4 /*yield*/, logSql(this.knex.schema.alterTable(e.$entityName, function (b) {
|
|
782
|
-
buildColumn(col, colName, b,
|
|
800
|
+
buildColumn(col, colName, b, supportsJsonDataStorage(_this.knex));
|
|
783
801
|
}))];
|
|
784
802
|
case 3:
|
|
785
803
|
_a.sent();
|
|
@@ -791,8 +809,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
791
809
|
};
|
|
792
810
|
KnexSchemaBuilder.prototype.verifyAllColumns = function (entity) {
|
|
793
811
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
794
|
-
var e, _loop_2, this_2, _a, _b, col,
|
|
795
|
-
var
|
|
812
|
+
var e, _loop_2, this_2, _a, _b, col, e_11_1, err_3;
|
|
813
|
+
var e_11, _c;
|
|
796
814
|
return tslib_1.__generator(this, function (_d) {
|
|
797
815
|
switch (_d.label) {
|
|
798
816
|
case 0: return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_1.dbNamesOf)(entity)];
|
|
@@ -832,14 +850,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
832
850
|
return [3 /*break*/, 4];
|
|
833
851
|
case 7: return [3 /*break*/, 10];
|
|
834
852
|
case 8:
|
|
835
|
-
|
|
836
|
-
|
|
853
|
+
e_11_1 = _d.sent();
|
|
854
|
+
e_11 = { error: e_11_1 };
|
|
837
855
|
return [3 /*break*/, 10];
|
|
838
856
|
case 9:
|
|
839
857
|
try {
|
|
840
858
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
841
859
|
}
|
|
842
|
-
finally { if (
|
|
860
|
+
finally { if (e_11) throw e_11.error; }
|
|
843
861
|
return [7 /*endfinally*/];
|
|
844
862
|
case 10: return [3 /*break*/, 12];
|
|
845
863
|
case 11:
|
|
@@ -856,11 +874,17 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
856
874
|
return KnexSchemaBuilder;
|
|
857
875
|
}());
|
|
858
876
|
exports.KnexSchemaBuilder = KnexSchemaBuilder;
|
|
859
|
-
function
|
|
877
|
+
function supportsJsonDataStorage(knex) {
|
|
878
|
+
var client = knex.client.config.client;
|
|
879
|
+
if ((client === null || client === void 0 ? void 0 : client.includes('sqlite3')) || (client === null || client === void 0 ? void 0 : client.includes('mssql')))
|
|
880
|
+
return false;
|
|
881
|
+
return true;
|
|
882
|
+
}
|
|
883
|
+
function supportsJsonLoadingAndSaving(knex) {
|
|
860
884
|
var client = knex.client.config.client;
|
|
861
885
|
if ((client === null || client === void 0 ? void 0 : client.includes('sqlite3')) ||
|
|
862
886
|
(client === null || client === void 0 ? void 0 : client.includes('mssql')) ||
|
|
863
|
-
|
|
887
|
+
client == 'mysql')
|
|
864
888
|
return false;
|
|
865
889
|
return true;
|
|
866
890
|
}
|
package/remult-next.js
CHANGED
|
@@ -98,6 +98,7 @@ function remultNextApp(options) {
|
|
|
98
98
|
response_1 = {
|
|
99
99
|
end: function () { },
|
|
100
100
|
json: function () { },
|
|
101
|
+
send: function () { },
|
|
101
102
|
status: function () {
|
|
102
103
|
return response_1;
|
|
103
104
|
},
|
|
@@ -145,6 +146,13 @@ function remultNextApp(options) {
|
|
|
145
146
|
return [2 /*return*/, sseResponse_1];
|
|
146
147
|
}
|
|
147
148
|
if (responseFromRemultHandler) {
|
|
149
|
+
if (responseFromRemultHandler.html)
|
|
150
|
+
return [2 /*return*/, new Response(responseFromRemultHandler.html, {
|
|
151
|
+
status: responseFromRemultHandler.statusCode,
|
|
152
|
+
headers: {
|
|
153
|
+
'Content-Type': 'text/html',
|
|
154
|
+
},
|
|
155
|
+
})];
|
|
148
156
|
return [2 /*return*/, new Response(JSON.stringify(responseFromRemultHandler.data), {
|
|
149
157
|
status: responseFromRemultHandler.statusCode,
|
|
150
158
|
})];
|
package/remult-nuxt.js
CHANGED
|
@@ -33,6 +33,7 @@ function remultNuxt(options) {
|
|
|
33
33
|
sse = false;
|
|
34
34
|
response = {
|
|
35
35
|
end: function () { },
|
|
36
|
+
send: function () { },
|
|
36
37
|
json: function () { },
|
|
37
38
|
status: function () {
|
|
38
39
|
return response;
|
|
@@ -59,6 +60,8 @@ function remultNuxt(options) {
|
|
|
59
60
|
if (r) {
|
|
60
61
|
if (r.statusCode !== 200)
|
|
61
62
|
(0, h3_1.setResponseStatus)(event, r.statusCode);
|
|
63
|
+
if (r.html)
|
|
64
|
+
return [2 /*return*/, r.html];
|
|
62
65
|
return [2 /*return*/, r.data];
|
|
63
66
|
}
|
|
64
67
|
return [2 /*return*/];
|
package/remult-sveltekit.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type { Handle, RequestEvent } from '@sveltejs/kit';
|
|
1
|
+
import type { Handle, RequestEvent, RequestHandler } from '@sveltejs/kit';
|
|
2
2
|
import type { RemultServerCore, RemultServerOptions, RemultServer } from './server/index.js';
|
|
3
3
|
export declare function remultSveltekit(options?: RemultServerOptions<RequestEvent>): RemultSveltekitServer;
|
|
4
4
|
export type RemultSveltekitServer = RemultServerCore<RequestEvent> & Handle & {
|
|
5
5
|
withRemult: RemultServer<RequestEvent>['withRemultAsync'];
|
|
6
|
+
GET: RequestHandler;
|
|
7
|
+
PUT: RequestHandler;
|
|
8
|
+
POST: RequestHandler;
|
|
9
|
+
DELETE: RequestHandler;
|
|
6
10
|
};
|
package/remult-sveltekit.js
CHANGED
|
@@ -17,71 +17,96 @@ function remultSveltekit(options) {
|
|
|
17
17
|
}); },
|
|
18
18
|
getRequestBody: function (event) { return event.request.json(); },
|
|
19
19
|
});
|
|
20
|
+
var serverHandler = function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
21
|
+
var sseResponse, response, responseFromRemultHandler, res;
|
|
22
|
+
return tslib_1.__generator(this, function (_a) {
|
|
23
|
+
switch (_a.label) {
|
|
24
|
+
case 0:
|
|
25
|
+
sseResponse = undefined;
|
|
26
|
+
event.locals['_tempOnClose'] = function () { };
|
|
27
|
+
response = {
|
|
28
|
+
end: function () { },
|
|
29
|
+
json: function () { },
|
|
30
|
+
send: function () { },
|
|
31
|
+
status: function () {
|
|
32
|
+
return response;
|
|
33
|
+
},
|
|
34
|
+
write: function () { },
|
|
35
|
+
writeHead: function (status, headers) {
|
|
36
|
+
if (status === 200 && headers) {
|
|
37
|
+
var contentType = headers['Content-Type'];
|
|
38
|
+
if (contentType === 'text/event-stream') {
|
|
39
|
+
var messages_1 = [];
|
|
40
|
+
response.write = function (x) { return messages_1.push(x); };
|
|
41
|
+
var stream = new ReadableStream({
|
|
42
|
+
start: function (controller) {
|
|
43
|
+
var e_1, _a;
|
|
44
|
+
try {
|
|
45
|
+
for (var messages_2 = tslib_1.__values(messages_1), messages_2_1 = messages_2.next(); !messages_2_1.done; messages_2_1 = messages_2.next()) {
|
|
46
|
+
var message = messages_2_1.value;
|
|
47
|
+
controller.enqueue(message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
51
|
+
finally {
|
|
52
|
+
try {
|
|
53
|
+
if (messages_2_1 && !messages_2_1.done && (_a = messages_2.return)) _a.call(messages_2);
|
|
54
|
+
}
|
|
55
|
+
finally { if (e_1) throw e_1.error; }
|
|
56
|
+
}
|
|
57
|
+
response.write = function (data) {
|
|
58
|
+
controller.enqueue(data);
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
cancel: function () {
|
|
62
|
+
response.write = function () { };
|
|
63
|
+
event.locals['_tempOnClose']();
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
sseResponse = new Response(stream, { headers: headers });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
return [4 /*yield*/, result.handle(event, response)];
|
|
72
|
+
case 1:
|
|
73
|
+
responseFromRemultHandler = _a.sent();
|
|
74
|
+
if (sseResponse !== undefined) {
|
|
75
|
+
return [2 /*return*/, sseResponse];
|
|
76
|
+
}
|
|
77
|
+
if (responseFromRemultHandler) {
|
|
78
|
+
if (responseFromRemultHandler.html)
|
|
79
|
+
return [2 /*return*/, new Response(responseFromRemultHandler.html, {
|
|
80
|
+
status: responseFromRemultHandler.statusCode,
|
|
81
|
+
headers: {
|
|
82
|
+
'Content-Type': 'text/html',
|
|
83
|
+
},
|
|
84
|
+
})];
|
|
85
|
+
res = new Response(JSON.stringify(responseFromRemultHandler.data), {
|
|
86
|
+
status: responseFromRemultHandler.statusCode,
|
|
87
|
+
});
|
|
88
|
+
return [2 /*return*/, res];
|
|
89
|
+
}
|
|
90
|
+
return [2 /*return*/, new Response('Not Found', {
|
|
91
|
+
status: 404,
|
|
92
|
+
})];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}); };
|
|
20
96
|
var handler = function (_a) {
|
|
21
97
|
var event = _a.event, resolve = _a.resolve;
|
|
22
98
|
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
23
|
-
var
|
|
99
|
+
var result_1;
|
|
24
100
|
var _this = this;
|
|
25
101
|
return tslib_1.__generator(this, function (_b) {
|
|
26
102
|
switch (_b.label) {
|
|
27
103
|
case 0:
|
|
28
104
|
if (!event.url.pathname.startsWith(options.rootPath)) return [3 /*break*/, 2];
|
|
29
|
-
|
|
30
|
-
event.locals['_tempOnClose'] = function () { };
|
|
31
|
-
response_1 = {
|
|
32
|
-
end: function () { },
|
|
33
|
-
json: function () { },
|
|
34
|
-
status: function () {
|
|
35
|
-
return response_1;
|
|
36
|
-
},
|
|
37
|
-
write: function () { },
|
|
38
|
-
writeHead: function (status, headers) {
|
|
39
|
-
if (status === 200 && headers) {
|
|
40
|
-
var contentType = headers['Content-Type'];
|
|
41
|
-
if (contentType === 'text/event-stream') {
|
|
42
|
-
var messages_1 = [];
|
|
43
|
-
response_1.write = function (x) { return messages_1.push(x); };
|
|
44
|
-
var stream = new ReadableStream({
|
|
45
|
-
start: function (controller) {
|
|
46
|
-
var e_1, _a;
|
|
47
|
-
try {
|
|
48
|
-
for (var messages_2 = tslib_1.__values(messages_1), messages_2_1 = messages_2.next(); !messages_2_1.done; messages_2_1 = messages_2.next()) {
|
|
49
|
-
var message = messages_2_1.value;
|
|
50
|
-
controller.enqueue(message);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
54
|
-
finally {
|
|
55
|
-
try {
|
|
56
|
-
if (messages_2_1 && !messages_2_1.done && (_a = messages_2.return)) _a.call(messages_2);
|
|
57
|
-
}
|
|
58
|
-
finally { if (e_1) throw e_1.error; }
|
|
59
|
-
}
|
|
60
|
-
response_1.write = function (data) {
|
|
61
|
-
controller.enqueue(data);
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
cancel: function () {
|
|
65
|
-
response_1.write = function () { };
|
|
66
|
-
event.locals['_tempOnClose']();
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
sseResponse_1 = new Response(stream, { headers: headers });
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
return [4 /*yield*/, result.handle(event, response_1)];
|
|
105
|
+
return [4 /*yield*/, serverHandler(event)];
|
|
75
106
|
case 1:
|
|
76
|
-
|
|
77
|
-
if (
|
|
78
|
-
return [2 /*return*/,
|
|
79
|
-
}
|
|
80
|
-
if (responseFromRemultHandler) {
|
|
81
|
-
return [2 /*return*/, new Response(JSON.stringify(responseFromRemultHandler.data), {
|
|
82
|
-
status: responseFromRemultHandler.statusCode,
|
|
83
|
-
})];
|
|
84
|
-
}
|
|
107
|
+
result_1 = _b.sent();
|
|
108
|
+
if (result_1 != null && (result_1 === null || result_1 === void 0 ? void 0 : result_1.status) != 404)
|
|
109
|
+
return [2 /*return*/, result_1];
|
|
85
110
|
_b.label = 2;
|
|
86
111
|
case 2: return [2 /*return*/, new Promise(function (res) {
|
|
87
112
|
result.withRemult(event, undefined, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
@@ -108,6 +133,10 @@ function remultSveltekit(options) {
|
|
|
108
133
|
withRemult: function (request, what) {
|
|
109
134
|
return result.withRemultAsync(request, what);
|
|
110
135
|
},
|
|
136
|
+
GET: serverHandler,
|
|
137
|
+
PUT: serverHandler,
|
|
138
|
+
POST: serverHandler,
|
|
139
|
+
DELETE: serverHandler,
|
|
111
140
|
});
|
|
112
141
|
}
|
|
113
142
|
exports.remultSveltekit = remultSveltekit;
|
|
@@ -47,6 +47,8 @@ export interface RemultServerOptions<RequestType> {
|
|
|
47
47
|
serialize(remult: Remult): Promise<any>;
|
|
48
48
|
deserialize(json: any, options: InitRequestOptions): Promise<void>;
|
|
49
49
|
};
|
|
50
|
+
/** When set to true, will display an admin ui in the `/api/admin` url */
|
|
51
|
+
admin?: boolean;
|
|
50
52
|
/** Storage to use for backend methods that use queue */
|
|
51
53
|
queueStorage?: QueueStorage;
|
|
52
54
|
}
|
|
@@ -58,6 +60,7 @@ export declare function createRemultServerCore<RequestType>(options: RemultServe
|
|
|
58
60
|
export type GenericRequestHandler = (req: GenericRequestInfo, res: GenericResponse, next: VoidFunction) => void;
|
|
59
61
|
export interface ServerHandleResponse {
|
|
60
62
|
data?: any;
|
|
63
|
+
html?: string;
|
|
61
64
|
statusCode: number;
|
|
62
65
|
}
|
|
63
66
|
export interface RemultServer<RequestType> extends RemultServerCore<RequestType> {
|
|
@@ -90,6 +93,7 @@ export interface GenericRequestInfo {
|
|
|
90
93
|
}
|
|
91
94
|
export interface GenericResponse {
|
|
92
95
|
json(data: any): any;
|
|
96
|
+
send(html: string): any;
|
|
93
97
|
status(statusCode: number): GenericResponse;
|
|
94
98
|
end(): any;
|
|
95
99
|
}
|
|
@@ -116,6 +120,10 @@ export declare class RouteImplementation<RequestType> {
|
|
|
116
120
|
private coreOptions;
|
|
117
121
|
constructor(coreOptions: ServerCoreOptions<RequestType>);
|
|
118
122
|
map: Map<string, Map<string, GenericRequestHandler>>;
|
|
123
|
+
starRoutes: {
|
|
124
|
+
route: string;
|
|
125
|
+
handler: Map<string, GenericRequestHandler>;
|
|
126
|
+
}[];
|
|
119
127
|
route(path: string): SpecificRoute;
|
|
120
128
|
handle(req: RequestType, gRes?: GenericResponse): Promise<ServerHandleResponse | undefined>;
|
|
121
129
|
middleware(origReq: RequestType, res: GenericResponse, next: VoidFunction): void;
|