remult 0.25.5-exp.13 → 0.25.5-exp.14

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 CHANGED
@@ -369,9 +369,10 @@ export function remultGraphql(options) {
369
369
  });
370
370
  currentType.mutation.delete.payload = upsertTypes(deletePayload);
371
371
  const deletedResultKey = `id`;
372
+ const type = getGraphqlBaseType(meta.fields.find('id'));
372
373
  currentType.mutation.delete.payload.fields.push({
373
374
  key: deletedResultKey,
374
- value: 'ID',
375
+ value: `${type}`,
375
376
  }, argErrorDetail, argClientMutationId);
376
377
  root[deleteResolverKey] = handleMutationWithErrors(async (dApi, response, setResult, arg1, req) => {
377
378
  await dApi.delete({
@@ -388,21 +389,7 @@ export function remultGraphql(options) {
388
389
  const ri = getRelationFieldInfo(f);
389
390
  if (f.options.includeInApi === false)
390
391
  continue;
391
- let type = 'String';
392
- switch (f.valueType) {
393
- case Boolean:
394
- type = 'Boolean';
395
- break;
396
- case Number:
397
- {
398
- if (f.valueConverter?.fieldTypeInDb === 'integer' ||
399
- f.valueConverter?.fieldTypeInDb === 'autoincrement')
400
- type = 'Int';
401
- else
402
- type = 'Float';
403
- }
404
- break;
405
- }
392
+ const type = getGraphqlBaseType(f);
406
393
  currentType.query.resultProcessors.push((r) => {
407
394
  r[nodeIdKey] = () => getMetaType(meta) + ':' + meta.idMetadata.getId(r);
408
395
  });
@@ -828,6 +815,24 @@ function fieldFormat(field) {
828
815
  }
829
816
  return `${strComment} ${key_value}`;
830
817
  }
818
+ function getGraphqlBaseType(field) {
819
+ let type = 'String';
820
+ switch (field.valueType) {
821
+ case Boolean:
822
+ type = 'Boolean';
823
+ break;
824
+ case Number:
825
+ {
826
+ if (field.valueConverter?.fieldTypeInDb === 'integer' ||
827
+ field.valueConverter?.fieldTypeInDb === 'autoincrement')
828
+ type = 'Int';
829
+ else
830
+ type = 'Float';
831
+ }
832
+ break;
833
+ }
834
+ return type;
835
+ }
831
836
  function getMetaType(entityMeta) {
832
837
  return entityMeta.entityType.name;
833
838
  }
package/esm/package.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "type": "module"
2
+ "type": "module"
3
3
  }
@@ -63,6 +63,7 @@ export function remultSveltekit(options) {
63
63
  });
64
64
  return new Response(JSON.stringify(responseFromRemultHandler.data), {
65
65
  status: responseFromRemultHandler.statusCode,
66
+ headers: (await resolve(event)).headers,
66
67
  });
67
68
  }
68
69
  }
@@ -1,16 +1,30 @@
1
1
  export {};
2
+ /*y1 - workshop
3
+
4
+ * Experiment with doing this with version control - so the students can follow changes
5
+ * Prepare stackblitz
6
+
7
+
8
+ # influencer:
9
+ * review react summit
10
+ #
11
+
2
12
  //y1 - admin url!
3
13
  //y1 - number default storage in knex is decimal and it by default has 8,2 - meaning only 999,999 - I think it should be way bigger than that. in firefly we do at least 18 - https://discord.com/channels/975754286384418847/1195162533447876658
4
14
  //y1 - talk about the parameter issue with backend methods
5
15
  //y1 - tried to upgrade vitest, nuxt tests are failing with loading uuid - sounds familiar?
6
16
  //y1 - I think that the tests you've setup cover next app router - I added to the setup, but not sure where else
17
+ //y1 - select data provider per entity https://discord.com/channels/975754286384418847/976006081748807690/1201415305885397003
18
+
19
+
7
20
  //p1 - Small thing, I get SvelteKitError: Not found: /vite.svg
8
- //p1 - live query with include
21
+ //p1 - understand the to many relation for the admin, based on the to one
9
22
  //p1 - relation from order details to order gave a compound id info - and it is not true - same for the relation to product
10
- //p1 - include admin in remult
23
+ //p1 - live query with include
11
24
  //p1 - new row when there are relations, looks funny (see product)
12
25
  //p1 - the + row in the bottom should extend to the full width
13
- //p1 - adjust angular starter kit for latest angular (as is in tutorial)
26
+ //p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial)
27
+
14
28
  /*y2 -
15
29
  @Fields.string<Category>({
16
30
  allowApiUpdate: (c) => getEntityRef(c).isNew(),
package/graphql.js CHANGED
@@ -12,7 +12,6 @@ var _removeComments = false;
12
12
  function remultGraphql(options) {
13
13
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e;
14
14
  var _this = this;
15
- var _f, _g;
16
15
  if (!options.getRemultFromRequest) {
17
16
  options.getRemultFromRequest = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
18
17
  return [2 /*return*/, index_js_1.remult];
@@ -69,16 +68,16 @@ function remultGraphql(options) {
69
68
  }
70
69
  try {
71
70
  // Where - GraphQL primitives
72
- for (var _h = tslib_1.__values(['String', 'Int', 'Float', 'Boolean', 'ID']), _j = _h.next(); !_j.done; _j = _h.next()) {
73
- var whereType = _j.value;
71
+ for (var _f = tslib_1.__values(['String', 'Int', 'Float', 'Boolean', 'ID']), _g = _f.next(); !_g.done; _g = _f.next()) {
72
+ var whereType = _g.value;
74
73
  var currentWhere = upsertTypes("Where".concat(whereType), 'input', 20);
75
74
  var currentWhereNullable = upsertTypes("Where".concat(whereType, "Nullable"), 'input', 20);
76
75
  // For everyone
77
76
  var operatorType = ['eq', 'ne'];
78
77
  var operatorTypeArray = ['in', 'nin'];
79
78
  try {
80
- for (var _k = (e_2 = void 0, tslib_1.__values(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(operatorType), false), tslib_1.__read(operatorTypeArray), false))), _l = _k.next(); !_l.done; _l = _k.next()) {
81
- var operator = _l.value;
79
+ for (var _h = (e_2 = void 0, tslib_1.__values(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(operatorType), false), tslib_1.__read(operatorTypeArray), false))), _j = _h.next(); !_j.done; _j = _h.next()) {
80
+ var operator = _j.value;
82
81
  var field = {
83
82
  key: operator,
84
83
  value: operatorTypeArray.includes(operator)
@@ -92,7 +91,7 @@ function remultGraphql(options) {
92
91
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
93
92
  finally {
94
93
  try {
95
- if (_l && !_l.done && (_b = _k.return)) _b.call(_k);
94
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
96
95
  }
97
96
  finally { if (e_2) throw e_2.error; }
98
97
  }
@@ -101,8 +100,8 @@ function remultGraphql(options) {
101
100
  whereType === 'Int' ||
102
101
  whereType === 'Float') {
103
102
  try {
104
- for (var _m = (e_3 = void 0, tslib_1.__values(['gt', 'gte', 'lt', 'lte'])), _o = _m.next(); !_o.done; _o = _m.next()) {
105
- var operator = _o.value;
103
+ for (var _k = (e_3 = void 0, tslib_1.__values(['gt', 'gte', 'lt', 'lte'])), _l = _k.next(); !_l.done; _l = _k.next()) {
104
+ var operator = _l.value;
106
105
  var field = {
107
106
  key: operator,
108
107
  value: whereType,
@@ -114,15 +113,15 @@ function remultGraphql(options) {
114
113
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
115
114
  finally {
116
115
  try {
117
- if (_o && !_o.done && (_c = _m.return)) _c.call(_m);
116
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
118
117
  }
119
118
  finally { if (e_3) throw e_3.error; }
120
119
  }
121
120
  }
122
121
  if (whereType === 'String') {
123
122
  try {
124
- for (var _p = (e_4 = void 0, tslib_1.__values(['contains', 'notContains'])), _q = _p.next(); !_q.done; _q = _p.next()) {
125
- var operator = _q.value;
123
+ for (var _m = (e_4 = void 0, tslib_1.__values(['contains', 'notContains'])), _o = _m.next(); !_o.done; _o = _m.next()) {
124
+ var operator = _o.value;
126
125
  var field = {
127
126
  key: operator,
128
127
  value: whereType,
@@ -134,7 +133,7 @@ function remultGraphql(options) {
134
133
  catch (e_4_1) { e_4 = { error: e_4_1 }; }
135
134
  finally {
136
135
  try {
137
- if (_q && !_q.done && (_d = _p.return)) _d.call(_p);
136
+ if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
138
137
  }
139
138
  finally { if (e_4) throw e_4.error; }
140
139
  }
@@ -149,7 +148,7 @@ function remultGraphql(options) {
149
148
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
150
149
  finally {
151
150
  try {
152
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
151
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
153
152
  }
154
153
  finally { if (e_1) throw e_1.error; }
155
154
  }
@@ -165,7 +164,7 @@ function remultGraphql(options) {
165
164
  var argClientMutationId = { key: 'clientMutationId', value: "String" };
166
165
  var argErrorDetail = { key: 'error', value: "ErrorDetail" };
167
166
  var _loop_1 = function (meta) {
168
- var e_6, _r;
167
+ var e_6, _p;
169
168
  var orderByFields = [];
170
169
  var key = meta.key;
171
170
  var currentType = upsertTypes(getMetaType(meta), 'type_impl_node');
@@ -454,9 +453,10 @@ function remultGraphql(options) {
454
453
  });
455
454
  currentType.mutation.delete.payload = upsertTypes(deletePayload);
456
455
  var deletedResultKey_1 = "id";
456
+ var type = getGraphqlBaseType(meta.fields.find('id'));
457
457
  currentType.mutation.delete.payload.fields.push({
458
458
  key: deletedResultKey_1,
459
- value: 'ID',
459
+ value: "".concat(type),
460
460
  }, argErrorDetail, argClientMutationId);
461
461
  root[deleteResolverKey_1] = handleMutationWithErrors(function (dApi, response, setResult, arg1, req) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
462
462
  return tslib_1.__generator(this, function (_a) {
@@ -478,21 +478,7 @@ function remultGraphql(options) {
478
478
  var ri = (0, internals_js_1.getRelationFieldInfo)(f);
479
479
  if (f.options.includeInApi === false)
480
480
  return "continue";
481
- var type = 'String';
482
- switch (f.valueType) {
483
- case Boolean:
484
- type = 'Boolean';
485
- break;
486
- case Number:
487
- {
488
- if (((_f = f.valueConverter) === null || _f === void 0 ? void 0 : _f.fieldTypeInDb) === 'integer' ||
489
- ((_g = f.valueConverter) === null || _g === void 0 ? void 0 : _g.fieldTypeInDb) === 'autoincrement')
490
- type = 'Int';
491
- else
492
- type = 'Float';
493
- }
494
- break;
495
- }
481
+ var type = getGraphqlBaseType(f);
496
482
  currentType.query.resultProcessors.push(function (r) {
497
483
  r[nodeIdKey] = function () {
498
484
  return getMetaType(meta) + ':' + meta.idMetadata.getId(r);
@@ -673,15 +659,15 @@ function remultGraphql(options) {
673
659
  }
674
660
  };
675
661
  try {
676
- for (var _s = (e_6 = void 0, tslib_1.__values(meta.fields)), _t = _s.next(); !_t.done; _t = _s.next()) {
677
- var f = _t.value;
662
+ for (var _q = (e_6 = void 0, tslib_1.__values(meta.fields)), _r = _q.next(); !_r.done; _r = _q.next()) {
663
+ var f = _r.value;
678
664
  _loop_2(f);
679
665
  }
680
666
  }
681
667
  catch (e_6_1) { e_6 = { error: e_6_1 }; }
682
668
  finally {
683
669
  try {
684
- if (_t && !_t.done && (_r = _s.return)) _r.call(_s);
670
+ if (_r && !_r.done && (_p = _q.return)) _p.call(_q);
685
671
  }
686
672
  finally { if (e_6) throw e_6.error; }
687
673
  }
@@ -976,6 +962,25 @@ function fieldFormat(field) {
976
962
  }
977
963
  return "".concat(strComment, " ").concat(key_value);
978
964
  }
965
+ function getGraphqlBaseType(field) {
966
+ var _a, _b;
967
+ var type = 'String';
968
+ switch (field.valueType) {
969
+ case Boolean:
970
+ type = 'Boolean';
971
+ break;
972
+ case Number:
973
+ {
974
+ if (((_a = field.valueConverter) === null || _a === void 0 ? void 0 : _a.fieldTypeInDb) === 'integer' ||
975
+ ((_b = field.valueConverter) === null || _b === void 0 ? void 0 : _b.fieldTypeInDb) === 'autoincrement')
976
+ type = 'Int';
977
+ else
978
+ type = 'Float';
979
+ }
980
+ break;
981
+ }
982
+ return type;
983
+ }
979
984
  function getMetaType(entityMeta) {
980
985
  return entityMeta.entityType.name;
981
986
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.25.5-exp.13",
3
+ "version": "0.25.5-exp.14",
4
4
  "description": "A CRUD framework for full-stack TypeScript",
5
5
  "homepage": "https://remult.dev",
6
6
  "repository": {
@@ -20,12 +20,13 @@ function remultSveltekit(options) {
20
20
  var handler = function (_a) {
21
21
  var event = _a.event, resolve = _a.resolve;
22
22
  return tslib_1.__awaiter(_this, void 0, void 0, function () {
23
- var sseResponse_1, response_1, responseFromRemultHandler;
23
+ var sseResponse_1, response_1, responseFromRemultHandler, _b, _c;
24
+ var _d;
24
25
  var _this = this;
25
- return tslib_1.__generator(this, function (_b) {
26
- switch (_b.label) {
26
+ return tslib_1.__generator(this, function (_e) {
27
+ switch (_e.label) {
27
28
  case 0:
28
- if (!event.url.pathname.startsWith(options.rootPath)) return [3 /*break*/, 2];
29
+ if (!event.url.pathname.startsWith(options.rootPath)) return [3 /*break*/, 3];
29
30
  sseResponse_1 = undefined;
30
31
  event.locals['_tempOnClose'] = function () { };
31
32
  response_1 = {
@@ -74,24 +75,27 @@ function remultSveltekit(options) {
74
75
  };
75
76
  return [4 /*yield*/, result.handle(event, response_1)];
76
77
  case 1:
77
- responseFromRemultHandler = _b.sent();
78
+ responseFromRemultHandler = _e.sent();
78
79
  if (sseResponse_1 !== undefined) {
79
80
  return [2 /*return*/, sseResponse_1];
80
81
  }
81
- if (responseFromRemultHandler) {
82
- if (responseFromRemultHandler.html)
83
- return [2 /*return*/, new Response(responseFromRemultHandler.html, {
84
- status: responseFromRemultHandler.statusCode,
85
- headers: {
86
- 'Content-Type': 'text/html',
87
- },
88
- })];
89
- return [2 /*return*/, new Response(JSON.stringify(responseFromRemultHandler.data), {
82
+ if (!responseFromRemultHandler) return [3 /*break*/, 3];
83
+ if (responseFromRemultHandler.html)
84
+ return [2 /*return*/, new Response(responseFromRemultHandler.html, {
90
85
  status: responseFromRemultHandler.statusCode,
86
+ headers: {
87
+ 'Content-Type': 'text/html',
88
+ },
91
89
  })];
92
- }
93
- _b.label = 2;
94
- case 2: return [2 /*return*/, new Promise(function (res) {
90
+ _b = Response.bind;
91
+ _c = [void 0, JSON.stringify(responseFromRemultHandler.data)];
92
+ _d = {
93
+ status: responseFromRemultHandler.statusCode
94
+ };
95
+ return [4 /*yield*/, resolve(event)];
96
+ case 2: return [2 /*return*/, new (_b.apply(Response, _c.concat([(_d.headers = (_e.sent()).headers,
97
+ _d)])))()];
98
+ case 3: return [2 /*return*/, new Promise(function (res) {
95
99
  result.withRemult(event, undefined, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
96
100
  var _a;
97
101
  return tslib_1.__generator(this, function (_b) {
@@ -1,17 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /*y1 - workshop
4
+
5
+ * Experiment with doing this with version control - so the students can follow changes
6
+ * Prepare stackblitz
7
+
8
+
9
+ # influencer:
10
+ * review react summit
11
+ #
12
+
3
13
  //y1 - admin url!
4
14
  //y1 - number default storage in knex is decimal and it by default has 8,2 - meaning only 999,999 - I think it should be way bigger than that. in firefly we do at least 18 - https://discord.com/channels/975754286384418847/1195162533447876658
5
15
  //y1 - talk about the parameter issue with backend methods
6
16
  //y1 - tried to upgrade vitest, nuxt tests are failing with loading uuid - sounds familiar?
7
17
  //y1 - I think that the tests you've setup cover next app router - I added to the setup, but not sure where else
18
+ //y1 - select data provider per entity https://discord.com/channels/975754286384418847/976006081748807690/1201415305885397003
19
+
20
+
8
21
  //p1 - Small thing, I get SvelteKitError: Not found: /vite.svg
9
- //p1 - live query with include
22
+ //p1 - understand the to many relation for the admin, based on the to one
10
23
  //p1 - relation from order details to order gave a compound id info - and it is not true - same for the relation to product
11
- //p1 - include admin in remult
24
+ //p1 - live query with include
12
25
  //p1 - new row when there are relations, looks funny (see product)
13
26
  //p1 - the + row in the bottom should extend to the full width
14
- //p1 - adjust angular starter kit for latest angular (as is in tutorial)
27
+ //p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial)
28
+
15
29
  /*y2 -
16
30
  @Fields.string<Category>({
17
31
  allowApiUpdate: (c) => getEntityRef(c).isNew(),