@fraym/crud 0.21.0 → 0.30.0
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/README.md +6 -252
- package/dist/{delivery → client}/auth.d.ts +1 -1
- package/dist/client/auth.js +1 -0
- package/dist/client/client.d.ts +22 -0
- package/dist/client/client.js +1 -0
- package/dist/client/clone.d.ts +15 -0
- package/dist/client/clone.js +1 -0
- package/dist/client/config.js +1 -0
- package/dist/client/create.d.ts +15 -0
- package/dist/client/create.js +1 -0
- package/dist/client/data.d.ts +1 -0
- package/dist/client/data.js +1 -0
- package/dist/{delivery → client}/delete.d.ts +1 -1
- package/dist/client/delete.js +1 -0
- package/dist/client/eventMetadata.d.ts +7 -0
- package/dist/client/eventMetadata.js +1 -0
- package/dist/{delivery → client}/filter.d.ts +1 -1
- package/dist/client/filter.js +1 -0
- package/dist/client/getData.d.ts +6 -0
- package/dist/client/getData.js +1 -0
- package/dist/client/getDataList.d.ts +12 -0
- package/dist/client/getDataList.js +1 -0
- package/dist/{delivery → client}/order.d.ts +1 -1
- package/dist/client/order.js +1 -0
- package/dist/client/update.d.ts +15 -0
- package/dist/client/update.js +1 -0
- package/dist/{delivery → client}/wait.d.ts +1 -1
- package/dist/client/wait.js +1 -0
- package/dist/eslint.config.js +1 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.js +1 -18
- package/package.json +11 -27
- package/dist/config/config.js +0 -37
- package/dist/delivery/auth.js +0 -15
- package/dist/delivery/client.d.ts +0 -20
- package/dist/delivery/client.js +0 -55
- package/dist/delivery/clone.d.ts +0 -4
- package/dist/delivery/clone.js +0 -26
- package/dist/delivery/create.d.ts +0 -14
- package/dist/delivery/create.js +0 -48
- package/dist/delivery/delete.js +0 -23
- package/dist/delivery/eventMetadata.d.ts +0 -4
- package/dist/delivery/eventMetadata.js +0 -2
- package/dist/delivery/filter.js +0 -20
- package/dist/delivery/getData.d.ts +0 -5
- package/dist/delivery/getData.js +0 -34
- package/dist/delivery/getDataList.d.ts +0 -11
- package/dist/delivery/getDataList.js +0 -39
- package/dist/delivery/order.js +0 -13
- package/dist/delivery/update.d.ts +0 -14
- package/dist/delivery/update.js +0 -48
- package/dist/delivery/wait.js +0 -15
- /package/dist/{config → client}/config.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,257 +1,11 @@
|
|
|
1
|
-
# crud
|
|
1
|
+
# crud
|
|
2
2
|
|
|
3
|
-
Client implementation in
|
|
3
|
+
Client implementation in JavaScript for the Freym service [crud](https://github.com/fraym/crud).
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Docs
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npm i @fraym/crud
|
|
9
|
-
```
|
|
7
|
+
Please have a look at our [documentation](https://docs.freym.becklyn.app/docs/services/crud/introduction).
|
|
10
8
|
|
|
11
|
-
##
|
|
9
|
+
## License
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
There is a sandbox available at `http://crud:3000/delivery/graphql/sandbox`.
|
|
15
|
-
|
|
16
|
-
You need to add the `Tenant-Id` header in order to use the graphQL Endpoint and the sandbox.
|
|
17
|
-
|
|
18
|
-
### Config
|
|
19
|
-
|
|
20
|
-
Use a `.env` file or env variables to configure cte clients and the command:
|
|
21
|
-
|
|
22
|
-
```env
|
|
23
|
-
CRUD_SERVER_ADDRESS=127.0.0.1:9000
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Usage
|
|
27
|
-
|
|
28
|
-
### Create the client
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
const deliveryClient = await newDeliveryClient();
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Authorization
|
|
35
|
-
|
|
36
|
-
All delivery client functions make use of the `AuthData` object.
|
|
37
|
-
This data is used to check access for the desired action.
|
|
38
|
-
|
|
39
|
-
You can add the `FRAYM_AUTH_OWNER` scope in case you are performing an action that is no subject to restrictions.
|
|
40
|
-
|
|
41
|
-
Fields:
|
|
42
|
-
|
|
43
|
-
- `tenantId`: Id of the tenant to use
|
|
44
|
-
- `scopes`: Slice of scopes to use for the action
|
|
45
|
-
- `data`: Data that is used in directives like `@filterFromJwtData`
|
|
46
|
-
|
|
47
|
-
### Event Metadata
|
|
48
|
-
|
|
49
|
-
You can specify the correlation and causation IDs for the upsert and delete functions. The `eventMetadata` parameter is optional for all these functions and has the following structure:
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
const eventMetadata = {
|
|
53
|
-
correlationId: "some-correlation-id",
|
|
54
|
-
causationId: "some-causation-id",
|
|
55
|
-
};
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Create data
|
|
59
|
-
|
|
60
|
-
The name of `YourCrudType` has to equal your type name in your schema (also in casing).
|
|
61
|
-
|
|
62
|
-
```typescript
|
|
63
|
-
const response = await client.create<any>("YourCrudType", authData, {
|
|
64
|
-
// values here
|
|
65
|
-
});
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
The response contains the following fields:
|
|
69
|
-
|
|
70
|
-
In case of no validation errors:
|
|
71
|
-
|
|
72
|
-
- `data`: The new data after your create action
|
|
73
|
-
|
|
74
|
-
In case of validation errors:
|
|
75
|
-
|
|
76
|
-
- `validationErrors`: List of global validation errors that are not related to a single field
|
|
77
|
-
- `fieldValidationErrors`: Validation errors mapped by the name of the field that they relate to
|
|
78
|
-
|
|
79
|
-
### Update data
|
|
80
|
-
|
|
81
|
-
The name of `YourCrudType` has to equal your type name in your schema (also in casing).
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
const response = await client.update<any>("YourCrudType", authData, {
|
|
85
|
-
// values here
|
|
86
|
-
});
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
The response contains the following fields:
|
|
90
|
-
|
|
91
|
-
In case of no validation errors:
|
|
92
|
-
|
|
93
|
-
- `data`: The new data after your create action
|
|
94
|
-
|
|
95
|
-
In case of validation errors:
|
|
96
|
-
|
|
97
|
-
- `validationErrors`: List of global validation errors that are not related to a single field
|
|
98
|
-
- `fieldValidationErrors`: Validation errors mapped by the name of the field that they relate to
|
|
99
|
-
|
|
100
|
-
### Delete data
|
|
101
|
-
|
|
102
|
-
The name of `YourCrudType` has to equal your type name in your schema (also in casing).
|
|
103
|
-
|
|
104
|
-
Delete data matching a specific ID:
|
|
105
|
-
|
|
106
|
-
```typescript
|
|
107
|
-
const numberOfDeletedEntries = await client.deleteDataById("YourCrudType", authData, "id");
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Delete data matching a filter (see filter parameter for `getDataList` for details):
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
const numberOfDeletedEntries = await client.deleteDataByFilter("YourCrudType", authData, {
|
|
114
|
-
fields: {
|
|
115
|
-
fieldName: {
|
|
116
|
-
operation: "equals",
|
|
117
|
-
type: "Int",
|
|
118
|
-
value: 123,
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Get a single data element
|
|
125
|
-
|
|
126
|
-
A filter could look like this:
|
|
127
|
-
|
|
128
|
-
```go
|
|
129
|
-
const filter := {
|
|
130
|
-
fields: {
|
|
131
|
-
fieldName: {
|
|
132
|
-
operation: "equals",
|
|
133
|
-
type: "Int",
|
|
134
|
-
value: 123,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
The name of `YourCrudType` has to equal your type name in your schema (also in casing).
|
|
141
|
-
The `id` has to match the id of the data that you want to get.
|
|
142
|
-
|
|
143
|
-
```typescript
|
|
144
|
-
const data = await client.getData(
|
|
145
|
-
"YourCrudType",
|
|
146
|
-
authData,
|
|
147
|
-
"id",
|
|
148
|
-
filter,
|
|
149
|
-
returnEmptyDataIfNotFound
|
|
150
|
-
);
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Get (paginated / filtered / ordered) data
|
|
154
|
-
|
|
155
|
-
The name of `YourCrudType` has to equal your type name in your schema (also in casing).
|
|
156
|
-
|
|
157
|
-
No pagination:
|
|
158
|
-
|
|
159
|
-
```typescript
|
|
160
|
-
const dataList = await client.getDataList("YourCrudType", authData);
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
The dataList response contains the following fields:
|
|
164
|
-
|
|
165
|
-
- `limit`: The pagination limit
|
|
166
|
-
- `page`: The pagination page
|
|
167
|
-
- `total`: The total amount of elements matching the given filter
|
|
168
|
-
- `data`: The selected data
|
|
169
|
-
|
|
170
|
-
With pagination:
|
|
171
|
-
|
|
172
|
-
```typescript
|
|
173
|
-
const limit = 50; // elements to query per page
|
|
174
|
-
const page = 1; // number of the page you want to select, first page starts at: 1
|
|
175
|
-
const dataList = await client.getDataList("YourCrudType", authData, limit, page);
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
With filter:
|
|
179
|
-
|
|
180
|
-
```typescript
|
|
181
|
-
const dataList = await client.getDataList("YourCrudType", authData, undefined, undefined, {
|
|
182
|
-
fields: {
|
|
183
|
-
fieldName: {
|
|
184
|
-
operation: "equals",
|
|
185
|
-
type: "Int",
|
|
186
|
-
value: 123,
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
});
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
All `Filter`s are evaluated by:
|
|
193
|
-
|
|
194
|
-
- checking that all field filters match
|
|
195
|
-
- checking that all `and` filters match
|
|
196
|
-
- checking that one of the `or` filters match
|
|
197
|
-
|
|
198
|
-
Avaliable types:
|
|
199
|
-
|
|
200
|
-
- `String`
|
|
201
|
-
- `ID`
|
|
202
|
-
- `DateTime`
|
|
203
|
-
- `Int`
|
|
204
|
-
- `Float`
|
|
205
|
-
- `Boolean`
|
|
206
|
-
|
|
207
|
-
Avaliable operators for all types:
|
|
208
|
-
|
|
209
|
-
- `equals`
|
|
210
|
-
- `notEquals`
|
|
211
|
-
|
|
212
|
-
Avaliable options for the filter type `DateTime`:
|
|
213
|
-
|
|
214
|
-
- `inArray`
|
|
215
|
-
- `notInArray`
|
|
216
|
-
- `after`
|
|
217
|
-
- `before`
|
|
218
|
-
|
|
219
|
-
Avaliable options for the filter type `String` and `ID`:
|
|
220
|
-
|
|
221
|
-
- `inArray`
|
|
222
|
-
- `notInArray`
|
|
223
|
-
|
|
224
|
-
Avaliable options for the filter type `Int` and `Float`:
|
|
225
|
-
|
|
226
|
-
- `lessThan`
|
|
227
|
-
- `greaterThan`
|
|
228
|
-
- `lessThanOrEqual`
|
|
229
|
-
- `greaterThanOrEqual`
|
|
230
|
-
|
|
231
|
-
With order:
|
|
232
|
-
|
|
233
|
-
All order definitions are prioritized in the order that they are defined (the first definition is prioritized over the second).
|
|
234
|
-
|
|
235
|
-
```typescript
|
|
236
|
-
const dataList = await client.getDataList(
|
|
237
|
-
"YourCrudType",
|
|
238
|
-
authData,
|
|
239
|
-
undefined,
|
|
240
|
-
undefined,
|
|
241
|
-
undefined,
|
|
242
|
-
[
|
|
243
|
-
{
|
|
244
|
-
field: "fieldName",
|
|
245
|
-
descending: true, // omit this value for asc order
|
|
246
|
-
},
|
|
247
|
-
]
|
|
248
|
-
);
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### Gracefully close the client
|
|
252
|
-
|
|
253
|
-
You won't lose any data if you don't. Use it for your peace of mind.
|
|
254
|
-
|
|
255
|
-
```typescript
|
|
256
|
-
client.close();
|
|
257
|
-
```
|
|
11
|
+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getProtobufAuthData",{enumerable:true,get:function(){return getProtobufAuthData}});var getProtobufAuthData=function(auth){var data={};for(var key in auth.data){data[key]=JSON.stringify(auth.data[key])}return{tenantId:auth.tenantId,scopes:auth.scopes,data:data}};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AuthData } from "./auth";
|
|
2
|
+
import { CloneResponse } from "./clone";
|
|
3
|
+
import { DeliveryClientConfig } from "./config";
|
|
4
|
+
import { CreateResponse } from "./create";
|
|
5
|
+
import { CrudData } from "./data";
|
|
6
|
+
import { EventMetadata } from "./eventMetadata";
|
|
7
|
+
import { Filter } from "./filter";
|
|
8
|
+
import { GetCrudDataList } from "./getDataList";
|
|
9
|
+
import { Order } from "./order";
|
|
10
|
+
import { UpdateResponse } from "./update";
|
|
11
|
+
import { Wait } from "./wait";
|
|
12
|
+
export interface DeliveryClient {
|
|
13
|
+
getData: <T extends CrudData>(type: string, authData: AuthData, id: string, filter?: Filter, returnEmptyDataIfNotFound?: boolean, useStrongConsistency?: boolean, deploymentId?: number, wait?: Wait) => Promise<T | null>;
|
|
14
|
+
getDataList: <T extends CrudData>(type: string, authData: AuthData, limit?: number, page?: number, filter?: Filter, order?: Order[], useStrongConsistency?: boolean, deploymentId?: number) => Promise<GetCrudDataList<T>>;
|
|
15
|
+
create: <T extends CrudData>(type: string, authData: AuthData, data: T, id?: string, eventMetadata?: Partial<EventMetadata>) => Promise<CreateResponse<T>>;
|
|
16
|
+
update: <T extends CrudData>(type: string, authData: AuthData, id: string, data: Partial<T>, eventMetadata?: Partial<EventMetadata>) => Promise<UpdateResponse<T>>;
|
|
17
|
+
clone: <T extends CrudData>(type: string, authData: AuthData, id: string, newId: string, data?: Partial<T>, eventMetadata?: Partial<EventMetadata>) => Promise<CloneResponse<T>>;
|
|
18
|
+
deleteDataById: (type: string, authData: AuthData, id: string, eventMetadata?: Partial<EventMetadata>) => Promise<number>;
|
|
19
|
+
deleteDataByFilter: (type: string, authData: AuthData, filter?: Filter, eventMetadata?: Partial<EventMetadata>) => Promise<number>;
|
|
20
|
+
close: () => Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare const newDeliveryClient: (config?: DeliveryClientConfig) => Promise<DeliveryClient>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newDeliveryClient",{enumerable:true,get:function(){return newDeliveryClient}});var _indexfreymcruddelivery=require("@fraym/proto/dist/index.freym.crud.delivery");var _grpcjs=require("@grpc/grpc-js");var _clone=require("./clone");var _config=require("./config");var _create=require("./create");var _delete=require("./delete");var _eventMetadata=require("./eventMetadata");var _getData=require("./getData");var _getDataList=require("./getDataList");var _update=require("./update");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newDeliveryClient=/*#__PURE__*/function(){var _ref=_async_to_generator(function(config){var serviceClient,getData,getDataList,create,update,clone,deleteDataById,deleteDataByFilter,close;return _ts_generator(this,function(_state){config=(0,_config.useDeliveryConfigDefaults)(config);serviceClient=new _indexfreymcruddelivery.ServiceClient(config.serverAddress,_grpcjs.credentials.createInsecure(),{"grpc.keepalive_time_ms":config.keepaliveInterval,"grpc.keepalive_timeout_ms":config.keepaliveTimeout,"grpc.keepalive_permit_without_calls":1});getData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id){var filter,returnEmptyDataIfNotFound,useStrongConsistency,deploymentId,wait;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:filter=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:{fields:{},and:[],or:[]},returnEmptyDataIfNotFound=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:false,useStrongConsistency=_arguments.length>5&&_arguments[5]!==void 0?_arguments[5]:false,deploymentId=_arguments.length>6&&_arguments[6]!==void 0?_arguments[6]:null,wait=_arguments.length>7?_arguments[7]:void 0;return[4,(0,_getData.getCrudData)(type,authData,id,filter,returnEmptyDataIfNotFound,!!useStrongConsistency,deploymentId,serviceClient,wait)];case 1:return[2,_state.sent()]}})});return function getData(type,authData,id){return _ref.apply(this,arguments)}}();getDataList=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData){var limit,page,filter,order,useStrongConsistency,deploymentId;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:limit=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:0,page=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:1,filter=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:{fields:{},and:[],or:[]},order=_arguments.length>5&&_arguments[5]!==void 0?_arguments[5]:[],useStrongConsistency=_arguments.length>6&&_arguments[6]!==void 0?_arguments[6]:false,deploymentId=_arguments.length>7&&_arguments[7]!==void 0?_arguments[7]:null;return[4,(0,_getDataList.getCrudDataList)(type,authData,limit,page,filter,order,!!useStrongConsistency,deploymentId,serviceClient)];case 1:return[2,_state.sent()]}})});return function getDataList(type,authData){return _ref.apply(this,arguments)}}();create=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,data){var id,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:id=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:"",eventMetadata=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:null;return[4,(0,_create.createCrudData)(type,authData,data,id,(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata),serviceClient)];case 1:return[2,_state.sent()]}})});return function create(type,authData,data){return _ref.apply(this,arguments)}}();update=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,data){var eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:eventMetadata=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:null;return[4,(0,_update.updateCrudData)(type,authData,id,data,(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata),serviceClient)];case 1:return[2,_state.sent()]}})});return function update(type,authData,id,data){return _ref.apply(this,arguments)}}();clone=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,newId){var data,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:data=_arguments.length>4&&_arguments[4]!==void 0?_arguments[4]:{},eventMetadata=_arguments.length>5&&_arguments[5]!==void 0?_arguments[5]:null;return[4,(0,_clone.cloneCrudData)(type,authData,id,newId,data,(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata),serviceClient)];case 1:return[2,_state.sent()]}})});return function clone(type,authData,id,newId){return _ref.apply(this,arguments)}}();deleteDataById=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id){var eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:eventMetadata=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:null;return[4,(0,_delete.deleteCrudData)(type,authData,id,{fields:{},and:[],or:[]},(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata),serviceClient)];case 1:return[2,_state.sent()]}})});return function deleteDataById(type,authData,id){return _ref.apply(this,arguments)}}();deleteDataByFilter=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData){var filter,eventMetadata;var _arguments=arguments;return _ts_generator(this,function(_state){switch(_state.label){case 0:filter=_arguments.length>2&&_arguments[2]!==void 0?_arguments[2]:{fields:{},and:[],or:[]},eventMetadata=_arguments.length>3&&_arguments[3]!==void 0?_arguments[3]:null;return[4,(0,_delete.deleteCrudData)(type,authData,"",filter,(0,_eventMetadata.fillMetadataWithDefaults)(eventMetadata),serviceClient)];case 1:return[2,_state.sent()]}})});return function deleteDataByFilter(type,authData){return _ref.apply(this,arguments)}}();close=/*#__PURE__*/function(){var _ref=_async_to_generator(function(){return _ts_generator(this,function(_state){serviceClient.close();return[2]})});return function close(){return _ref.apply(this,arguments)}}();return[2,{getData:getData,getDataList:getDataList,create:create,update:update,clone:clone,deleteDataById:deleteDataById,deleteDataByFilter:deleteDataByFilter,close:close}]})});return function newDeliveryClient(config){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.crud.delivery";
|
|
2
|
+
import { AuthData } from "./auth";
|
|
3
|
+
import { CrudData } from "./data";
|
|
4
|
+
import { EventMetadata } from "./eventMetadata";
|
|
5
|
+
export type CloneResponse<T extends CrudData> = CloneSuccessResponse<T> | CloneValidationResponse;
|
|
6
|
+
export interface CloneSuccessResponse<T extends CrudData> {
|
|
7
|
+
data: T;
|
|
8
|
+
}
|
|
9
|
+
export interface CloneValidationResponse {
|
|
10
|
+
validationErrors: string[];
|
|
11
|
+
fieldValidationErrors: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
export declare const isCloneSuccessResponse: <T extends CrudData>(response: CloneResponse<T>) => response is CloneSuccessResponse<T>;
|
|
14
|
+
export declare const isCloneValidationResponse: <T extends CrudData>(response: CloneResponse<T>) => response is CloneValidationResponse;
|
|
15
|
+
export declare const cloneCrudData: <T extends CrudData>(type: string, authData: AuthData, id: string, newId: string, data: Partial<T>, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<CloneResponse<T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{cloneCrudData:function(){return cloneCrudData},isCloneSuccessResponse:function(){return isCloneSuccessResponse},isCloneValidationResponse:function(){return isCloneValidationResponse}});var _auth=require("./auth");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var isCloneSuccessResponse=function(response){return Object.prototype.hasOwnProperty.call(response,"data")};var isCloneValidationResponse=function(response){return!Object.prototype.hasOwnProperty.call(response,"data")};var cloneCrudData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,newId,data,eventMetadata,serviceClient){var requestData,key;return _ts_generator(this,function(_state){requestData={};for(var key in data){requestData[key]=JSON.stringify(data[key])}return[2,new Promise(function(resolve,reject){serviceClient.clone({type:type,auth:(0,_auth.getProtobufAuthData)(authData),id:id,newId:newId,eventMetadata:eventMetadata,data:requestData},function(error,response){if(error){reject(error.message);return}if(response.validationErrors.length>0||Object.keys(response.fieldValidationErrors).length>0){resolve({validationErrors:response.validationErrors,fieldValidationErrors:response.fieldValidationErrors});return}var _$data={};for(var key in response.newData){if(response.newData[key]!==undefined){_$data[key]=JSON.parse(response.newData[key])}}resolve({data:_$data})})})]})});return function cloneCrudData(type,authData,id,newId,data,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{getEnvDeliveryConfig:function(){return getEnvDeliveryConfig},useDeliveryConfigDefaults:function(){return useDeliveryConfigDefaults}});var _dotenv=require("dotenv");var getEnvDeliveryConfig=function(){(0,_dotenv.config)();var _process_env_CRUD_SERVER_ADDRESS;var serverAddress=(_process_env_CRUD_SERVER_ADDRESS=process.env.CRUD_SERVER_ADDRESS)!==null&&_process_env_CRUD_SERVER_ADDRESS!==void 0?_process_env_CRUD_SERVER_ADDRESS:"";var keepaliveInterval;var keepaliveTimeout;var keepaliveIntervalString=process.env.CRUD_CONNECTION_KEEPALIVE_INTERVAL;var keepaliveTimeoutString=process.env.CRUD_CONNECTION_KEEPALIVE_INTERVAL;if(keepaliveIntervalString){keepaliveInterval=parseInt(keepaliveIntervalString,10)}if(keepaliveTimeoutString){keepaliveTimeout=parseInt(keepaliveTimeoutString,10)}return{serverAddress:serverAddress,keepaliveInterval:keepaliveInterval,keepaliveTimeout:keepaliveTimeout}};var useDeliveryConfigDefaults=function(config){if(!config){config=getEnvDeliveryConfig()}var _config_keepaliveTimeout,_config_keepaliveInterval;return{serverAddress:config.serverAddress,keepaliveTimeout:(_config_keepaliveTimeout=config.keepaliveTimeout)!==null&&_config_keepaliveTimeout!==void 0?_config_keepaliveTimeout:3*1e3,keepaliveInterval:(_config_keepaliveInterval=config.keepaliveInterval)!==null&&_config_keepaliveInterval!==void 0?_config_keepaliveInterval:40*1e3}};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.crud.delivery";
|
|
2
|
+
import { AuthData } from "./auth";
|
|
3
|
+
import { CrudData } from "./data";
|
|
4
|
+
import { EventMetadata } from "./eventMetadata";
|
|
5
|
+
export type CreateResponse<T extends CrudData> = CreateSuccessResponse<T> | CreateValidationResponse;
|
|
6
|
+
export interface CreateSuccessResponse<T extends CrudData> {
|
|
7
|
+
data: T;
|
|
8
|
+
}
|
|
9
|
+
export interface CreateValidationResponse {
|
|
10
|
+
validationErrors: string[];
|
|
11
|
+
fieldValidationErrors: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
export declare const isCreateSuccessResponse: <T extends CrudData>(response: CreateResponse<T>) => response is CreateSuccessResponse<T>;
|
|
14
|
+
export declare const isCreateValidationResponse: <T extends CrudData>(response: CreateResponse<T>) => response is CreateValidationResponse;
|
|
15
|
+
export declare const createCrudData: <T extends CrudData>(type: string, authData: AuthData, data: T, id: string, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<CreateResponse<T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{createCrudData:function(){return createCrudData},isCreateSuccessResponse:function(){return isCreateSuccessResponse},isCreateValidationResponse:function(){return isCreateValidationResponse}});var _auth=require("./auth");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var isCreateSuccessResponse=function(response){return Object.prototype.hasOwnProperty.call(response,"data")};var isCreateValidationResponse=function(response){return!Object.prototype.hasOwnProperty.call(response,"data")};var createCrudData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,data,id,eventMetadata,serviceClient){var requestData,key;return _ts_generator(this,function(_state){requestData={};for(var key in data){requestData[key]=JSON.stringify(data[key])}return[2,new Promise(function(resolve,reject){serviceClient.create({type:type,auth:(0,_auth.getProtobufAuthData)(authData),data:requestData,id:id,eventMetadata:eventMetadata},function(error,response){if(error){reject(error.message);return}if(response.validationErrors.length>0||Object.keys(response.fieldValidationErrors).length>0){resolve({validationErrors:response.validationErrors,fieldValidationErrors:response.fieldValidationErrors});return}var _$data={};for(var key in response.newData){if(response.newData[key]!==undefined){_$data[key]=JSON.parse(response.newData[key])}}resolve({data:_$data})})})]})});return function createCrudData(type,authData,data,id,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CrudData = Record<string, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"deleteCrudData",{enumerable:true,get:function(){return deleteCrudData}});var _auth=require("./auth");var _filter=require("./filter");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var deleteCrudData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,filter,eventMetadata,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.delete({type:type,auth:(0,_auth.getProtobufAuthData)(authData),id:id,filter:(0,_filter.getProtobufDataFilter)(filter),eventMetadata:eventMetadata},function(error,response){if(error){reject(error.message);return}resolve(parseInt(response.numberOfDeletedEntries,10))})})]})});return function deleteCrudData(type,authData,id,filter,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"fillMetadataWithDefaults",{enumerable:true,get:function(){return fillMetadataWithDefaults}});var fillMetadataWithDefaults=function(metadata){if(!metadata){return{causationId:"",correlationId:"",deploymentId:"",userId:""}}return{causationId:metadata.causationId||"",correlationId:metadata.correlationId||"",deploymentId:metadata.deploymentId||"",userId:metadata.userId||""}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getProtobufDataFilter",{enumerable:true,get:function(){return getProtobufDataFilter}});var getProtobufDataFilter=function(filter){var fields={};for(var fieldName in filter.fields){var field=filter.fields[fieldName];if(!field){continue}fields[fieldName]={operation:field.operation,type:field.type,value:JSON.stringify(field.value)}}return{fields:fields,and:filter.and?filter.and.map(function(and){return getProtobufDataFilter(and)}):[],or:filter.or?filter.or.map(function(or){return getProtobufDataFilter(or)}):[]}};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.crud.delivery";
|
|
2
|
+
import { AuthData } from "./auth";
|
|
3
|
+
import { CrudData } from "./data";
|
|
4
|
+
import { Filter } from "./filter";
|
|
5
|
+
import { Wait } from "./wait";
|
|
6
|
+
export declare const getCrudData: <T extends CrudData>(type: string, authData: AuthData, id: string, filter: Filter, returnEmptyDataIfNotFound: boolean, useStrongConsistency: boolean, deploymentId: number | null, serviceClient: ServiceClient, wait?: Wait) => Promise<T | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getCrudData",{enumerable:true,get:function(){return getCrudData}});var _auth=require("./auth");var _filter=require("./filter");var _wait=require("./wait");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var getCrudData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,filter,returnEmptyDataIfNotFound,useStrongConsistency,deploymentId,serviceClient,wait){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){var _deploymentId_toString;serviceClient.getData({type:type,auth:(0,_auth.getProtobufAuthData)(authData),filter:(0,_filter.getProtobufDataFilter)(filter),id:id,returnEmptyDataIfNotFound:returnEmptyDataIfNotFound,wait:(0,_wait.getProtobufDataWait)(wait),useStrongConsistency:useStrongConsistency,deploymentId:(_deploymentId_toString=deploymentId===null||deploymentId===void 0?void 0:deploymentId.toString())!==null&&_deploymentId_toString!==void 0?_deploymentId_toString:""},function(error,response){if(error){reject(error.message);return}var result=response.result;if(!result){resolve(null);return}var data={};for(var key in result.data){if(result.data[key]!==undefined){data[key]=JSON.parse(result.data[key])}}resolve(data)})})]})});return function getCrudData(type,authData,id,filter,returnEmptyDataIfNotFound,useStrongConsistency,deploymentId,serviceClient,wait){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.crud.delivery";
|
|
2
|
+
import { AuthData } from "./auth";
|
|
3
|
+
import { CrudData } from "./data";
|
|
4
|
+
import { Filter } from "./filter";
|
|
5
|
+
import { Order } from "./order";
|
|
6
|
+
export interface GetCrudDataList<T extends CrudData> {
|
|
7
|
+
limit: number;
|
|
8
|
+
page: number;
|
|
9
|
+
total: number;
|
|
10
|
+
data: T[];
|
|
11
|
+
}
|
|
12
|
+
export declare const getCrudDataList: <T extends CrudData>(type: string, authData: AuthData, limit: number, page: number, filter: Filter, order: Order[], useStrongConsistency: boolean, deploymentId: number | null, serviceClient: ServiceClient) => Promise<GetCrudDataList<T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getCrudDataList",{enumerable:true,get:function(){return getCrudDataList}});var _auth=require("./auth");var _filter=require("./filter");var _order=require("./order");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var getCrudDataList=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,limit,page,filter,order,useStrongConsistency,deploymentId,serviceClient){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){var _deploymentId_toString;serviceClient.getDataList({type:type,auth:(0,_auth.getProtobufAuthData)(authData),limit:limit.toString(),page:page.toString(),filter:(0,_filter.getProtobufDataFilter)(filter),order:(0,_order.getProtobufDataOrder)(order),useStrongConsistency:useStrongConsistency,deploymentId:(_deploymentId_toString=deploymentId===null||deploymentId===void 0?void 0:deploymentId.toString())!==null&&_deploymentId_toString!==void 0?_deploymentId_toString:""},function(error,response){if(error){reject(error.message);return}var data=[];var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=response.result[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var result=_step.value;var dataRecord={};var resultData=result.data;for(var key in resultData){if(resultData[key]!==undefined){dataRecord[key]=JSON.parse(resultData[key])}}data.push(dataRecord)}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}resolve({limit:parseInt(response.limit,10),page:parseInt(response.page,10),total:parseInt(response.total,10),data:data})})})]})});return function getCrudDataList(type,authData,limit,page,filter,order,useStrongConsistency,deploymentId,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getProtobufDataOrder",{enumerable:true,get:function(){return getProtobufDataOrder}});var getProtobufDataOrder=function(order){return order.map(function(o){var _o_descending;return{field:o.field,descending:(_o_descending=o.descending)!==null&&_o_descending!==void 0?_o_descending:false}})};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ServiceClient } from "@fraym/proto/dist/index.freym.crud.delivery";
|
|
2
|
+
import { AuthData } from "./auth";
|
|
3
|
+
import { CrudData } from "./data";
|
|
4
|
+
import { EventMetadata } from "./eventMetadata";
|
|
5
|
+
export type UpdateResponse<T extends CrudData> = UpdateSuccessResponse<T> | UpdateValidationResponse;
|
|
6
|
+
export interface UpdateSuccessResponse<T extends CrudData> {
|
|
7
|
+
data: T;
|
|
8
|
+
}
|
|
9
|
+
export interface UpdateValidationResponse {
|
|
10
|
+
validationErrors: string[];
|
|
11
|
+
fieldValidationErrors: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
export declare const isUpdateSuccessResponse: <T extends CrudData>(response: UpdateResponse<T>) => response is UpdateSuccessResponse<T>;
|
|
14
|
+
export declare const isUpdateValidationResponse: <T extends CrudData>(response: UpdateResponse<T>) => response is UpdateValidationResponse;
|
|
15
|
+
export declare const updateCrudData: <T extends CrudData>(type: string, authData: AuthData, id: string, data: Partial<T>, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<UpdateResponse<T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{isUpdateSuccessResponse:function(){return isUpdateSuccessResponse},isUpdateValidationResponse:function(){return isUpdateValidationResponse},updateCrudData:function(){return updateCrudData}});var _auth=require("./auth");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var isUpdateSuccessResponse=function(response){return Object.prototype.hasOwnProperty.call(response,"data")};var isUpdateValidationResponse=function(response){return!Object.prototype.hasOwnProperty.call(response,"data")};var updateCrudData=/*#__PURE__*/function(){var _ref=_async_to_generator(function(type,authData,id,data,eventMetadata,serviceClient){var requestData,key;return _ts_generator(this,function(_state){requestData={};for(var key in data){requestData[key]=JSON.stringify(data[key])}return[2,new Promise(function(resolve,reject){serviceClient.update({type:type,auth:(0,_auth.getProtobufAuthData)(authData),data:requestData,id:id,eventMetadata:eventMetadata},function(error,response){if(error){reject(error.message);return}if(response.validationErrors.length>0||Object.keys(response.fieldValidationErrors).length>0){resolve({validationErrors:response.validationErrors,fieldValidationErrors:response.fieldValidationErrors});return}var _$data={};for(var key in response.newData){if(response.newData[key]!==undefined){_$data[key]=JSON.parse(response.newData[key])}}resolve({data:_$data})})})]})});return function updateCrudData(type,authData,id,data,eventMetadata,serviceClient){return _ref.apply(this,arguments)}}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"getProtobufDataWait",{enumerable:true,get:function(){return getProtobufDataWait}});var _filter=require("./filter");var getProtobufDataWait=function(wait){if(!wait){return undefined}var _wait_timeout;return{conditionFilter:(0,_filter.getProtobufDataFilter)(wait.conditionFilter),timeout:((_wait_timeout=wait.timeout)!==null&&_wait_timeout!==void 0?_wait_timeout:0).toString()}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _base=require("@becklyn/eslint/base");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var _default=_to_consumable_array(_base.config);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export { Filter, FieldFilter } from "./
|
|
3
|
-
export { Order } from "./
|
|
4
|
-
export
|
|
1
|
+
export * from "./client/client";
|
|
2
|
+
export type { Filter, FieldFilter } from "./client/filter";
|
|
3
|
+
export type { Order } from "./client/order";
|
|
4
|
+
export type { AuthData } from "./client/auth";
|
|
5
|
+
export type { CrudData } from "./client/data";
|
|
6
|
+
export type { Wait } from "./client/wait";
|
|
7
|
+
export type { EventMetadata } from "./client/eventMetadata";
|
|
8
|
+
export * from "./client/config";
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./delivery/client"), exports);
|
|
18
|
-
__exportStar(require("./config/config"), exports);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./client/client"),exports);_export_star(require("./client/config"),exports);function _export_star(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k)){Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})}});return from}
|
package/package.json
CHANGED
|
@@ -1,46 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fraym/crud",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"homepage": "https://github.com/fraym/
|
|
5
|
+
"homepage": "https://github.com/fraym/freym-api",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/fraym/
|
|
8
|
+
"url": "git+https://github.com/fraym/freym-api.git"
|
|
9
9
|
},
|
|
10
|
-
"description": "
|
|
10
|
+
"description": "JS client implementation of the crud service of Freym",
|
|
11
11
|
"scripts": {
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"build": "npm run clean && tsc",
|
|
16
|
-
"clean": "rm -rf dist",
|
|
17
|
-
"prepublishOnly": "npm test && npm run lint && npm run build",
|
|
18
|
-
"preversion": "npm run lint"
|
|
12
|
+
"build": "rm -rf dist && tsc && npx swc . -d dist",
|
|
13
|
+
"lint": "eslint && prettier --check \"**/*.{ts,tsx,json,scss,css}\"",
|
|
14
|
+
"fix": "eslint --fix && prettier --write \"**/*.{ts,tsx,json,scss,css}\""
|
|
19
15
|
},
|
|
20
16
|
"files": [
|
|
21
17
|
"dist/**/*"
|
|
22
18
|
],
|
|
23
19
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
20
|
+
"node": ">=20"
|
|
25
21
|
},
|
|
26
22
|
"main": "dist/index.js",
|
|
27
23
|
"types": "dist/index.d.ts",
|
|
28
24
|
"dependencies": {
|
|
29
|
-
"@fraym/proto": "^0.
|
|
30
|
-
"@
|
|
31
|
-
"
|
|
32
|
-
"@grpc/grpc-js": "^1.11.3",
|
|
33
|
-
"dotenv": "^16.4.5",
|
|
34
|
-
"graphql": "^16.9.0",
|
|
35
|
-
"yargs": "^17.7.2"
|
|
36
|
-
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@becklyn/prettier": "^1.0.2",
|
|
39
|
-
"@types/uuid": "^8.3.4",
|
|
40
|
-
"@types/yargs": "^17.0.33",
|
|
41
|
-
"prettier": "^2.8.8",
|
|
42
|
-
"typescript": "^4.9.5",
|
|
43
|
-
"uuid": "^9.0.1"
|
|
25
|
+
"@fraym/proto": "^0.30.0",
|
|
26
|
+
"@grpc/grpc-js": "^1.12.6",
|
|
27
|
+
"dotenv": "^16.4.7"
|
|
44
28
|
},
|
|
45
29
|
"prettier": "@becklyn/prettier"
|
|
46
30
|
}
|
package/dist/config/config.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useDeliveryConfigDefaults = exports.getEnvDeliveryConfig = void 0;
|
|
4
|
-
const dotenv_1 = require("dotenv");
|
|
5
|
-
const getEnvDeliveryConfig = () => {
|
|
6
|
-
var _a;
|
|
7
|
-
(0, dotenv_1.config)();
|
|
8
|
-
const serverAddress = (_a = process.env.CRUD_SERVER_ADDRESS) !== null && _a !== void 0 ? _a : "";
|
|
9
|
-
let keepaliveInterval;
|
|
10
|
-
let keepaliveTimeout;
|
|
11
|
-
const keepaliveIntervalString = process.env.CRUD_CONNECTION_KEEPALIVE_INTERVAL;
|
|
12
|
-
const keepaliveTimeoutString = process.env.CRUD_CONNECTION_KEEPALIVE_INTERVAL;
|
|
13
|
-
if (keepaliveIntervalString) {
|
|
14
|
-
keepaliveInterval = parseInt(keepaliveIntervalString, 10);
|
|
15
|
-
}
|
|
16
|
-
if (keepaliveTimeoutString) {
|
|
17
|
-
keepaliveTimeout = parseInt(keepaliveTimeoutString, 10);
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
serverAddress,
|
|
21
|
-
keepaliveInterval,
|
|
22
|
-
keepaliveTimeout,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
exports.getEnvDeliveryConfig = getEnvDeliveryConfig;
|
|
26
|
-
const useDeliveryConfigDefaults = (config) => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
if (!config) {
|
|
29
|
-
config = (0, exports.getEnvDeliveryConfig)();
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
serverAddress: config.serverAddress,
|
|
33
|
-
keepaliveTimeout: (_a = config.keepaliveTimeout) !== null && _a !== void 0 ? _a : 3 * 1000,
|
|
34
|
-
keepaliveInterval: (_b = config.keepaliveInterval) !== null && _b !== void 0 ? _b : 40 * 1000,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
exports.useDeliveryConfigDefaults = useDeliveryConfigDefaults;
|
package/dist/delivery/auth.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProtobufAuthData = void 0;
|
|
4
|
-
const getProtobufAuthData = (auth) => {
|
|
5
|
-
const data = {};
|
|
6
|
-
for (let key in auth.data) {
|
|
7
|
-
data[key] = JSON.stringify(auth.data[key]);
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
tenantId: auth.tenantId,
|
|
11
|
-
scopes: auth.scopes,
|
|
12
|
-
data,
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
exports.getProtobufAuthData = getProtobufAuthData;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DeliveryClientConfig } from "../config/config";
|
|
2
|
-
import { CreateResponse } from "./create";
|
|
3
|
-
import { UpdateResponse } from "./update";
|
|
4
|
-
import { GetCrudDataList } from "./getDataList";
|
|
5
|
-
import { Filter } from "./filter";
|
|
6
|
-
import { Order } from "./order";
|
|
7
|
-
import { AuthData } from "./auth";
|
|
8
|
-
import { EventMetadata } from "./eventMetadata";
|
|
9
|
-
import { Wait } from "./wait";
|
|
10
|
-
export interface DeliveryClient {
|
|
11
|
-
getData: <T extends {}>(type: string, authData: AuthData, id: string, filter?: Filter, returnEmptyDataIfNotFound?: boolean, wait?: Wait) => Promise<T | null>;
|
|
12
|
-
getDataList: <T extends {}>(type: string, authData: AuthData, limit?: number, page?: number, filter?: Filter, order?: Order[]) => Promise<GetCrudDataList<T>>;
|
|
13
|
-
create: <T extends {}>(type: string, authData: AuthData, data: Record<string, any>, id?: string, eventMetadata?: EventMetadata) => Promise<CreateResponse<T>>;
|
|
14
|
-
update: <T extends {}>(type: string, authData: AuthData, id: string, data: Record<string, any>, eventMetadata?: EventMetadata) => Promise<UpdateResponse<T>>;
|
|
15
|
-
clone: <T extends {}>(type: string, authData: AuthData, id: string, newId: string, eventMetadata?: EventMetadata) => Promise<UpdateResponse<T>>;
|
|
16
|
-
deleteDataById: (type: string, authData: AuthData, id: string, eventMetadata?: EventMetadata) => Promise<number>;
|
|
17
|
-
deleteDataByFilter: (type: string, authData: AuthData, filter?: Filter, eventMetadata?: EventMetadata) => Promise<number>;
|
|
18
|
-
close: () => Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export declare const newDeliveryClient: (config?: DeliveryClientConfig) => Promise<DeliveryClient>;
|
package/dist/delivery/client.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.newDeliveryClient = void 0;
|
|
4
|
-
const config_1 = require("../config/config");
|
|
5
|
-
const delivery_1 = require("@fraym/proto/freym/crud/delivery");
|
|
6
|
-
const grpc_js_1 = require("@grpc/grpc-js");
|
|
7
|
-
const create_1 = require("./create");
|
|
8
|
-
const update_1 = require("./update");
|
|
9
|
-
const delete_1 = require("./delete");
|
|
10
|
-
const getData_1 = require("./getData");
|
|
11
|
-
const getDataList_1 = require("./getDataList");
|
|
12
|
-
const clone_1 = require("delivery/clone");
|
|
13
|
-
const newDeliveryClient = async (config) => {
|
|
14
|
-
config = (0, config_1.useDeliveryConfigDefaults)(config);
|
|
15
|
-
const serviceClient = new delivery_1.ServiceClient(config.serverAddress, grpc_js_1.credentials.createInsecure(), {
|
|
16
|
-
"grpc.keepalive_time_ms": config.keepaliveInterval,
|
|
17
|
-
"grpc.keepalive_timeout_ms": config.keepaliveTimeout,
|
|
18
|
-
"grpc.keepalive_permit_without_calls": 1,
|
|
19
|
-
});
|
|
20
|
-
const getData = async (type, authData, id, filter = { fields: {}, and: [], or: [] }, returnEmptyDataIfNotFound = false, wait) => {
|
|
21
|
-
return await (0, getData_1.getCrudData)(type, authData, id, filter, returnEmptyDataIfNotFound, serviceClient, wait);
|
|
22
|
-
};
|
|
23
|
-
const getDataList = async (type, authData, limit = 0, page = 1, filter = { fields: {}, and: [], or: [] }, order = []) => {
|
|
24
|
-
return await (0, getDataList_1.getCrudDataList)(type, authData, limit, page, filter, order, serviceClient);
|
|
25
|
-
};
|
|
26
|
-
const create = async (type, authData, data, id = "", eventMetadata = { causationId: "", correlationId: "" }) => {
|
|
27
|
-
return await (0, create_1.createCrudData)(type, authData, data, id, eventMetadata, serviceClient);
|
|
28
|
-
};
|
|
29
|
-
const update = async (type, authData, id, data, eventMetadata = { causationId: "", correlationId: "" }) => {
|
|
30
|
-
return await (0, update_1.updateCrudData)(type, authData, id, data, eventMetadata, serviceClient);
|
|
31
|
-
};
|
|
32
|
-
const clone = async (type, authData, id, newId, eventMetadata = { causationId: "", correlationId: "" }) => {
|
|
33
|
-
return await (0, clone_1.cloneCrudData)(type, authData, id, newId, eventMetadata, serviceClient);
|
|
34
|
-
};
|
|
35
|
-
const deleteDataById = async (type, authData, id, eventMetadata = { causationId: "", correlationId: "" }) => {
|
|
36
|
-
return await (0, delete_1.deleteCrudData)(type, authData, id, { fields: {}, and: [], or: [] }, eventMetadata, serviceClient);
|
|
37
|
-
};
|
|
38
|
-
const deleteDataByFilter = async (type, authData, filter = { fields: {}, and: [], or: [] }, eventMetadata = { causationId: "", correlationId: "" }) => {
|
|
39
|
-
return await (0, delete_1.deleteCrudData)(type, authData, "", filter, eventMetadata, serviceClient);
|
|
40
|
-
};
|
|
41
|
-
const close = async () => {
|
|
42
|
-
serviceClient.close();
|
|
43
|
-
};
|
|
44
|
-
return {
|
|
45
|
-
getData,
|
|
46
|
-
getDataList,
|
|
47
|
-
create,
|
|
48
|
-
update,
|
|
49
|
-
clone,
|
|
50
|
-
deleteDataById,
|
|
51
|
-
deleteDataByFilter,
|
|
52
|
-
close,
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
exports.newDeliveryClient = newDeliveryClient;
|
package/dist/delivery/clone.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym/crud/delivery";
|
|
2
|
-
import { AuthData } from "./auth";
|
|
3
|
-
import { EventMetadata } from "./eventMetadata";
|
|
4
|
-
export declare const cloneCrudData: <T extends {}>(type: string, authData: AuthData, id: string, newId: string, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<T>;
|
package/dist/delivery/clone.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cloneCrudData = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const cloneCrudData = async (type, authData, id, newId, eventMetadata, serviceClient) => {
|
|
6
|
-
return new Promise((resolve, reject) => {
|
|
7
|
-
serviceClient.cloneEntry({
|
|
8
|
-
type,
|
|
9
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
10
|
-
id,
|
|
11
|
-
newId,
|
|
12
|
-
eventMetadata,
|
|
13
|
-
}, (error, response) => {
|
|
14
|
-
if (error) {
|
|
15
|
-
reject(error.message);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const data = {};
|
|
19
|
-
for (const key in response.newData) {
|
|
20
|
-
data[key] = JSON.parse(response.newData[key]);
|
|
21
|
-
}
|
|
22
|
-
resolve(data);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
exports.cloneCrudData = cloneCrudData;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym/crud/delivery";
|
|
2
|
-
import { AuthData } from "./auth";
|
|
3
|
-
import { EventMetadata } from "./eventMetadata";
|
|
4
|
-
export type CreateResponse<T extends {}> = CreateSuccessResponse<T> | CreateValidationResponse;
|
|
5
|
-
export interface CreateSuccessResponse<T extends {}> {
|
|
6
|
-
data: T;
|
|
7
|
-
}
|
|
8
|
-
export interface CreateValidationResponse {
|
|
9
|
-
validationErrors: string[];
|
|
10
|
-
fieldValidationErrors: Record<string, string>;
|
|
11
|
-
}
|
|
12
|
-
export declare const isCreateSuccessResponse: <T extends {}>(response: CreateResponse<T>) => response is CreateSuccessResponse<T>;
|
|
13
|
-
export declare const isCreateValidationResponse: <T extends {}>(response: CreateResponse<T>) => response is CreateValidationResponse;
|
|
14
|
-
export declare const createCrudData: <T extends {}>(type: string, authData: AuthData, data: Record<string, any>, id: string, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<CreateResponse<T>>;
|
package/dist/delivery/create.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCrudData = exports.isCreateValidationResponse = exports.isCreateSuccessResponse = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const isCreateSuccessResponse = (response) => {
|
|
6
|
-
return response.hasOwnProperty("data");
|
|
7
|
-
};
|
|
8
|
-
exports.isCreateSuccessResponse = isCreateSuccessResponse;
|
|
9
|
-
const isCreateValidationResponse = (response) => {
|
|
10
|
-
return !response.hasOwnProperty("data");
|
|
11
|
-
};
|
|
12
|
-
exports.isCreateValidationResponse = isCreateValidationResponse;
|
|
13
|
-
const createCrudData = async (type, authData, data, id, eventMetadata, serviceClient) => {
|
|
14
|
-
const requestData = {};
|
|
15
|
-
for (const key in data) {
|
|
16
|
-
requestData[key] = JSON.stringify(data[key]);
|
|
17
|
-
}
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
serviceClient.createEntry({
|
|
20
|
-
type,
|
|
21
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
22
|
-
data: requestData,
|
|
23
|
-
id,
|
|
24
|
-
eventMetadata,
|
|
25
|
-
}, (error, response) => {
|
|
26
|
-
if (error) {
|
|
27
|
-
reject(error.message);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (response.validationErrors.length > 0 ||
|
|
31
|
-
Object.keys(response.fieldValidationErrors).length > 0) {
|
|
32
|
-
resolve({
|
|
33
|
-
validationErrors: response.validationErrors,
|
|
34
|
-
fieldValidationErrors: response.fieldValidationErrors,
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const data = {};
|
|
39
|
-
for (const key in response.newData) {
|
|
40
|
-
data[key] = JSON.parse(response.newData[key]);
|
|
41
|
-
}
|
|
42
|
-
resolve({
|
|
43
|
-
data,
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
exports.createCrudData = createCrudData;
|
package/dist/delivery/delete.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteCrudData = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const filter_1 = require("./filter");
|
|
6
|
-
const deleteCrudData = async (type, authData, id, filter, eventMetadata, serviceClient) => {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
serviceClient.deleteEntries({
|
|
9
|
-
type,
|
|
10
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
11
|
-
id,
|
|
12
|
-
filter: (0, filter_1.getProtobufDataFilter)(filter),
|
|
13
|
-
eventMetadata,
|
|
14
|
-
}, (error, response) => {
|
|
15
|
-
if (error) {
|
|
16
|
-
reject(error.message);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
resolve(parseInt(response.numberOfDeletedEntries, 10));
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
exports.deleteCrudData = deleteCrudData;
|
package/dist/delivery/filter.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProtobufDataFilter = void 0;
|
|
4
|
-
const getProtobufDataFilter = (filter) => {
|
|
5
|
-
const fields = {};
|
|
6
|
-
for (const fieldName in filter.fields) {
|
|
7
|
-
const field = filter.fields[fieldName];
|
|
8
|
-
fields[fieldName] = {
|
|
9
|
-
operation: field.operation,
|
|
10
|
-
type: field.type,
|
|
11
|
-
value: JSON.stringify(field.value),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
return {
|
|
15
|
-
fields: fields,
|
|
16
|
-
and: filter.and ? filter.and.map(and => (0, exports.getProtobufDataFilter)(and)) : [],
|
|
17
|
-
or: filter.or ? filter.or.map(or => (0, exports.getProtobufDataFilter)(or)) : [],
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
exports.getProtobufDataFilter = getProtobufDataFilter;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym/crud/delivery";
|
|
2
|
-
import { AuthData } from "./auth";
|
|
3
|
-
import { Filter } from "./filter";
|
|
4
|
-
import { Wait } from "./wait";
|
|
5
|
-
export declare const getCrudData: <T extends {}>(type: string, authData: AuthData, id: string, filter: Filter, returnEmptyDataIfNotFound: boolean, serviceClient: ServiceClient, wait?: Wait) => Promise<T | null>;
|
package/dist/delivery/getData.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCrudData = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const filter_1 = require("./filter");
|
|
6
|
-
const wait_1 = require("./wait");
|
|
7
|
-
const getCrudData = async (type, authData, id, filter, returnEmptyDataIfNotFound, serviceClient, wait) => {
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
serviceClient.getEntry({
|
|
10
|
-
type,
|
|
11
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
12
|
-
filter: (0, filter_1.getProtobufDataFilter)(filter),
|
|
13
|
-
id,
|
|
14
|
-
returnEmptyDataIfNotFound,
|
|
15
|
-
wait: (0, wait_1.getProtobufDataWait)(wait),
|
|
16
|
-
}, (error, response) => {
|
|
17
|
-
if (error) {
|
|
18
|
-
reject(error.message);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const result = response.result;
|
|
22
|
-
if (!result) {
|
|
23
|
-
resolve(null);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const data = {};
|
|
27
|
-
for (const key in result.data) {
|
|
28
|
-
data[key] = JSON.parse(result.data[key]);
|
|
29
|
-
}
|
|
30
|
-
resolve(data);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
exports.getCrudData = getCrudData;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym/crud/delivery";
|
|
2
|
-
import { AuthData } from "./auth";
|
|
3
|
-
import { Filter } from "./filter";
|
|
4
|
-
import { Order } from "./order";
|
|
5
|
-
export interface GetCrudDataList<T extends {}> {
|
|
6
|
-
limit: number;
|
|
7
|
-
page: number;
|
|
8
|
-
total: number;
|
|
9
|
-
data: T[];
|
|
10
|
-
}
|
|
11
|
-
export declare const getCrudDataList: <T extends {}>(type: string, authData: AuthData, limit: number, page: number, filter: Filter, order: Order[], serviceClient: ServiceClient) => Promise<GetCrudDataList<T>>;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCrudDataList = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const filter_1 = require("./filter");
|
|
6
|
-
const order_1 = require("./order");
|
|
7
|
-
const getCrudDataList = async (type, authData, limit, page, filter, order, serviceClient) => {
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
serviceClient.getEntryList({
|
|
10
|
-
type,
|
|
11
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
12
|
-
limit: limit.toString(),
|
|
13
|
-
page: page.toString(),
|
|
14
|
-
filter: (0, filter_1.getProtobufDataFilter)(filter),
|
|
15
|
-
order: (0, order_1.getProtobufDataOrder)(order),
|
|
16
|
-
}, (error, response) => {
|
|
17
|
-
if (error) {
|
|
18
|
-
reject(error.message);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const data = [];
|
|
22
|
-
for (const result of response.result) {
|
|
23
|
-
const dataRecord = {};
|
|
24
|
-
const resultData = result.data;
|
|
25
|
-
for (const key in resultData) {
|
|
26
|
-
dataRecord[key] = JSON.parse(resultData[key]);
|
|
27
|
-
}
|
|
28
|
-
data.push(dataRecord);
|
|
29
|
-
}
|
|
30
|
-
resolve({
|
|
31
|
-
limit: parseInt(response.limit, 10),
|
|
32
|
-
page: parseInt(response.page, 10),
|
|
33
|
-
total: parseInt(response.total, 10),
|
|
34
|
-
data,
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
exports.getCrudDataList = getCrudDataList;
|
package/dist/delivery/order.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProtobufDataOrder = void 0;
|
|
4
|
-
const getProtobufDataOrder = (order) => {
|
|
5
|
-
return order.map(o => {
|
|
6
|
-
var _a;
|
|
7
|
-
return ({
|
|
8
|
-
field: o.field,
|
|
9
|
-
descending: (_a = o.descending) !== null && _a !== void 0 ? _a : false,
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
exports.getProtobufDataOrder = getProtobufDataOrder;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ServiceClient } from "@fraym/proto/freym/crud/delivery";
|
|
2
|
-
import { AuthData } from "./auth";
|
|
3
|
-
import { EventMetadata } from "./eventMetadata";
|
|
4
|
-
export type UpdateResponse<T extends {}> = UpdateSuccessResponse<T> | UpdateValidationResponse;
|
|
5
|
-
export interface UpdateSuccessResponse<T extends {}> {
|
|
6
|
-
data: T;
|
|
7
|
-
}
|
|
8
|
-
export interface UpdateValidationResponse {
|
|
9
|
-
validationErrors: string[];
|
|
10
|
-
fieldValidationErrors: Record<string, string>;
|
|
11
|
-
}
|
|
12
|
-
export declare const isUpdateSuccessResponse: <T extends {}>(response: UpdateResponse<T>) => response is UpdateSuccessResponse<T>;
|
|
13
|
-
export declare const isUpdateValidationResponse: <T extends {}>(response: UpdateResponse<T>) => response is UpdateValidationResponse;
|
|
14
|
-
export declare const updateCrudData: <T extends {}>(type: string, authData: AuthData, id: string, data: Record<string, any>, eventMetadata: EventMetadata, serviceClient: ServiceClient) => Promise<UpdateResponse<T>>;
|
package/dist/delivery/update.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateCrudData = exports.isUpdateValidationResponse = exports.isUpdateSuccessResponse = void 0;
|
|
4
|
-
const auth_1 = require("./auth");
|
|
5
|
-
const isUpdateSuccessResponse = (response) => {
|
|
6
|
-
return response.hasOwnProperty("data");
|
|
7
|
-
};
|
|
8
|
-
exports.isUpdateSuccessResponse = isUpdateSuccessResponse;
|
|
9
|
-
const isUpdateValidationResponse = (response) => {
|
|
10
|
-
return !response.hasOwnProperty("data");
|
|
11
|
-
};
|
|
12
|
-
exports.isUpdateValidationResponse = isUpdateValidationResponse;
|
|
13
|
-
const updateCrudData = async (type, authData, id, data, eventMetadata, serviceClient) => {
|
|
14
|
-
const requestData = {};
|
|
15
|
-
for (const key in data) {
|
|
16
|
-
requestData[key] = JSON.stringify(data[key]);
|
|
17
|
-
}
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
serviceClient.updateEntry({
|
|
20
|
-
type,
|
|
21
|
-
auth: (0, auth_1.getProtobufAuthData)(authData),
|
|
22
|
-
data: requestData,
|
|
23
|
-
id,
|
|
24
|
-
eventMetadata,
|
|
25
|
-
}, (error, response) => {
|
|
26
|
-
if (error) {
|
|
27
|
-
reject(error.message);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (response.validationErrors.length > 0 ||
|
|
31
|
-
Object.keys(response.fieldValidationErrors).length > 0) {
|
|
32
|
-
resolve({
|
|
33
|
-
validationErrors: response.validationErrors,
|
|
34
|
-
fieldValidationErrors: response.fieldValidationErrors,
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const data = {};
|
|
39
|
-
for (const key in response.newData) {
|
|
40
|
-
data[key] = JSON.parse(response.newData[key]);
|
|
41
|
-
}
|
|
42
|
-
resolve({
|
|
43
|
-
data,
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
exports.updateCrudData = updateCrudData;
|
package/dist/delivery/wait.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getProtobufDataWait = void 0;
|
|
4
|
-
const filter_1 = require("./filter");
|
|
5
|
-
const getProtobufDataWait = (wait) => {
|
|
6
|
-
var _a;
|
|
7
|
-
if (!wait) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
return {
|
|
11
|
-
conditionFilter: (0, filter_1.getProtobufDataFilter)(wait.conditionFilter),
|
|
12
|
-
timeout: ((_a = wait.timeout) !== null && _a !== void 0 ? _a : 0).toString(),
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
exports.getProtobufDataWait = getProtobufDataWait;
|
|
File without changes
|