remult 0.22.1 → 0.22.3
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 +27 -27
- package/esm/postgres/schema-builder.js +4 -4
- package/esm/remult-knex/index.js +2 -2
- package/esm/remult-mongo.js +6 -6
- package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +30 -0
- package/esm/src/id-entity.d.ts +4 -0
- package/esm/src/id-entity.js +8 -0
- package/esm/src/remult3/RepositoryImplementation.js +7 -5
- package/esm/src/shared-tests/db-tests.db-tests.js +35 -0
- package/package.json +1 -1
- package/postgres/postgresColumnSyntax.d.ts +2 -0
- package/postgres/postgresColumnSyntax.js +34 -0
- package/remult-knex/index.js +2 -2
- package/remult-middleware.d.ts +2 -0
- package/remult-middleware.js +70 -0
- package/remult-mongo.js +6 -6
- package/server/register-actions-on-server.d.ts +3 -0
- package/server/register-actions-on-server.js +50 -0
- package/server/register-entities-on-server.d.ts +3 -0
- package/server/register-entities-on-server.js +19 -0
- package/src/backend-tests/backend-database-test-setup.backend-spec.js +60 -0
- package/{esm/core/src → src}/backend-tests/my-test.backend-spec.d.ts +1 -1
- package/src/backend-tests/my-test.backend-spec.js +217 -0
- package/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
- package/src/backend-tests/test-http-server.backend-spec.js +342 -0
- package/src/id-entity.d.ts +4 -0
- package/src/id-entity.js +17 -0
- package/src/remult3/RepositoryImplementation.js +15 -13
- package/src/shared-tests/db-tests.db-tests.js +64 -0
- package/{esm/core/src/valueConverters.d.ts → valueConverters.d.ts} +12 -13
- package/valueConverters.js +168 -0
- package/esm/angular/interfaces/index.d.ts +0 -1
- package/esm/angular/interfaces/index.js +0 -1
- package/esm/angular/interfaces/src/column-collection.d.ts +0 -70
- package/esm/angular/interfaces/src/column-collection.js +0 -341
- package/esm/angular/interfaces/src/data-area-settings.d.ts +0 -15
- package/esm/angular/interfaces/src/data-area-settings.js +0 -35
- package/esm/angular/interfaces/src/data-control-interfaces.d.ts +0 -36
- package/esm/angular/interfaces/src/data-control-interfaces.js +0 -57
- package/esm/angular/interfaces/src/dataList.d.ts +0 -13
- package/esm/angular/interfaces/src/dataList.js +0 -42
- package/esm/angular/interfaces/src/filter-helper.d.ts +0 -13
- package/esm/angular/interfaces/src/filter-helper.js +0 -59
- package/esm/angular/interfaces/src/grid-settings.d.ts +0 -145
- package/esm/angular/interfaces/src/grid-settings.js +0 -387
- package/esm/angular/interfaces/src/public_api.d.ts +0 -4
- package/esm/angular/interfaces/src/public_api.js +0 -4
- package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +0 -4
- package/esm/angular/src/angular/RemultAngularPluginsService.js +0 -3
- package/esm/angular/src/angular/data-control/data-control2.component.d.ts +0 -49
- package/esm/angular/src/angular/data-control/data-control2.component.js +0 -138
- package/esm/core/SseSubscriptionServer.d.ts +0 -33
- package/esm/core/SseSubscriptionServer.js +0 -107
- package/esm/core/assign.d.ts +0 -1
- package/esm/core/assign.js +0 -5
- package/esm/core/classType.d.ts +0 -3
- package/esm/core/classType.js +0 -1
- package/esm/core/index.d.ts +0 -27
- package/esm/core/index.js +0 -25
- package/esm/core/inputTypes.d.ts +0 -9
- package/esm/core/inputTypes.js +0 -9
- package/esm/core/live-query/data-provider-live-query-storage.d.ts +0 -22
- package/esm/core/live-query/data-provider-live-query-storage.js +0 -71
- package/esm/core/postgres/index.d.ts +0 -2
- package/esm/core/postgres/index.js +0 -2
- package/esm/core/postgres/postgres-data-provider.d.ts +0 -36
- package/esm/core/postgres/postgres-data-provider.js +0 -120
- package/esm/core/postgres/schema-builder.d.ts +0 -17
- package/esm/core/postgres/schema-builder.js +0 -153
- package/esm/core/remult-fresh.d.ts +0 -17
- package/esm/core/remult-fresh.js +0 -29
- package/esm/core/remult-knex/index.d.ts +0 -30
- package/esm/core/remult-knex/index.js +0 -446
- package/esm/core/remult-mongo.d.ts +0 -24
- package/esm/core/remult-mongo.js +0 -254
- package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
- package/esm/core/server/JsonEntityFileStorage.js +0 -25
- package/esm/core/server/core.d.ts +0 -4
- package/esm/core/server/core.js +0 -4
- package/esm/core/server/expressBridge.d.ts +0 -182
- package/esm/core/server/expressBridge.js +0 -938
- package/esm/core/server/index.d.ts +0 -6
- package/esm/core/server/index.js +0 -9
- package/esm/core/server/initAsyncHooks.d.ts +0 -1
- package/esm/core/server/initAsyncHooks.js +0 -9
- package/esm/core/server/initDataProvider.d.ts +0 -2
- package/esm/core/server/initDataProvider.js +0 -14
- package/esm/core/src/__EntityValueProvider.d.ts +0 -11
- package/esm/core/src/__EntityValueProvider.js +0 -1
- package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
- package/esm/core/src/__RowsOfDataForTesting.js +0 -1
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
- package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -147
- package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -197
- package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
- package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -167
- package/esm/core/src/buildRestDataProvider.d.ts +0 -31
- package/esm/core/src/buildRestDataProvider.js +0 -113
- package/esm/core/src/column-interfaces.d.ts +0 -154
- package/esm/core/src/column-interfaces.js +0 -7
- package/esm/core/src/column.d.ts +0 -58
- package/esm/core/src/column.js +0 -174
- package/esm/core/src/context.d.ts +0 -134
- package/esm/core/src/context.js +0 -286
- package/esm/core/src/data-api.d.ts +0 -39
- package/esm/core/src/data-api.js +0 -279
- package/esm/core/src/data-interfaces.d.ts +0 -41
- package/esm/core/src/data-interfaces.js +0 -12
- package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
- package/esm/core/src/data-providers/array-entity-data-provider.js +0 -252
- package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
- package/esm/core/src/data-providers/in-memory-database.js +0 -14
- package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
- package/esm/core/src/data-providers/json-data-provider.js +0 -55
- package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -49
- package/esm/core/src/data-providers/rest-data-provider.js +0 -256
- package/esm/core/src/data-providers/sql-database.d.ts +0 -33
- package/esm/core/src/data-providers/sql-database.js +0 -384
- package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -24
- package/esm/core/src/data-providers/web-sql-data-provider.js +0 -143
- package/esm/core/src/entity.d.ts +0 -91
- package/esm/core/src/entity.js +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
- package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -150
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
- package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
- package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
- package/esm/core/src/filter/filter-interfaces.js +0 -477
- package/esm/core/src/live-query/LiveQueryClient.d.ts +0 -20
- package/esm/core/src/live-query/LiveQueryClient.js +0 -188
- package/esm/core/src/live-query/SseSubscriptionClient.d.ts +0 -5
- package/esm/core/src/live-query/SseSubscriptionClient.js +0 -86
- package/esm/core/src/live-query/SubscriptionChannel.d.ts +0 -72
- package/esm/core/src/live-query/SubscriptionChannel.js +0 -123
- package/esm/core/src/live-query/SubscriptionServer.d.ts +0 -53
- package/esm/core/src/live-query/SubscriptionServer.js +0 -111
- package/esm/core/src/live-query/live-query-tests.spec.d.ts +0 -6
- package/esm/core/src/live-query/live-query-tests.spec.js +0 -952
- package/esm/core/src/remult-proxy.d.ts +0 -35
- package/esm/core/src/remult-proxy.js +0 -113
- package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
- package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
- package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -355
- package/esm/core/src/remult3/RepositoryImplementation.js +0 -2109
- package/esm/core/src/remult3/index.d.ts +0 -2
- package/esm/core/src/remult3/index.js +0 -2
- package/esm/core/src/remult3/remult3.d.ts +0 -395
- package/esm/core/src/remult3/remult3.js +0 -2
- package/esm/core/src/server-action.d.ts +0 -81
- package/esm/core/src/server-action.js +0 -394
- package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -32
- package/esm/core/src/shared-tests/db-tests-setup.js +0 -78
- package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -25
- package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -810
- package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
- package/esm/core/src/shared-tests/deleteAll.js +0 -4
- package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
- package/esm/core/src/shared-tests/entityWithValidations.js +0 -43
- package/esm/core/src/shared-tests/index.d.ts +0 -4
- package/esm/core/src/shared-tests/index.js +0 -4
- package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -67
- package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
- package/esm/core/src/shared-tests/test-special-value.spec.js +0 -73
- package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
- package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -31
- package/esm/core/src/sort.d.ts +0 -16
- package/esm/core/src/sort.js +0 -103
- package/esm/core/src/sql-command.d.ts +0 -19
- package/esm/core/src/sql-command.js +0 -1
- package/esm/core/src/test.d.ts +0 -3
- package/esm/core/src/test.js +0 -12
- package/esm/core/src/tests/Done.d.ts +0 -5
- package/esm/core/src/tests/Done.js +0 -9
- package/esm/core/src/tests/RowProvider.spec.d.ts +0 -16
- package/esm/core/src/tests/RowProvider.spec.js +0 -631
- package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
- package/esm/core/src/tests/TestDataApiResponse.js +0 -22
- package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +0 -8
- package/esm/core/src/tests/basicRowFunctionality.spec.js +0 -2103
- package/esm/core/src/tests/c.d.ts +0 -8
- package/esm/core/src/tests/c.js +0 -13
- package/esm/core/src/tests/createData.d.ts +0 -7
- package/esm/core/src/tests/createData.js +0 -22
- package/esm/core/src/tests/d.d.ts +0 -6
- package/esm/core/src/tests/d.js +0 -11
- package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
- package/esm/core/src/tests/dWithPrefilter.js +0 -18
- package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
- package/esm/core/src/tests/entityForCustomFilter.js +0 -33
- package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
- package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -13
- package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
- package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -37
- package/esm/core/src/tests/h.d.ts +0 -6
- package/esm/core/src/tests/h.js +0 -24
- package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +0 -1
- package/esm/core/src/tests/remult-3-basic-tests.spec.js +0 -236
- package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
- package/esm/core/src/tests/remult-3-entities.js +0 -39
- package/esm/core/src/tests/tasks.d.ts +0 -6
- package/esm/core/src/tests/tasks.js +0 -10
- package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
- package/esm/core/src/tests/test-context-as-storage.spec.js +0 -1
- package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +0 -1
- package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +0 -389
- package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +0 -5
- package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +0 -152
- package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +0 -1
- package/esm/core/src/tests/test-decorator-precedence.spec.js +0 -38
- package/esm/core/src/tests/test-default-value.spec.d.ts +0 -1
- package/esm/core/src/tests/test-default-value.spec.js +0 -33
- package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +0 -14
- package/esm/core/src/tests/test-entity-inheritance.spec.js +0 -82
- package/esm/core/src/tests/test-exceptions.spec.d.ts +0 -1
- package/esm/core/src/tests/test-exceptions.spec.js +0 -375
- package/esm/core/src/tests/test-json.spec.d.ts +0 -1
- package/esm/core/src/tests/test-json.spec.js +0 -115
- package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +0 -9
- package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +0 -809
- package/esm/core/src/tests/test-non-active-record.spec.d.ts +0 -1
- package/esm/core/src/tests/test-non-active-record.spec.js +0 -66
- package/esm/core/src/tests/test-object-column.spec.d.ts +0 -1
- package/esm/core/src/tests/test-object-column.spec.js +0 -189
- package/esm/core/src/tests/test-paged-foreach.spec.d.ts +0 -1
- package/esm/core/src/tests/test-paged-foreach.spec.js +0 -328
- package/esm/core/src/tests/test-remult-angular.spec.d.ts +0 -1
- package/esm/core/src/tests/test-remult-angular.spec.js +0 -23
- package/esm/core/src/tests/test-server-controller.spec.d.ts +0 -7
- package/esm/core/src/tests/test-server-controller.spec.js +0 -489
- package/esm/core/src/tests/test-server-expressions.spec.d.ts +0 -1
- package/esm/core/src/tests/test-server-expressions.spec.js +0 -178
- package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +0 -1
- package/esm/core/src/tests/test-server-method-on-entity.spec.js +0 -306
- package/esm/core/src/tests/test-sql-expression.spec.d.ts +0 -5
- package/esm/core/src/tests/test-sql-expression.spec.js +0 -205
- package/esm/core/src/tests/test-sql.spec.d.ts +0 -1
- package/esm/core/src/tests/test-sql.spec.js +0 -170
- package/esm/core/src/tests/test-subscribe.spec.d.ts +0 -1
- package/esm/core/src/tests/test-subscribe.spec.js +0 -135
- package/esm/core/src/tests/test-type-recovery.spec.d.ts +0 -1
- package/esm/core/src/tests/test-type-recovery.spec.js +0 -49
- package/esm/core/src/tests/test-where-api.spec.d.ts +0 -1
- package/esm/core/src/tests/test-where-api.spec.js +0 -434
- package/esm/core/src/tests/testHelper.spec.d.ts +0 -36
- package/esm/core/src/tests/testHelper.spec.js +0 -226
- package/esm/core/src/tests/testModel/models.d.ts +0 -16
- package/esm/core/src/tests/testModel/models.js +0 -25
- package/esm/core/src/validators.d.ts +0 -14
- package/esm/core/src/validators.js +0 -33
- package/esm/core/src/valueConverters.js +0 -197
- package/esm/core/urlBuilder.d.ts +0 -6
- package/esm/core/urlBuilder.js +0 -20
- package/esm/test-servers/shared/Task.d.ts +0 -9
- package/esm/test-servers/shared/Task.js +0 -32
- package/esm/test.d.ts +0 -5
- package/esm/test.js +0 -6
package/esm/graphql.js
CHANGED
|
@@ -208,16 +208,16 @@ export function remultGraphql(options) {
|
|
|
208
208
|
{
|
|
209
209
|
key: 'limit',
|
|
210
210
|
value: 'Int',
|
|
211
|
-
comment: `
|
|
212
|
-
For **page by page** pagination.
|
|
213
|
-
Limit the number of result.
|
|
211
|
+
comment: `
|
|
212
|
+
For **page by page** pagination.
|
|
213
|
+
Limit the number of result.
|
|
214
214
|
_Side note: \`Math.ceil(totalCount / limit)\` to determine how many pages there are._`,
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
key: 'page',
|
|
218
218
|
value: 'Int',
|
|
219
|
-
comment: `
|
|
220
|
-
For **page by page** pagination.
|
|
219
|
+
comment: `
|
|
220
|
+
For **page by page** pagination.
|
|
221
221
|
Select a dedicated page.`,
|
|
222
222
|
},
|
|
223
223
|
{
|
|
@@ -235,26 +235,26 @@ Select a dedicated page.`,
|
|
|
235
235
|
queryArgsConnection.push({
|
|
236
236
|
key: 'first',
|
|
237
237
|
value: 'Int',
|
|
238
|
-
comment: `
|
|
239
|
-
For **forward cursor** pagination
|
|
238
|
+
comment: `
|
|
239
|
+
For **forward cursor** pagination
|
|
240
240
|
Takes the \`first\`: \`n\` elements from the list.`,
|
|
241
241
|
}, {
|
|
242
242
|
key: 'after',
|
|
243
243
|
value: 'String',
|
|
244
|
-
comment: `
|
|
245
|
-
For **forward cursor** pagination
|
|
244
|
+
comment: `
|
|
245
|
+
For **forward cursor** pagination
|
|
246
246
|
\`after\` this \`cursor\`.`,
|
|
247
247
|
}, {
|
|
248
248
|
key: 'last',
|
|
249
249
|
value: 'Int',
|
|
250
|
-
comment: `
|
|
251
|
-
For **backward cursor** pagination
|
|
250
|
+
comment: `
|
|
251
|
+
For **backward cursor** pagination
|
|
252
252
|
Takes the \`last\`: \`n\` elements from the list.`,
|
|
253
253
|
}, {
|
|
254
254
|
key: 'before',
|
|
255
255
|
value: 'String',
|
|
256
|
-
comment: `
|
|
257
|
-
For **backward cursor** pagination
|
|
256
|
+
comment: `
|
|
257
|
+
For **backward cursor** pagination
|
|
258
258
|
\`before\` this \`cursor\`.`,
|
|
259
259
|
});
|
|
260
260
|
}
|
|
@@ -668,7 +668,7 @@ Select a dedicated page.`,
|
|
|
668
668
|
: ``;
|
|
669
669
|
return `${type}${orderByStr}${whereTypeStr}${whereTypeSubFieldsStr}`;
|
|
670
670
|
})
|
|
671
|
-
.join(`\n\n`)}
|
|
671
|
+
.join(`\n\n`)}
|
|
672
672
|
`,
|
|
673
673
|
};
|
|
674
674
|
}
|
|
@@ -690,12 +690,12 @@ function blockFormat(obj) {
|
|
|
690
690
|
if (obj.data.length === 0) {
|
|
691
691
|
return ``;
|
|
692
692
|
}
|
|
693
|
-
const str = `${obj.prefix} {
|
|
694
|
-
${obj.data.join('\n ')}
|
|
693
|
+
const str = `${obj.prefix} {
|
|
694
|
+
${obj.data.join('\n ')}
|
|
695
695
|
}`;
|
|
696
|
-
let commentsStr = `"""
|
|
697
|
-
${obj.comment}
|
|
698
|
-
"""
|
|
696
|
+
let commentsStr = `"""
|
|
697
|
+
${obj.comment}
|
|
698
|
+
"""
|
|
699
699
|
`;
|
|
700
700
|
if (_removeComments) {
|
|
701
701
|
commentsStr = ``;
|
|
@@ -706,16 +706,16 @@ function argsFormat(args) {
|
|
|
706
706
|
if (args) {
|
|
707
707
|
return `(${args
|
|
708
708
|
.map((arg) => {
|
|
709
|
-
let strComment = `
|
|
710
|
-
"""
|
|
711
|
-
${arg.comment}
|
|
712
|
-
"""
|
|
709
|
+
let strComment = `
|
|
710
|
+
"""
|
|
711
|
+
${arg.comment}
|
|
712
|
+
"""
|
|
713
713
|
`;
|
|
714
714
|
if (_removeComments || !arg.comment) {
|
|
715
715
|
strComment = ``;
|
|
716
716
|
}
|
|
717
717
|
if (strComment) {
|
|
718
|
-
return `${strComment} ${arg.key}: ${arg.value}
|
|
718
|
+
return `${strComment} ${arg.key}: ${arg.value}
|
|
719
719
|
`;
|
|
720
720
|
}
|
|
721
721
|
return `${arg.key}: ${arg.value}`;
|
|
@@ -726,9 +726,9 @@ function argsFormat(args) {
|
|
|
726
726
|
}
|
|
727
727
|
function fieldFormat(field) {
|
|
728
728
|
// First, the comment
|
|
729
|
-
let strComment = `"""
|
|
730
|
-
${field.comment}
|
|
731
|
-
"""
|
|
729
|
+
let strComment = `"""
|
|
730
|
+
${field.comment}
|
|
731
|
+
"""
|
|
732
732
|
`;
|
|
733
733
|
if (_removeComments || !field.comment) {
|
|
734
734
|
strComment = ``;
|
|
@@ -116,8 +116,8 @@ export class PostgresSchemaBuilder {
|
|
|
116
116
|
try {
|
|
117
117
|
let cmd = this.pool.createCommand();
|
|
118
118
|
const colName = e.$dbNameOf(c(entity));
|
|
119
|
-
if ((await cmd.execute(`select 1
|
|
120
|
-
FROM information_schema.columns
|
|
119
|
+
if ((await cmd.execute(`select 1
|
|
120
|
+
FROM information_schema.columns
|
|
121
121
|
WHERE table_name=${cmd.addParameterAndReturnSqlToken(e.$entityName.toLocaleLowerCase())} and column_name=${cmd.addParameterAndReturnSqlToken(colName.toLocaleLowerCase())}` + this.additionalWhere)).rows.length == 0) {
|
|
122
122
|
let sql = `alter table ${e.$entityName} add column ${postgresColumnSyntax(c(entity), colName)}`;
|
|
123
123
|
if (PostgresSchemaBuilder.logToConsole)
|
|
@@ -133,8 +133,8 @@ export class PostgresSchemaBuilder {
|
|
|
133
133
|
try {
|
|
134
134
|
let cmd = this.pool.createCommand();
|
|
135
135
|
let e = await dbNamesOf(entity);
|
|
136
|
-
let cols = (await cmd.execute(`select column_name
|
|
137
|
-
FROM information_schema.columns
|
|
136
|
+
let cols = (await cmd.execute(`select column_name
|
|
137
|
+
FROM information_schema.columns
|
|
138
138
|
WHERE table_name=${cmd.addParameterAndReturnSqlToken(e.$entityName.toLocaleLowerCase())} ` + this.additionalWhere)).rows.map((x) => x.column_name.toLocaleLowerCase());
|
|
139
139
|
for (const col of entity.fields) {
|
|
140
140
|
if (!isDbReadonly(col, e)) {
|
package/esm/remult-knex/index.js
CHANGED
|
@@ -192,7 +192,7 @@ class KnexEntityDataProvider {
|
|
|
192
192
|
let insert = this.knex(e.$entityName).insert(insertObject);
|
|
193
193
|
if (isAutoIncrement(this.entity.idMetadata.field)) {
|
|
194
194
|
let newId;
|
|
195
|
-
if (this.knex.client.config.client === 'mysql2') {
|
|
195
|
+
if (this.knex.client.config.client === 'mysql2' || this.knex.client.config.client === 'mysql') {
|
|
196
196
|
let result = await insert;
|
|
197
197
|
newId = result[0];
|
|
198
198
|
}
|
|
@@ -380,7 +380,7 @@ export class KnexSchemaBuilder {
|
|
|
380
380
|
KnexSchemaBuilder.logToConsole = true;
|
|
381
381
|
function supportsJson(knex) {
|
|
382
382
|
const client = knex.client.config.client;
|
|
383
|
-
if (client?.includes('sqlite3') || client?.includes('mssql'))
|
|
383
|
+
if (client?.includes('sqlite3') || client?.includes('mssql') || client?.includes('mysql'))
|
|
384
384
|
return false;
|
|
385
385
|
return true;
|
|
386
386
|
}
|
package/esm/remult-mongo.js
CHANGED
|
@@ -59,7 +59,7 @@ class MongoEntityDataProvider {
|
|
|
59
59
|
this.entity = entity;
|
|
60
60
|
this.session = session;
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
translateFromDb(row, nameProvider) {
|
|
63
63
|
let result = {};
|
|
64
64
|
for (const col of this.entity.fields) {
|
|
65
65
|
let val = row[nameProvider.$dbNameOf(col)];
|
|
@@ -69,7 +69,7 @@ class MongoEntityDataProvider {
|
|
|
69
69
|
}
|
|
70
70
|
return result;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
translateToDb(row, nameProvider) {
|
|
73
73
|
let result = {};
|
|
74
74
|
for (const col of this.entity.fields) {
|
|
75
75
|
let val = col.valueConverter.toDb(row[col.key]);
|
|
@@ -109,7 +109,7 @@ class MongoEntityDataProvider {
|
|
|
109
109
|
}
|
|
110
110
|
return await Promise.all(await collection
|
|
111
111
|
.find(where, op)
|
|
112
|
-
.map((x) => this.
|
|
112
|
+
.map((x) => this.translateFromDb(x, e))
|
|
113
113
|
.toArray());
|
|
114
114
|
}
|
|
115
115
|
async update(id, data) {
|
|
@@ -129,7 +129,7 @@ class MongoEntityDataProvider {
|
|
|
129
129
|
for (const f of this.entity.fields) {
|
|
130
130
|
if (!f.dbReadOnly && !f.isServerExpression) {
|
|
131
131
|
if (keys.includes(f.key)) {
|
|
132
|
-
newR[f.key] = f.valueConverter.
|
|
132
|
+
newR[f.key] = f.valueConverter.toDb(data[f.key]);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
}
|
|
@@ -148,10 +148,10 @@ class MongoEntityDataProvider {
|
|
|
148
148
|
}
|
|
149
149
|
async insert(data) {
|
|
150
150
|
let { collection, e } = await this.collection();
|
|
151
|
-
let r = await collection.insertOne(await this.
|
|
151
|
+
let r = await collection.insertOne(await this.translateToDb(data, e), {
|
|
152
152
|
session: this.session,
|
|
153
153
|
});
|
|
154
|
-
return await this.
|
|
154
|
+
return await this.translateFromDb(await collection.findOne({ _id: r.insertedId }, { session: this.session }), e);
|
|
155
155
|
}
|
|
156
156
|
async collection() {
|
|
157
157
|
const e = await dbNamesOf(this.entity);
|
|
@@ -64,6 +64,16 @@ export const mySqlTest = addDatabaseToTest(testKnexSqlImpl(Knex.default({
|
|
|
64
64
|
database: 'test',
|
|
65
65
|
},
|
|
66
66
|
}), 'mysql2'));
|
|
67
|
+
addDatabaseToTest(testKnexSqlImpl(Knex.default({
|
|
68
|
+
client: 'mysql',
|
|
69
|
+
connection: {
|
|
70
|
+
user: 'root',
|
|
71
|
+
password: 'MASTERKEY',
|
|
72
|
+
host: '127.0.0.1',
|
|
73
|
+
database: 'test',
|
|
74
|
+
port: 3307
|
|
75
|
+
},
|
|
76
|
+
}), 'mysql'));
|
|
67
77
|
let pg = createPostgresConnection();
|
|
68
78
|
export function testPostgresImplementation(key, what, focus = false) {
|
|
69
79
|
itWithFocus(key + ' - postgres', async () => {
|
|
@@ -199,4 +209,24 @@ testMongoNoTrans('transactions mongo no trans', async ({ db, createEntity }) =>
|
|
|
199
209
|
}
|
|
200
210
|
expect(await x.count()).toBe(1);
|
|
201
211
|
}, false);
|
|
212
|
+
testMongoNoTrans('test Dates', async ({ createEntity }) => {
|
|
213
|
+
const c = class {
|
|
214
|
+
};
|
|
215
|
+
describeClass(c, Entity('test_dates_on_mongo'), {
|
|
216
|
+
id: Fields.integer(),
|
|
217
|
+
date: Fields.date(),
|
|
218
|
+
});
|
|
219
|
+
const r = await createEntity(c);
|
|
220
|
+
let x = await r.insert({ id: 1, date: new Date(1976, 5, 16) });
|
|
221
|
+
const client = new MongoClient('mongodb://localhost:27017/local');
|
|
222
|
+
await client.connect();
|
|
223
|
+
const mongoDb = client.db('test');
|
|
224
|
+
expect((await mongoDb.collection(await r.metadata.getDbName()).findOne())
|
|
225
|
+
.date instanceof Date).toBe(true);
|
|
226
|
+
x.date = new Date(1978, 2, 15);
|
|
227
|
+
await r.save(x);
|
|
228
|
+
expect((await mongoDb.collection(await r.metadata.getDbName()).findOne())
|
|
229
|
+
.date instanceof Date).toBe(true);
|
|
230
|
+
//let z = await r.save({ ...x, date: new Date(1978, 2, 15) })
|
|
231
|
+
}, false);
|
|
202
232
|
import '../shared-tests';
|
|
@@ -1834,11 +1834,13 @@ export function decorateColumnSettings(settings, remult) {
|
|
|
1834
1834
|
isIdNumeric =
|
|
1835
1835
|
remult.repo(settings.valueType).metadata.idMetadata.field
|
|
1836
1836
|
.valueType === Number;
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1837
|
+
if (isIdNumeric) {
|
|
1838
|
+
for (const key of [
|
|
1839
|
+
'fieldTypeInDb',
|
|
1840
|
+
]) {
|
|
1841
|
+
//@ts-ignore
|
|
1842
|
+
target[key] = ValueConverters.Integer[key];
|
|
1843
|
+
}
|
|
1842
1844
|
}
|
|
1843
1845
|
}
|
|
1844
1846
|
}
|
|
@@ -1082,3 +1082,38 @@ testAll('test relation to number id', async ({ createEntity }) => {
|
|
|
1082
1082
|
expect(await taskRepo.count({ category: cat[1] })).toBe(1);
|
|
1083
1083
|
expect(await taskRepo.count({ category: { $id: cat[0].id } })).toBe(2);
|
|
1084
1084
|
}, false, { exclude: [TestDbs.mongo, TestDbs.mongoNoTrans] });
|
|
1085
|
+
testAll('test relation to string id', async ({ createEntity }) => {
|
|
1086
|
+
const category = class {
|
|
1087
|
+
constructor() {
|
|
1088
|
+
this.id = '';
|
|
1089
|
+
this.name = '';
|
|
1090
|
+
}
|
|
1091
|
+
};
|
|
1092
|
+
describeClass(category, Entity('rel_ID_string_categories', { allowApiCrud: true }), {
|
|
1093
|
+
id: Fields.cuid(),
|
|
1094
|
+
name: Fields.string(),
|
|
1095
|
+
});
|
|
1096
|
+
const task = class {
|
|
1097
|
+
constructor() {
|
|
1098
|
+
this.id = 0;
|
|
1099
|
+
this.title = '';
|
|
1100
|
+
}
|
|
1101
|
+
};
|
|
1102
|
+
describeClass(task, Entity('rel_ID_string_task', { allowApiCrud: true }), {
|
|
1103
|
+
id: Fields.autoIncrement(),
|
|
1104
|
+
title: Fields.string(),
|
|
1105
|
+
category: Field(() => category),
|
|
1106
|
+
});
|
|
1107
|
+
const catRepo = await createEntity(category);
|
|
1108
|
+
const taskRepo = await createEntity(task);
|
|
1109
|
+
const cat = await catRepo.insert([{ name: 'cat0' }, { name: 'cat1' }]);
|
|
1110
|
+
await taskRepo.insert([
|
|
1111
|
+
{ title: 't1', category: cat[0] },
|
|
1112
|
+
{ title: 't2', category: cat[0] },
|
|
1113
|
+
{ title: 't3', category: cat[1] },
|
|
1114
|
+
]);
|
|
1115
|
+
expect(taskRepo.fields.category.valueConverter.fieldTypeInDb).toBeUndefined();
|
|
1116
|
+
expect(await taskRepo.count({ category: cat[0] })).toBe(2);
|
|
1117
|
+
expect(await taskRepo.count({ category: cat[1] })).toBe(1);
|
|
1118
|
+
expect(await taskRepo.count({ category: { $id: cat[0].id } })).toBe(2);
|
|
1119
|
+
}, false, { exclude: [TestDbs.mongo, TestDbs.mongoNoTrans] });
|
package/package.json
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.postgresColumnSyntax = void 0;
|
|
4
|
+
var valueConverters_1 = require("../valueConverters");
|
|
5
|
+
function postgresColumnSyntax(x, dbName) {
|
|
6
|
+
var result = dbName;
|
|
7
|
+
if (x.valueType == Number) {
|
|
8
|
+
if (!x.valueConverter.fieldTypeInDb)
|
|
9
|
+
result += " numeric" + (x.allowNull ? "" : " default 0 not null");
|
|
10
|
+
else
|
|
11
|
+
result += " " + x.valueConverter.fieldTypeInDb + (x.allowNull ? "" : " default 0 not null");
|
|
12
|
+
}
|
|
13
|
+
else if (x.valueType == Date) {
|
|
14
|
+
if (!x.valueConverter.fieldTypeInDb)
|
|
15
|
+
if (x.valueConverter == valueConverters_1.ValueConverters.DateOnly)
|
|
16
|
+
result += " date";
|
|
17
|
+
else
|
|
18
|
+
result += " timestamp";
|
|
19
|
+
else
|
|
20
|
+
result += " " + x.valueConverter.fieldTypeInDb;
|
|
21
|
+
}
|
|
22
|
+
else if (x.valueType == Boolean)
|
|
23
|
+
result += " boolean" + (x.allowNull ? "" : " default false not null");
|
|
24
|
+
else if (x.valueConverter.fieldTypeInDb) {
|
|
25
|
+
result += " " + x.valueConverter.fieldTypeInDb;
|
|
26
|
+
if (!x.allowNull && x.valueConverter.fieldTypeInDb == 'integer') {
|
|
27
|
+
result += " default 0 not null";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else
|
|
31
|
+
result += " varchar" + (x.allowNull ? "" : " default '' not null");
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
exports.postgresColumnSyntax = postgresColumnSyntax;
|
package/remult-knex/index.js
CHANGED
|
@@ -375,7 +375,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
375
375
|
case 10:
|
|
376
376
|
insert = this.knex(e.$entityName).insert(insertObject);
|
|
377
377
|
if (!remult3_1.isAutoIncrement(this.entity.idMetadata.field)) return [3 /*break*/, 15];
|
|
378
|
-
if (!(this.knex.client.config.client === 'mysql2')) return [3 /*break*/, 12];
|
|
378
|
+
if (!(this.knex.client.config.client === 'mysql2' || this.knex.client.config.client === 'mysql')) return [3 /*break*/, 12];
|
|
379
379
|
return [4 /*yield*/, insert];
|
|
380
380
|
case 11:
|
|
381
381
|
result = _d.sent();
|
|
@@ -825,7 +825,7 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
825
825
|
exports.KnexSchemaBuilder = KnexSchemaBuilder;
|
|
826
826
|
function supportsJson(knex) {
|
|
827
827
|
var client = knex.client.config.client;
|
|
828
|
-
if ((client === null || client === void 0 ? void 0 : client.includes('sqlite3')) || (client === null || client === void 0 ? void 0 : client.includes('mssql')))
|
|
828
|
+
if ((client === null || client === void 0 ? void 0 : client.includes('sqlite3')) || (client === null || client === void 0 ? void 0 : client.includes('mssql')) || (client === null || client === void 0 ? void 0 : client.includes('mysql')))
|
|
829
829
|
return false;
|
|
830
830
|
return true;
|
|
831
831
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.remultMiddleware = void 0;
|
|
4
|
+
var expressBridge_1 = require("./server/expressBridge");
|
|
5
|
+
function remultMiddleware(options) {
|
|
6
|
+
var m = new middleware();
|
|
7
|
+
var app = Object.assign(function (req, res, next) { return m.handleRequest(req, res, next); }, {
|
|
8
|
+
route: function (path) { return m.route(path); }
|
|
9
|
+
});
|
|
10
|
+
return expressBridge_1.remultMiddlewareBase(app, options);
|
|
11
|
+
}
|
|
12
|
+
exports.remultMiddleware = remultMiddleware;
|
|
13
|
+
var middleware = /** @class */ (function () {
|
|
14
|
+
function middleware() {
|
|
15
|
+
this.map = new Map();
|
|
16
|
+
}
|
|
17
|
+
middleware.prototype.route = function (path) {
|
|
18
|
+
//consider using:
|
|
19
|
+
//* https://raw.githubusercontent.com/cmorten/opine/main/src/utils/pathToRegex.ts
|
|
20
|
+
//* https://github.com/pillarjs/path-to-regexp
|
|
21
|
+
var r = path.toLowerCase();
|
|
22
|
+
var m = new Map();
|
|
23
|
+
this.map.set(r, m);
|
|
24
|
+
var route = {
|
|
25
|
+
get: function (h) {
|
|
26
|
+
m.set("get", h);
|
|
27
|
+
return route;
|
|
28
|
+
},
|
|
29
|
+
put: function (h) {
|
|
30
|
+
m.set("put", h);
|
|
31
|
+
return route;
|
|
32
|
+
},
|
|
33
|
+
post: function (h) {
|
|
34
|
+
m.set("post", h);
|
|
35
|
+
return route;
|
|
36
|
+
},
|
|
37
|
+
delete: function (h) {
|
|
38
|
+
m.set("delete", h);
|
|
39
|
+
return route;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return route;
|
|
43
|
+
};
|
|
44
|
+
middleware.prototype.handleRequest = function (req, res, next) {
|
|
45
|
+
var lowerPath = req.path.toLowerCase();
|
|
46
|
+
var m = this.map.get(lowerPath);
|
|
47
|
+
if (m) {
|
|
48
|
+
var h = m.get(req.method.toLowerCase());
|
|
49
|
+
if (h) {
|
|
50
|
+
h(req, res, next);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
var idPosition = req.path.lastIndexOf('/');
|
|
55
|
+
if (idPosition >= 0) {
|
|
56
|
+
lowerPath = req.path.substring(0, idPosition) + '/:id';
|
|
57
|
+
m = this.map.get(lowerPath);
|
|
58
|
+
if (m) {
|
|
59
|
+
var h = m.get(req.method.toLowerCase());
|
|
60
|
+
if (h) {
|
|
61
|
+
req.params.id = req.path.substring(idPosition + 1);
|
|
62
|
+
h(req, res, next);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
next();
|
|
68
|
+
};
|
|
69
|
+
return middleware;
|
|
70
|
+
}());
|
package/remult-mongo.js
CHANGED
|
@@ -101,7 +101,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
|
|
|
101
101
|
this.entity = entity;
|
|
102
102
|
this.session = session;
|
|
103
103
|
}
|
|
104
|
-
MongoEntityDataProvider.prototype.
|
|
104
|
+
MongoEntityDataProvider.prototype.translateFromDb = function (row, nameProvider) {
|
|
105
105
|
var e_1, _a;
|
|
106
106
|
var result = {};
|
|
107
107
|
try {
|
|
@@ -122,7 +122,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
|
|
|
122
122
|
}
|
|
123
123
|
return result;
|
|
124
124
|
};
|
|
125
|
-
MongoEntityDataProvider.prototype.
|
|
125
|
+
MongoEntityDataProvider.prototype.translateToDb = function (row, nameProvider) {
|
|
126
126
|
var e_2, _a;
|
|
127
127
|
var result = {};
|
|
128
128
|
try {
|
|
@@ -206,7 +206,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
|
|
|
206
206
|
_e = (_d = Promise).all;
|
|
207
207
|
return [4 /*yield*/, collection
|
|
208
208
|
.find(where, op)
|
|
209
|
-
.map(function (x) { return _this.
|
|
209
|
+
.map(function (x) { return _this.translateFromDb(x, e); })
|
|
210
210
|
.toArray()];
|
|
211
211
|
case 3: return [4 /*yield*/, _e.apply(_d, [_g.sent()])];
|
|
212
212
|
case 4: return [2 /*return*/, _g.sent()];
|
|
@@ -250,7 +250,7 @@ var MongoEntityDataProvider = /** @class */ (function () {
|
|
|
250
250
|
f_1 = _e.value;
|
|
251
251
|
if (!f_1.dbReadOnly && !f_1.isServerExpression) {
|
|
252
252
|
if (keys.includes(f_1.key)) {
|
|
253
|
-
newR[f_1.key] = f_1.valueConverter.
|
|
253
|
+
newR[f_1.key] = f_1.valueConverter.toDb(data[f_1.key]);
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
}
|
|
@@ -305,13 +305,13 @@ var MongoEntityDataProvider = /** @class */ (function () {
|
|
|
305
305
|
case 1:
|
|
306
306
|
_a = _e.sent(), collection = _a.collection, e = _a.e;
|
|
307
307
|
_c = (_b = collection).insertOne;
|
|
308
|
-
return [4 /*yield*/, this.
|
|
308
|
+
return [4 /*yield*/, this.translateToDb(data, e)];
|
|
309
309
|
case 2: return [4 /*yield*/, _c.apply(_b, [_e.sent(), {
|
|
310
310
|
session: this.session,
|
|
311
311
|
}])];
|
|
312
312
|
case 3:
|
|
313
313
|
r = _e.sent();
|
|
314
|
-
_d = this.
|
|
314
|
+
_d = this.translateFromDb;
|
|
315
315
|
return [4 /*yield*/, collection.findOne({ _id: r.insertedId }, { session: this.session })];
|
|
316
316
|
case 4: return [4 /*yield*/, _d.apply(this, [_e.sent(), e])];
|
|
317
317
|
case 5: return [2 /*return*/, _e.sent()];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerActionsOnServer = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var server_action_1 = require("../src/server-action");
|
|
6
|
+
function registerActionsOnServer(area, controllers) {
|
|
7
|
+
var e_1, _a, e_2, _b;
|
|
8
|
+
var addAction = function (a) {
|
|
9
|
+
var x = a[server_action_1.serverActionField];
|
|
10
|
+
if (!x) {
|
|
11
|
+
throw 'failed to set server action, did you forget the BackendMethod Decorator?';
|
|
12
|
+
}
|
|
13
|
+
area.addAction(x);
|
|
14
|
+
};
|
|
15
|
+
server_action_1.actionInfo.runningOnServer = true;
|
|
16
|
+
if (controllers && controllers.length > 0) {
|
|
17
|
+
try {
|
|
18
|
+
for (var controllers_1 = tslib_1.__values(controllers), controllers_1_1 = controllers_1.next(); !controllers_1_1.done; controllers_1_1 = controllers_1.next()) {
|
|
19
|
+
var c = controllers_1_1.value;
|
|
20
|
+
var z = c[server_action_1.classBackendMethodsArray];
|
|
21
|
+
if (z)
|
|
22
|
+
try {
|
|
23
|
+
for (var z_1 = (e_2 = void 0, tslib_1.__values(z)), z_1_1 = z_1.next(); !z_1_1.done; z_1_1 = z_1.next()) {
|
|
24
|
+
var a = z_1_1.value;
|
|
25
|
+
addAction(a);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
29
|
+
finally {
|
|
30
|
+
try {
|
|
31
|
+
if (z_1_1 && !z_1_1.done && (_b = z_1.return)) _b.call(z_1);
|
|
32
|
+
}
|
|
33
|
+
finally { if (e_2) throw e_2.error; }
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
if (controllers_1_1 && !controllers_1_1.done && (_a = controllers_1.return)) _a.call(controllers_1);
|
|
41
|
+
}
|
|
42
|
+
finally { if (e_1) throw e_1.error; }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else
|
|
46
|
+
server_action_1.actionInfo.allActions.forEach(function (a) {
|
|
47
|
+
addAction(a);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
exports.registerActionsOnServer = registerActionsOnServer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerEntitiesOnServer = void 0;
|
|
4
|
+
var remult3_1 = require("../src/remult3");
|
|
5
|
+
var context_1 = require("../src/context");
|
|
6
|
+
var data_api_1 = require("../src/data-api");
|
|
7
|
+
function registerEntitiesOnServer(area, entities) {
|
|
8
|
+
if (!entities)
|
|
9
|
+
entities = context_1.allEntities;
|
|
10
|
+
//add Api Entries
|
|
11
|
+
entities.forEach(function (e) {
|
|
12
|
+
var key = remult3_1.getEntityKey(e);
|
|
13
|
+
if (key != undefined)
|
|
14
|
+
area.add(key, function (c) {
|
|
15
|
+
return new data_api_1.DataApi(c.repo(e), c);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
exports.registerEntitiesOnServer = registerEntitiesOnServer;
|