@nymphjs/server 1.0.0-beta.9 → 1.0.0-beta.90

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.
@@ -1,55 +1,60 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Employee = exports.BadFunctionCallError = exports.EmployeeModel = void 0;
4
- const nymph_1 = require("@nymphjs/nymph");
5
- const client_1 = require("@nymphjs/client");
1
+ import { Entity as EntityServer, EntityInvalidDataError } from '@nymphjs/nymph';
2
+ import { Entity } from '@nymphjs/client';
3
+ import { HttpError } from './HttpError.js';
6
4
  const IS_MANAGER = true;
7
- class EmployeeModel extends nymph_1.Entity {
8
- static async factory(guid) {
9
- return (await super.factory(guid));
10
- }
11
- static factorySync(guid) {
12
- return super.factorySync(guid);
13
- }
14
- constructor(guid) {
15
- super(guid);
16
- this.$clientEnabledMethods = [
17
- '$testMethodStateless',
18
- '$testMethod',
19
- '$throwError',
20
- ];
21
- this.$protectedTags = ['employee'];
22
- this.$allowlistTags = ['boss', 'bigcheese'];
23
- this.$allowlistData = [
24
- 'name',
25
- 'id',
26
- 'title',
27
- 'department',
28
- 'subordinates',
29
- 'salary',
30
- 'current',
31
- 'startDate',
32
- 'endDate',
33
- 'phone',
34
- 'manager',
35
- 'building',
36
- ];
37
- if (this.guid == null) {
38
- this.$addTag('employee');
39
- this.$data.current = true;
40
- this.$data.startDate = Date.now();
41
- this.$data.subordinates = [];
42
- if (!IS_MANAGER) {
43
- this.$privateData.push('salary');
44
- }
5
+ /**
6
+ * This class is a test class that extends the Entity class.
7
+ */
8
+ export class EmployeeModel extends EntityServer {
9
+ static ETYPE = 'employee';
10
+ static class = 'Employee';
11
+ $clientEnabledMethods = [
12
+ '$testMethodStateless',
13
+ '$testMethod',
14
+ '$throwError',
15
+ '$throwHttpError',
16
+ '$throwHttpErrorWithDescription',
17
+ ];
18
+ static clientEnabledStaticMethods = [
19
+ 'testStatic',
20
+ 'testStaticIterable',
21
+ 'testStaticIterableAbort',
22
+ 'throwErrorStatic',
23
+ 'throwErrorStaticIterable',
24
+ ];
25
+ $protectedTags = ['employee'];
26
+ $allowlistTags = ['boss', 'bigcheese'];
27
+ $allowlistData = [
28
+ 'name',
29
+ 'id',
30
+ 'title',
31
+ 'department',
32
+ 'subordinates',
33
+ 'salary',
34
+ 'current',
35
+ 'startDate',
36
+ 'endDate',
37
+ 'phone',
38
+ 'manager',
39
+ 'building',
40
+ ];
41
+ constructor() {
42
+ super();
43
+ this.$addTag('employee');
44
+ this.$data.current = true;
45
+ this.$data.startDate = Date.now();
46
+ this.$data.subordinates = [];
47
+ if (!IS_MANAGER) {
48
+ this.$privateData.push('salary');
45
49
  }
46
50
  }
47
51
  async $save() {
48
- const error = new nymph_1.EntityInvalidDataError('Invalid entity data.');
49
- if (this.$data.name == null || this.$data.name == '') {
52
+ // Validate employee data.
53
+ const error = new EntityInvalidDataError('Invalid entity data.');
54
+ if (this.$data.name == null || this.$data.name === '') {
50
55
  error.addField('name');
51
56
  }
52
- if (this.$data.title == null || this.$data.title == '') {
57
+ if (this.$data.title == null || this.$data.title === '') {
53
58
  error.addField('title');
54
59
  }
55
60
  if (this.$data.startDate == null) {
@@ -58,6 +63,7 @@ class EmployeeModel extends nymph_1.Entity {
58
63
  if (error.getFields().length) {
59
64
  throw error;
60
65
  }
66
+ // Generate employee ID.
61
67
  if (this.$data.id == null) {
62
68
  this.$data.id = (await this.$nymph.newUID('employee')) ?? undefined;
63
69
  }
@@ -74,41 +80,51 @@ class EmployeeModel extends nymph_1.Entity {
74
80
  static testStatic(value) {
75
81
  return value * 2;
76
82
  }
83
+ static *testStaticIterable(value) {
84
+ yield value + 1;
85
+ yield value + 2;
86
+ yield value + 3;
87
+ }
88
+ static *testStaticIterableAbort() {
89
+ let aborted = yield 1;
90
+ if (!aborted) {
91
+ throw new Error("testStaticIterableAbort wasn't aborted after the first iteration.");
92
+ }
93
+ }
77
94
  static throwErrorStatic() {
78
95
  throw new BadFunctionCallError('This function only throws errors.');
79
96
  }
97
+ static *throwErrorStaticIterable() {
98
+ yield 1;
99
+ throw new BadFunctionCallError('This function throws errors after the first iteration.');
100
+ }
80
101
  $throwError() {
81
102
  throw new BadFunctionCallError('This function only throws errors.');
82
103
  }
104
+ $throwHttpError() {
105
+ throw new HttpError('A 501 HTTP error.', 501);
106
+ }
107
+ $throwHttpErrorWithDescription() {
108
+ throw new HttpError('A 512 HTTP error.', 512, 'Some Error');
109
+ }
83
110
  static inaccessibleMethod() {
84
111
  return true;
85
112
  }
86
113
  }
87
- exports.EmployeeModel = EmployeeModel;
88
- EmployeeModel.ETYPE = 'employee';
89
- EmployeeModel.class = 'Employee';
90
- EmployeeModel.clientEnabledStaticMethods = ['testStatic', 'throwErrorStatic'];
91
- class BadFunctionCallError extends Error {
114
+ export class BadFunctionCallError extends Error {
92
115
  constructor(message) {
93
116
  super(message);
94
117
  this.name = 'BadFunctionCallError';
95
118
  }
96
119
  }
97
- exports.BadFunctionCallError = BadFunctionCallError;
98
- class Employee extends client_1.Entity {
99
- constructor(guid) {
100
- super(guid);
101
- if (guid == null) {
102
- this.$addTag('employee');
103
- this.$data.current = true;
104
- this.$data.subordinates = [];
105
- }
106
- }
107
- static async factory(guid) {
108
- return (await super.factory(guid));
109
- }
110
- static factorySync(guid) {
111
- return super.factorySync(guid);
120
+ export class Employee extends Entity {
121
+ // The name of the server class
122
+ static class = 'Employee';
123
+ constructor() {
124
+ super();
125
+ this.$addTag('employee');
126
+ this.$data.current = true;
127
+ this.$data.subordinates = [];
112
128
  }
113
129
  $testMethod(value) {
114
130
  return this.$serverCall('$testMethod', [value]);
@@ -119,17 +135,103 @@ class Employee extends client_1.Entity {
119
135
  $throwError() {
120
136
  return this.$serverCall('$throwError', []);
121
137
  }
138
+ $throwHttpError() {
139
+ return this.$serverCall('$throwHttpError', []);
140
+ }
141
+ $throwHttpErrorWithDescription() {
142
+ return this.$serverCall('$throwHttpErrorWithDescription', []);
143
+ }
122
144
  static testStatic(value) {
123
145
  return this.serverCallStatic('testStatic', [value]);
124
146
  }
147
+ static testStaticIterable(value) {
148
+ return this.serverCallStaticIterator('testStaticIterable', [value]);
149
+ }
150
+ static testStaticIterableAbort() {
151
+ return this.serverCallStaticIterator('testStaticIterableAbort', []);
152
+ }
125
153
  static throwErrorStatic() {
126
154
  return this.serverCallStatic('throwErrorStatic', []);
127
155
  }
156
+ static throwErrorStaticIterable() {
157
+ return this.serverCallStaticIterator('throwErrorStaticIterable', []);
158
+ }
128
159
  static inaccessibleMethod() {
129
160
  return this.serverCallStatic('inaccessibleMethod', []);
130
161
  }
131
162
  }
132
- exports.Employee = Employee;
133
- Employee.class = 'Employee';
134
- exports.default = Employee;
163
+ /**
164
+ * This class is a test class that extends the Entity class.
165
+ */
166
+ export class RestrictedModel extends EntityServer {
167
+ static ETYPE = 'restricted';
168
+ static class = 'Restricted';
169
+ static restEnabled = false;
170
+ constructor() {
171
+ super();
172
+ this.$data.name = '';
173
+ }
174
+ async $save() {
175
+ // Validate entity data.
176
+ const error = new EntityInvalidDataError('Invalid entity data.');
177
+ if (this.$data.name == null || this.$data.name === '') {
178
+ error.addField('name');
179
+ }
180
+ if (error.getFields().length) {
181
+ throw error;
182
+ }
183
+ return await super.$save();
184
+ }
185
+ $testMethod(value) {
186
+ return value;
187
+ }
188
+ static testStatic(value) {
189
+ return value;
190
+ }
191
+ }
192
+ export class Restricted extends Entity {
193
+ // The name of the server class
194
+ static class = 'Restricted';
195
+ constructor() {
196
+ super();
197
+ this.$data.name = '';
198
+ }
199
+ $testMethod(value) {
200
+ return this.$serverCall('$testMethod', [value]);
201
+ }
202
+ static testStatic(value) {
203
+ return this.serverCallStatic('testStatic', [value]);
204
+ }
205
+ }
206
+ /**
207
+ * This class is a test class that extends the Entity class.
208
+ */
209
+ export class PubSubDisabledModel extends EntityServer {
210
+ static ETYPE = 'pubsub_disabled';
211
+ static class = 'PubSubDisabled';
212
+ static pubSubEnabled = false;
213
+ constructor() {
214
+ super();
215
+ this.$data.name = '';
216
+ }
217
+ async $save() {
218
+ // Validate entity data.
219
+ const error = new EntityInvalidDataError('Invalid entity data.');
220
+ if (this.$data.name == null || this.$data.name === '') {
221
+ error.addField('name');
222
+ }
223
+ if (error.getFields().length) {
224
+ throw error;
225
+ }
226
+ return await super.$save();
227
+ }
228
+ }
229
+ export class PubSubDisabled extends Entity {
230
+ // The name of the server class
231
+ static class = 'PubSubDisabled';
232
+ constructor() {
233
+ super();
234
+ this.$data.name = '';
235
+ }
236
+ }
135
237
  //# sourceMappingURL=testArtifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testArtifacts.js","sourceRoot":"","sources":["../src/testArtifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testArtifacts.js","sourceRoot":"","sources":["../src/testArtifacts.ts"],"names":[],"mappings":"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"}
package/jest.config.js CHANGED
@@ -1,6 +1,15 @@
1
+ import { createDefaultEsmPreset } from 'ts-jest';
2
+
3
+ const presetConfig = createDefaultEsmPreset();
4
+
1
5
  /** @type {import('ts-jest').JestConfigWithTsJest} */
2
- module.exports = {
3
- preset: 'ts-jest',
6
+ const jestConfig = {
7
+ ...presetConfig,
4
8
  testEnvironment: 'node',
5
9
  rootDir: 'src/',
10
+ moduleNameMapper: {
11
+ '^(\\.|\\.\\.)\\/(.+)\\.js': '$1/$2',
12
+ },
6
13
  };
14
+
15
+ export default jestConfig;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nymphjs/server",
3
- "version": "1.0.0-beta.9",
4
- "description": "NymphJS - REST Server",
5
- "type": "commonjs",
3
+ "version": "1.0.0-beta.90",
4
+ "description": "Nymph.js - REST Server",
5
+ "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "keywords": [
@@ -14,9 +14,9 @@
14
14
  "clean": "test -d dist && rm -r dist || true",
15
15
  "build": "tsc",
16
16
  "watch": "tsc --watch",
17
- "prepare": "npm run clean && npm run build",
18
- "test": "jest",
19
- "test:watch": "jest --watch"
17
+ "prepublish": "npm run clean && npm run build",
18
+ "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest",
19
+ "test:watch": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest --watch"
20
20
  },
21
21
  "publishConfig": {
22
22
  "access": "public"
@@ -31,21 +31,21 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@nymphjs/nymph": "^1.0.0-beta.9",
35
- "cookie-parser": "^1.4.6",
36
- "express": "^4.18.2"
34
+ "@nymphjs/nymph": "^1.0.0-beta.90",
35
+ "cookie-parser": "^1.4.7",
36
+ "express": "^4.21.2"
37
37
  },
38
38
  "devDependencies": {
39
- "@nymphjs/client": "^1.0.0-beta.9",
40
- "@nymphjs/client-node": "^1.0.0-beta.9",
41
- "@nymphjs/driver-sqlite3": "^1.0.0-beta.9",
42
- "@tsconfig/recommended": "^1.0.1",
43
- "@types/cookie-parser": "^1.4.3",
44
- "@types/express": "^4.17.15",
45
- "@types/jest": "^29.2.5",
46
- "jest": "^29.3.1",
47
- "ts-jest": "^29.0.3",
48
- "typescript": "^4.9.4"
39
+ "@nymphjs/client": "^1.0.0-beta.90",
40
+ "@nymphjs/driver-sqlite3": "^1.0.0-beta.90",
41
+ "@tsconfig/recommended": "^1.0.8",
42
+ "@types/cookie-parser": "^1.4.8",
43
+ "@types/express": "^5.0.0",
44
+ "@types/jest": "^29.5.14",
45
+ "jest": "^29.7.0",
46
+ "ts-jest": "^29.2.5",
47
+ "ts-node": "^10.9.2",
48
+ "typescript": "^5.7.2"
49
49
  },
50
- "gitHead": "dd7ad255610e1028dc232c818b1af0b627847764"
50
+ "gitHead": "334f610ea98e67320dce40688adf0e8503b9b7a4"
51
51
  }
@@ -0,0 +1,12 @@
1
+ export class HttpError extends Error {
2
+ status?: number;
3
+ statusText?: string;
4
+
5
+ constructor(message: string, status?: number, statusText?: string) {
6
+ super(message);
7
+
8
+ this.name = 'HttpError';
9
+ this.status = status;
10
+ this.statusText = statusText;
11
+ }
12
+ }
package/src/cache.test.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import express from 'express';
2
2
  import SQLite3Driver from '@nymphjs/driver-sqlite3';
3
3
  import { Nymph as NymphServer } from '@nymphjs/nymph';
4
- import { Nymph } from '@nymphjs/client-node';
4
+ import { Nymph } from '@nymphjs/client';
5
5
 
6
- import createServer from './index';
6
+ import createServer from './index.js';
7
7
  import {
8
8
  EmployeeModel as EmployeeModelClass,
9
9
  Employee as EmployeeClass,
10
- } from './testArtifacts';
10
+ } from './testArtifacts.js';
11
11
 
12
12
  const sqliteConfig = {
13
13
  filename: ':memory:',
@@ -48,7 +48,7 @@ describe('Nymph REST Server and Client with Client Weak Ref Cache', () => {
48
48
  // @ts-ignore TS doesn't know about WeakRef.
49
49
  if (typeof WeakRef === 'undefined') {
50
50
  throw new Error(
51
- 'You must run this test in an environment that includes WeakRef.'
51
+ 'You must run this test in an environment that includes WeakRef.',
52
52
  );
53
53
  }
54
54
 
@@ -61,7 +61,7 @@ describe('Nymph REST Server and Client with Client Weak Ref Cache', () => {
61
61
  const checkA = await Employee.factory(employee.guid);
62
62
  const checkB = await nymph.getEntity(
63
63
  { class: Employee },
64
- { type: '&', guid: employee.guid }
64
+ { type: '&', guid: employee.guid },
65
65
  );
66
66
 
67
67
  if (!checkB) {