@nymphjs/server 1.0.0-beta.1 → 1.0.0-beta.100

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,eAAe,YAAY,CAAC"}
@@ -1,30 +1,27 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const express_1 = __importDefault(require("express"));
7
- const driver_sqlite3_1 = __importDefault(require("@nymphjs/driver-sqlite3"));
8
- const nymph_1 = require("@nymphjs/nymph");
9
- const client_node_1 = require("@nymphjs/client-node");
10
- const client_1 = require("@nymphjs/client");
11
- const index_1 = __importDefault(require("./index"));
12
- const testArtifacts_1 = require("./testArtifacts");
1
+ import express from 'express';
2
+ import SQLite3Driver from '@nymphjs/driver-sqlite3';
3
+ import { Nymph as NymphServer } from '@nymphjs/nymph';
4
+ import { Nymph, Entity, HttpError } from '@nymphjs/client';
5
+ import createServer from './index.js';
6
+ import { EmployeeModel as EmployeeModelClass, Employee as EmployeeClass, RestrictedModel as RestrictedModelClass, Restricted as RestrictedClass, } from './testArtifacts.js';
13
7
  const sqliteConfig = {
14
8
  filename: ':memory:',
15
9
  };
16
- const nymphServer = new nymph_1.Nymph({}, new driver_sqlite3_1.default(sqliteConfig));
17
- nymphServer.addEntityClass(testArtifacts_1.EmployeeModel);
18
- const app = (0, express_1.default)();
19
- app.use('/test', (0, index_1.default)(nymphServer));
10
+ const nymphServer = new NymphServer({}, new SQLite3Driver(sqliteConfig));
11
+ const EmployeeModel = nymphServer.addEntityClass(EmployeeModelClass);
12
+ const RestrictedModel = nymphServer.addEntityClass(RestrictedModelClass);
13
+ const app = express();
14
+ app.use('/test', createServer(nymphServer));
20
15
  const server = app.listen(5080);
21
- const nymph = new client_node_1.Nymph({
22
- restUrl: 'http://localhost:5080/test/',
16
+ const REST_URL = 'http://localhost:5080/test/';
17
+ const nymph = new Nymph({
18
+ restUrl: REST_URL,
23
19
  });
24
- nymph.addEntityClass(testArtifacts_1.Employee);
20
+ const Employee = nymph.addEntityClass(EmployeeClass);
21
+ const Restricted = nymph.addEntityClass(RestrictedClass);
25
22
  describe('Nymph REST Server and Client', () => {
26
23
  async function createJane() {
27
- const jane = await testArtifacts_1.Employee.factory();
24
+ const jane = await Employee.factory();
28
25
  jane.name = 'Jane Doe';
29
26
  jane.current = true;
30
27
  jane.salary = 8000000;
@@ -54,14 +51,14 @@ describe('Nymph REST Server and Client', () => {
54
51
  expect(jane.mdate).toBeGreaterThan(oldMdate);
55
52
  });
56
53
  it('create two unrelated entities', async () => {
57
- const entity = await testArtifacts_1.Employee.factory();
54
+ const entity = await Employee.factory();
58
55
  entity.name = 'Jane Doe';
59
56
  entity.current = true;
60
57
  entity.salary = 8000000;
61
58
  entity.startDate = Date.now();
62
59
  entity.subordinates = [];
63
60
  entity.title = 'Seniorer Person';
64
- const entity2 = await testArtifacts_1.Employee.factory();
61
+ const entity2 = await Employee.factory();
65
62
  entity2.name = 'John Doe';
66
63
  entity2.current = true;
67
64
  entity2.salary = 8000000;
@@ -76,13 +73,13 @@ describe('Nymph REST Server and Client', () => {
76
73
  entity.building = 'J2';
77
74
  entity2.building = 'B4';
78
75
  await nymph.saveEntities(entities);
79
- const jane = await nymph.getEntity({ class: testArtifacts_1.Employee }, entity.guid);
80
- const john = await nymph.getEntity({ class: testArtifacts_1.Employee }, entity2.guid);
76
+ const jane = await nymph.getEntity({ class: Employee }, entity.guid);
77
+ const john = await nymph.getEntity({ class: Employee }, entity2.guid);
81
78
  expect(jane?.building).toEqual('J2');
82
79
  expect(john?.building).toEqual('B4');
83
80
  });
84
81
  it('create two related entities', async () => {
85
- const jane = await testArtifacts_1.Employee.factory();
82
+ const jane = await Employee.factory();
86
83
  jane.name = 'Jane Doe';
87
84
  jane.current = true;
88
85
  jane.salary = 8000000;
@@ -90,7 +87,7 @@ describe('Nymph REST Server and Client', () => {
90
87
  jane.subordinates = [];
91
88
  jane.title = 'Seniorer Person';
92
89
  await jane.$save();
93
- const steve = await testArtifacts_1.Employee.factory();
90
+ const steve = await Employee.factory();
94
91
  steve.$addTag('boss', 'bigcheese');
95
92
  steve.name = 'Steve Guy';
96
93
  steve.current = true;
@@ -102,22 +99,22 @@ describe('Nymph REST Server and Client', () => {
102
99
  if (jane.guid == null || steve.guid == null) {
103
100
  throw new Error('Entity is null.');
104
101
  }
105
- const checkSteve = await nymph.getEntity({ class: testArtifacts_1.Employee }, {
102
+ const checkSteve = await nymph.getEntity({ class: Employee }, {
106
103
  type: '&',
107
104
  ref: ['subordinates', jane],
108
105
  });
109
106
  expect(checkSteve?.guid).toEqual(steve.guid);
110
- const checkSteveQref = await nymph.getEntity({ class: testArtifacts_1.Employee }, {
107
+ const checkSteveQref = await nymph.getEntity({ class: Employee }, {
111
108
  type: '&',
112
109
  qref: [
113
110
  'subordinates',
114
- [{ class: testArtifacts_1.Employee }, { type: '&', guid: jane.guid }],
111
+ [{ class: Employee }, { type: '&', guid: jane.guid }],
115
112
  ],
116
113
  });
117
114
  expect(checkSteveQref?.guid).toEqual(steve.guid);
118
115
  });
119
116
  it('add, check, and remove tags', async () => {
120
- const entity = await client_1.Entity.factory();
117
+ const entity = await Entity.factory();
121
118
  entity.$addTag('test');
122
119
  expect(entity.$hasTag('test')).toEqual(true);
123
120
  entity.$addTag('test', 'test2');
@@ -137,13 +134,13 @@ describe('Nymph REST Server and Client', () => {
137
134
  if (jane.guid == null) {
138
135
  throw new Error('Entity is null.');
139
136
  }
140
- const entity = testArtifacts_1.Employee.factoryReference([
137
+ const entity = Employee.factoryReference([
141
138
  'nymph_entity_reference',
142
139
  jane.guid,
143
140
  'Employee',
144
141
  ]);
145
- await entity.$ready();
146
- expect(jane?.name).toEqual('Jane Doe');
142
+ await entity.$wake();
143
+ expect(entity?.name).toEqual('Jane Doe');
147
144
  });
148
145
  it('change an entity', async () => {
149
146
  const employee = await createJane();
@@ -154,7 +151,7 @@ describe('Nymph REST Server and Client', () => {
154
151
  employee.current = false;
155
152
  employee.endDate = Date.now() + 1;
156
153
  await employee.$save();
157
- const check = await testArtifacts_1.Employee.factory(employee.guid);
154
+ const check = await Employee.factory(employee.guid);
158
155
  expect(check.salary).toBeUndefined();
159
156
  expect(check.current).toEqual(false);
160
157
  expect(check.endDate).toBeGreaterThan(check.startDate ?? 0);
@@ -168,7 +165,7 @@ describe('Nymph REST Server and Client', () => {
168
165
  employee.current = false;
169
166
  employee.endDate = Date.now() + 1;
170
167
  await employee.$patch();
171
- const check = await testArtifacts_1.Employee.factory(employee.guid);
168
+ const check = await Employee.factory(employee.guid);
172
169
  expect(check.salary).toBeUndefined();
173
170
  expect(check.current).toEqual(false);
174
171
  expect(check.endDate).toBeGreaterThan(check.startDate ?? 0);
@@ -176,7 +173,7 @@ describe('Nymph REST Server and Client', () => {
176
173
  it('get an entity', async () => {
177
174
  await createJane();
178
175
  const jane = await nymph.getEntity({
179
- class: testArtifacts_1.Employee,
176
+ class: Employee,
180
177
  }, {
181
178
  type: '&',
182
179
  equal: ['name', 'Jane Doe'],
@@ -184,12 +181,41 @@ describe('Nymph REST Server and Client', () => {
184
181
  expect(jane).not.toBeNull();
185
182
  expect(jane?.guid).not.toBeNull();
186
183
  });
184
+ it('try to get a non-existent entity', async () => {
185
+ let error = { status: 200 };
186
+ try {
187
+ await nymph.getEntity({
188
+ class: Employee,
189
+ }, {
190
+ type: '&',
191
+ equal: ['name', 'Non Existent'],
192
+ });
193
+ }
194
+ catch (e) {
195
+ error = e;
196
+ }
197
+ expect(error.status).toEqual(404);
198
+ });
199
+ it('try to get a non-existent entity without error', async () => {
200
+ const nymph = new Nymph({
201
+ restUrl: REST_URL,
202
+ returnNullOnNotFound: true,
203
+ });
204
+ const Employee = nymph.addEntityClass(EmployeeClass);
205
+ const nonexistent = await nymph.getEntity({
206
+ class: Employee,
207
+ }, {
208
+ type: '&',
209
+ equal: ['name', 'Non Existent'],
210
+ });
211
+ expect(nonexistent).toBeNull();
212
+ });
187
213
  it('get entities', async () => {
188
214
  for (let i = 0; i < 4; i++) {
189
215
  await createJane();
190
216
  }
191
217
  const entities = await nymph.getEntities({
192
- class: testArtifacts_1.Employee,
218
+ class: Employee,
193
219
  limit: 4,
194
220
  }, {
195
221
  type: '&',
@@ -204,29 +230,34 @@ describe('Nymph REST Server and Client', () => {
204
230
  for (let i = 0; i < 20; i++) {
205
231
  await createJane();
206
232
  }
207
- const result = await nymph.getEntities({ class: testArtifacts_1.Employee });
233
+ const result = await nymph.getEntities({ class: Employee });
234
+ // Testing count return...
208
235
  const resultCount = await nymph.getEntities({
209
- class: testArtifacts_1.Employee,
236
+ class: Employee,
210
237
  return: 'count',
211
238
  });
212
239
  expect(resultCount).toBeGreaterThanOrEqual(1);
213
240
  expect(resultCount).toEqual(result.length);
214
- const resultSelectors = await nymph.getEntities({ class: testArtifacts_1.Employee }, { type: '&', equal: ['name', 'Jane Doe'] });
215
- const resultSelectorsCount = await nymph.getEntities({ class: testArtifacts_1.Employee, return: 'count' }, { type: '&', equal: ['name', 'Jane Doe'] });
241
+ const resultSelectors = await nymph.getEntities({ class: Employee }, { type: '&', equal: ['name', 'Jane Doe'] });
242
+ // Testing count return with selectors...
243
+ const resultSelectorsCount = await nymph.getEntities({ class: Employee, return: 'count' }, { type: '&', equal: ['name', 'Jane Doe'] });
216
244
  expect(resultSelectorsCount).toBeGreaterThanOrEqual(1);
217
245
  expect(resultSelectorsCount).toEqual(resultSelectors.length);
246
+ // Testing count return with limit...
218
247
  const resultSelectorsLimit = await nymph.getEntities({
219
- class: testArtifacts_1.Employee,
248
+ class: Employee,
220
249
  limit: 1,
221
250
  return: 'count',
222
251
  });
223
252
  expect(resultSelectorsLimit).toEqual(1);
253
+ // Testing count return with limit...
224
254
  const resultSelectorsSingle = await nymph.getEntity({
225
- class: testArtifacts_1.Employee,
255
+ class: Employee,
226
256
  return: 'count',
227
257
  });
228
258
  expect(resultSelectorsSingle).toEqual(1);
229
- const resultSelectorsEmpty = await nymph.getEntities({ class: testArtifacts_1.Employee, return: 'count' }, { type: '&', tag: 'pickle' });
259
+ // Testing empty count...
260
+ const resultSelectorsEmpty = await nymph.getEntities({ class: Employee, return: 'count' }, { type: '&', tag: 'pickle' });
230
261
  expect(resultSelectorsEmpty).toEqual(0);
231
262
  });
232
263
  it('get entity GUIDs', async () => {
@@ -234,7 +265,7 @@ describe('Nymph REST Server and Client', () => {
234
265
  await createJane();
235
266
  }
236
267
  const entities = await nymph.getEntities({
237
- class: testArtifacts_1.Employee,
268
+ class: Employee,
238
269
  limit: 4,
239
270
  return: 'guid',
240
271
  }, {
@@ -251,7 +282,7 @@ describe('Nymph REST Server and Client', () => {
251
282
  await createJane();
252
283
  }
253
284
  const entities = await nymph.getEntities({
254
- class: testArtifacts_1.Employee,
285
+ class: Employee,
255
286
  limit: 4,
256
287
  }, {
257
288
  type: '&',
@@ -270,7 +301,7 @@ describe('Nymph REST Server and Client', () => {
270
301
  await createJane();
271
302
  }
272
303
  const entities = await nymph.getEntities({
273
- class: testArtifacts_1.Employee,
304
+ class: Employee,
274
305
  limit: 4,
275
306
  }, {
276
307
  type: '&',
@@ -290,7 +321,7 @@ describe('Nymph REST Server and Client', () => {
290
321
  await createJane();
291
322
  }
292
323
  const entities = await nymph.getEntities({
293
- class: testArtifacts_1.Employee,
324
+ class: Employee,
294
325
  limit: 4,
295
326
  }, {
296
327
  type: '&',
@@ -322,7 +353,7 @@ describe('Nymph REST Server and Client', () => {
322
353
  }
323
354
  const deleted = await jane.$delete();
324
355
  expect(deleted).toEqual(true);
325
- const check = await nymph.getEntities({ class: testArtifacts_1.Employee }, {
356
+ const check = await nymph.getEntities({ class: Employee }, {
326
357
  type: '&',
327
358
  guid,
328
359
  });
@@ -338,14 +369,14 @@ describe('Nymph REST Server and Client', () => {
338
369
  });
339
370
  const deleted = await nymph.deleteEntities(janes);
340
371
  expect(deleted).toEqual(guids);
341
- const check = await nymph.getEntities({ class: testArtifacts_1.Employee }, {
372
+ const check = await nymph.getEntities({ class: Employee }, {
342
373
  type: '|',
343
374
  guid: guids,
344
375
  });
345
376
  expect(check.length).toEqual(0);
346
377
  });
347
378
  it('try to save Entity class directly', async () => {
348
- const entity = new client_1.Entity();
379
+ const entity = new Entity();
349
380
  entity.$nymph = nymph;
350
381
  entity.something = 'Anything';
351
382
  let error = { message: '' };
@@ -360,7 +391,7 @@ describe('Nymph REST Server and Client', () => {
360
391
  it('handle forbidden method', async () => {
361
392
  let error = { status: 200 };
362
393
  try {
363
- await testArtifacts_1.Employee.inaccessibleMethod();
394
+ await Employee.inaccessibleMethod();
364
395
  }
365
396
  catch (e) {
366
397
  error = e;
@@ -368,30 +399,91 @@ describe('Nymph REST Server and Client', () => {
368
399
  expect(error.status).toEqual(403);
369
400
  });
370
401
  it('handle server side static error', async () => {
371
- let error = { error: { name: '' } };
402
+ let error = { status: 0, error: { name: '' } };
372
403
  try {
373
- await testArtifacts_1.Employee.throwErrorStatic();
404
+ await Employee.throwErrorStatic();
374
405
  }
375
406
  catch (e) {
376
407
  error = e;
377
408
  }
409
+ expect(error.status).toEqual(500);
410
+ expect(error.error.name).toEqual('BadFunctionCallError');
411
+ });
412
+ it('handle server side static iterator error', async () => {
413
+ let error = { status: 0, error: { name: '' } };
414
+ const data = await Employee.throwErrorStaticIterable();
415
+ let count = 0;
416
+ for await (let value of data) {
417
+ count++;
418
+ if (value instanceof Error) {
419
+ error = value;
420
+ }
421
+ else {
422
+ expect(value).toEqual(count);
423
+ }
424
+ }
425
+ expect(count).toEqual(2);
426
+ expect(error.status).toEqual(500);
378
427
  expect(error.error.name).toEqual('BadFunctionCallError');
379
428
  });
380
429
  it('handle server side error', async () => {
381
430
  const jane = await createJane();
382
- let error = { error: { name: '' } };
431
+ let error = { status: 0, error: { name: '' } };
383
432
  try {
384
433
  await jane.$throwError();
385
434
  }
386
435
  catch (e) {
387
436
  error = e;
388
437
  }
438
+ expect(error.status).toEqual(500);
389
439
  expect(error.error.name).toEqual('BadFunctionCallError');
390
440
  });
441
+ it('handle server side HTTP error', async () => {
442
+ const jane = await createJane();
443
+ let error = { status: 0, statusText: '', message: '' };
444
+ try {
445
+ await jane.$throwHttpError();
446
+ }
447
+ catch (e) {
448
+ error = e;
449
+ }
450
+ expect(error.status).toEqual(501);
451
+ expect(error.statusText).toEqual('Not Implemented');
452
+ expect(error.message).toEqual('A 501 HTTP error.');
453
+ });
454
+ it('handle server side custom HTTP error', async () => {
455
+ const jane = await createJane();
456
+ let error = { status: 0, statusText: '', message: '' };
457
+ try {
458
+ await jane.$throwHttpErrorWithDescription();
459
+ }
460
+ catch (e) {
461
+ error = e;
462
+ }
463
+ expect(error.status).toEqual(512);
464
+ expect(error.statusText).toEqual('Some Error');
465
+ expect(error.message).toEqual('A 512 HTTP error.');
466
+ });
391
467
  it('call a server side static method', async () => {
392
- const data = await testArtifacts_1.Employee.testStatic(5);
468
+ const data = await Employee.testStatic(5);
393
469
  expect(data).toEqual(10);
394
470
  });
471
+ it('call a server side static iterator method', async () => {
472
+ const data = await Employee.testStaticIterable(5);
473
+ let count = 0;
474
+ for await (let value of data) {
475
+ count++;
476
+ expect(value).toEqual(5 + count);
477
+ }
478
+ expect(count).toEqual(3);
479
+ });
480
+ it('aborts a server side static iterator method', async () => {
481
+ const data = await Employee.testStaticIterableAbort();
482
+ data.abortController.abort();
483
+ // Wait 1 second to ensure server receives abort signal.
484
+ await new Promise((resolve) => setTimeout(resolve, 1000));
485
+ expect(true).toBeTruthy();
486
+ });
395
487
  it('call a stateless server side method', async () => {
396
488
  const jane = await createJane();
397
489
  const data = await jane?.$testMethodStateless(5);
@@ -411,7 +503,7 @@ describe('Nymph REST Server and Client', () => {
411
503
  throw new Error('Entity is null.');
412
504
  }
413
505
  const jane2 = await nymph.getEntity({
414
- class: testArtifacts_1.Employee,
506
+ class: Employee,
415
507
  }, jane1.guid);
416
508
  if (jane1 == null || jane2 == null) {
417
509
  throw new Error('Entity is null.');
@@ -428,7 +520,7 @@ describe('Nymph REST Server and Client', () => {
428
520
  throw new Error('Entity is null.');
429
521
  }
430
522
  const second = await nymph.getEntity({
431
- class: testArtifacts_1.Employee,
523
+ class: Employee,
432
524
  }, first.guid);
433
525
  if (second == null || second.guid == null) {
434
526
  throw new Error('Entity is null.');
@@ -448,7 +540,7 @@ describe('Nymph REST Server and Client', () => {
448
540
  throw new Error('Entity is null.');
449
541
  }
450
542
  const second = await nymph.getEntity({
451
- class: testArtifacts_1.Employee,
543
+ class: Employee,
452
544
  }, first.guid);
453
545
  if (second == null || second.guid == null) {
454
546
  throw new Error('Entity is null.');
@@ -459,7 +551,7 @@ describe('Nymph REST Server and Client', () => {
459
551
  expect(first.$is(second)).toEqual(true);
460
552
  await createJane();
461
553
  const third = await nymph.getEntity({
462
- class: testArtifacts_1.Employee,
554
+ class: Employee,
463
555
  }, {
464
556
  type: '&',
465
557
  '!guid': first.guid,
@@ -469,6 +561,56 @@ describe('Nymph REST Server and Client', () => {
469
561
  }
470
562
  expect(first.$is(third)).toEqual(false);
471
563
  });
564
+ it("doesn't allow creation of a restricted entity class", async () => {
565
+ const attempt = await Restricted.factory();
566
+ attempt.name = 'Jane Doe';
567
+ let error = null;
568
+ try {
569
+ await attempt.$save();
570
+ }
571
+ catch (e) {
572
+ error = e;
573
+ }
574
+ expect(error).toBeInstanceOf(HttpError);
575
+ expect(error.status).toEqual(403);
576
+ });
577
+ it("doesn't allow search of a restricted entity class", async () => {
578
+ let error = null;
579
+ try {
580
+ await nymph.getEntity({
581
+ class: Restricted,
582
+ });
583
+ }
584
+ catch (e) {
585
+ error = e;
586
+ }
587
+ expect(error).toBeInstanceOf(HttpError);
588
+ expect(error.status).toEqual(403);
589
+ });
590
+ it("doesn't allow methods of a restricted entity class", async () => {
591
+ const attempt = await Restricted.factory();
592
+ attempt.name = 'Jane Doe';
593
+ let error = null;
594
+ try {
595
+ await attempt.$testMethod(1);
596
+ }
597
+ catch (e) {
598
+ error = e;
599
+ }
600
+ expect(error).toBeInstanceOf(HttpError);
601
+ expect(error.status).toEqual(403);
602
+ });
603
+ it("doesn't allow static methods of a restricted entity class", async () => {
604
+ let error = null;
605
+ try {
606
+ await Restricted.testStatic(1);
607
+ }
608
+ catch (e) {
609
+ error = e;
610
+ }
611
+ expect(error).toBeInstanceOf(HttpError);
612
+ expect(error.status).toEqual(403);
613
+ });
472
614
  it('get a new UID', async () => {
473
615
  const uidValue = await nymph.newUID('employee');
474
616
  expect(typeof uidValue).toEqual('number');
@@ -510,7 +652,7 @@ describe('Nymph REST Server and Client', () => {
510
652
  expect(error.status).toEqual(404);
511
653
  });
512
654
  afterAll(() => {
513
- server.close();
655
+ server.close(); // avoid jest open handle error
514
656
  });
515
657
  });
516
658
  //# sourceMappingURL=index.test.js.map