remult 3.3.0-next.1 → 3.3.1
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 +1 -1
- package/esm/remult-knex/index.js +10 -3
- package/esm/remult-mongo.js +7 -3
- package/esm/server/get-remult-admin-html.js +125 -111
- package/esm/server/remult-admin.js +2 -0
- package/esm/server/remult-api-server.js +1 -1
- package/esm/src/data-api.js +30 -19
- package/esm/src/data-providers/rest-data-provider.js +48 -37
- package/esm/src/data-providers/sql-database.js +14 -3
- package/esm/src/live-query/SubscriptionChannel.js +52 -4
- package/esm/src/remult-proxy.js +4 -4
- package/esm/src/remult3/RepositoryImplementation.js +53 -25
- package/esm/src/server-action.js +2 -2
- package/esm/src/valueConverters.js +9 -5
- package/graphql.js +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/remult-knex/index.js +18 -9
- package/remult-mongo.js +6 -2
- package/server/get-remult-admin-html.js +1 -1
- package/server/remult-admin.d.ts +2 -0
- package/server/remult-admin.js +2 -1
- package/server/remult-api-server.js +1 -0
- package/src/data-api.d.ts +4 -4
- package/src/data-api.js +50 -30
- package/src/data-interfaces.d.ts +6 -6
- package/src/data-providers/rest-data-provider.d.ts +4 -4
- package/src/data-providers/rest-data-provider.js +48 -37
- package/src/data-providers/sql-database.js +14 -3
- package/src/live-query/SubscriptionChannel.d.ts +52 -4
- package/src/live-query/SubscriptionChannel.js +52 -4
- package/src/remult-proxy.js +4 -4
- package/src/remult3/RepositoryImplementation.d.ts +11 -10
- package/src/remult3/RepositoryImplementation.js +237 -177
- package/src/remult3/remult3.d.ts +25 -23
- package/src/server-action.js +2 -2
- package/src/valueConverters.d.ts +3 -1
- package/src/valueConverters.js +9 -6
package/esm/graphql.js
CHANGED
package/esm/remult-knex/index.js
CHANGED
|
@@ -208,7 +208,7 @@ class KnexEntityDataProvider {
|
|
|
208
208
|
wrapIdentifier: r.wrapIdentifier,
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
|
-
async update(id, data) {
|
|
211
|
+
async update(id, data, options) {
|
|
212
212
|
const e = await this.init();
|
|
213
213
|
let f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
|
|
214
214
|
Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
|
|
@@ -228,6 +228,8 @@ class KnexEntityDataProvider {
|
|
|
228
228
|
await this.getEntityFrom(e)
|
|
229
229
|
.update(updateObject)
|
|
230
230
|
.where((b) => where.forEach((w) => w(b)));
|
|
231
|
+
if (options?.select === 'none')
|
|
232
|
+
return undefined;
|
|
231
233
|
return getRowAfterUpdate(this.entity, this, data, id, 'update');
|
|
232
234
|
}
|
|
233
235
|
async delete(id) {
|
|
@@ -239,7 +241,7 @@ class KnexEntityDataProvider {
|
|
|
239
241
|
.delete()
|
|
240
242
|
.where((b) => where.forEach((w) => w(b)));
|
|
241
243
|
}
|
|
242
|
-
async insert(data) {
|
|
244
|
+
async insert(data, options) {
|
|
243
245
|
const e = await this.init();
|
|
244
246
|
let insertObject = {};
|
|
245
247
|
for (const x of this.entity.fields) {
|
|
@@ -254,7 +256,8 @@ class KnexEntityDataProvider {
|
|
|
254
256
|
}
|
|
255
257
|
}
|
|
256
258
|
let insert = this.getEntityFrom(e).insert(insertObject);
|
|
257
|
-
if (isAutoIncrement(this.entity.idMetadata.field)
|
|
259
|
+
if (isAutoIncrement(this.entity.idMetadata.field) &&
|
|
260
|
+
!(options?.select === 'none')) {
|
|
258
261
|
let newId;
|
|
259
262
|
if (this.knex.client.config.client === 'mysql2' ||
|
|
260
263
|
this.knex.client.config.client === 'mysql') {
|
|
@@ -265,12 +268,16 @@ class KnexEntityDataProvider {
|
|
|
265
268
|
let result = await insert.returning(this.entity.idMetadata.field.dbName);
|
|
266
269
|
newId = result[0][this.entity.idMetadata.field.dbName];
|
|
267
270
|
}
|
|
271
|
+
if (options?.select === 'none')
|
|
272
|
+
return undefined;
|
|
268
273
|
return this.find({
|
|
269
274
|
where: new Filter((x) => x.isEqualTo(this.entity.idMetadata.field, newId)),
|
|
270
275
|
}).then((y) => y[0]);
|
|
271
276
|
}
|
|
272
277
|
else
|
|
273
278
|
await insert;
|
|
279
|
+
if (options?.select === 'none')
|
|
280
|
+
return undefined;
|
|
274
281
|
return getRowAfterUpdate(this.entity, this, data, undefined, 'insert');
|
|
275
282
|
}
|
|
276
283
|
}
|
package/esm/remult-mongo.js
CHANGED
|
@@ -5,7 +5,7 @@ import { remult as remultContext } from './src/remult-proxy.js';
|
|
|
5
5
|
import { getRepository } from './src/remult3/RepositoryImplementation.js';
|
|
6
6
|
import { getRepositoryInternals } from './src/remult3/repository-internals.js';
|
|
7
7
|
import { getRowAfterUpdate } from './src/data-providers/sql-database.js';
|
|
8
|
-
import { GroupByCountMember, GroupByOperators } from './src/remult3/remult3.js';
|
|
8
|
+
import { GroupByCountMember, GroupByOperators, } from './src/remult3/remult3.js';
|
|
9
9
|
export class MongoDataProvider {
|
|
10
10
|
db;
|
|
11
11
|
client;
|
|
@@ -246,7 +246,7 @@ class MongoEntityDataProvider {
|
|
|
246
246
|
.map((x) => this.translateFromDb(x, e, options.select))
|
|
247
247
|
.toArray());
|
|
248
248
|
}
|
|
249
|
-
async update(id, data) {
|
|
249
|
+
async update(id, data, options) {
|
|
250
250
|
let { collection, e } = await this.collection();
|
|
251
251
|
let f = new FilterConsumerBridgeToMongo(e);
|
|
252
252
|
Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
|
|
@@ -262,6 +262,8 @@ class MongoEntityDataProvider {
|
|
|
262
262
|
let r = await collection.updateOne(await f.resolveWhere(), {
|
|
263
263
|
$set: newR,
|
|
264
264
|
}, { session: this.session });
|
|
265
|
+
if (options?.select === 'none')
|
|
266
|
+
return undefined;
|
|
265
267
|
return getRowAfterUpdate(this.entity, this, data, id, 'update');
|
|
266
268
|
}
|
|
267
269
|
async delete(id) {
|
|
@@ -272,11 +274,13 @@ class MongoEntityDataProvider {
|
|
|
272
274
|
session: this.session,
|
|
273
275
|
});
|
|
274
276
|
}
|
|
275
|
-
async insert(data) {
|
|
277
|
+
async insert(data, options) {
|
|
276
278
|
let { collection, e } = await this.collection();
|
|
277
279
|
let r = await collection.insertOne(await this.translateToDb(data, e), {
|
|
278
280
|
session: this.session,
|
|
279
281
|
});
|
|
282
|
+
if (options?.select === 'none')
|
|
283
|
+
return undefined;
|
|
280
284
|
return await this.translateFromDb(await collection.findOne({ _id: r.insertedId }, { session: this.session }), e);
|
|
281
285
|
}
|
|
282
286
|
async collection() {
|