remult 0.14.31 → 0.14.34
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 → README.md} +0 -0
- package/esm/graphql.d.ts +2 -2
- package/esm/remult-express.d.ts +3 -8
- package/esm/remult-express.js +3 -2
- package/esm/remult-fastify.js +5 -10
- package/esm/remult-fresh.d.ts +1 -6
- package/esm/remult-fresh.js +29 -37
- package/esm/server/JsonEntityFileStorage.d.ts +4 -1
- package/esm/server/JsonEntityFileStorage.js +4 -0
- package/esm/server/expressBridge.d.ts +13 -61
- package/esm/server/expressBridge.js +255 -142
- package/esm/server/index.d.ts +2 -4
- package/esm/server/index.js +2 -4
- package/esm/src/backend-tests/test-http-server.backend-spec.js +31 -2
- package/graphql.d.ts +2 -2
- package/package.json +4 -4
- package/remult-express.d.ts +3 -8
- package/remult-express.js +3 -2
- package/remult-fastify.js +5 -10
- package/remult-fresh.d.ts +1 -6
- package/remult-fresh.js +16 -22
- package/server/JsonEntityFileStorage.d.ts +4 -1
- package/server/JsonEntityFileStorage.js +11 -1
- package/server/expressBridge.d.ts +13 -61
- package/server/expressBridge.js +371 -231
- package/server/index.d.ts +2 -4
- package/server/index.js +4 -7
- package/src/backend-tests/test-http-server.backend-spec.js +41 -2
- package/esm/remult-middleware.d.ts +0 -10
- package/esm/remult-middleware.js +0 -117
- package/esm/server/register-actions-on-server.d.ts +0 -3
- package/esm/server/register-actions-on-server.js +0 -24
- package/esm/server/register-entities-on-server.d.ts +0 -3
- package/esm/server/register-entities-on-server.js +0 -15
- package/esm/valueConverters.d.ts +0 -12
- package/esm/valueConverters.js +0 -169
- package/postgres/postgresColumnSyntax.d.ts +0 -2
- package/postgres/postgresColumnSyntax.js +0 -34
- package/remult-middleware.d.ts +0 -10
- package/remult-middleware.js +0 -131
- package/server/register-actions-on-server.d.ts +0 -3
- package/server/register-actions-on-server.js +0 -50
- package/server/register-entities-on-server.d.ts +0 -3
- package/server/register-entities-on-server.js +0 -19
- package/valueConverters.d.ts +0 -12
- package/valueConverters.js +0 -168
package/{readme.md → README.md}
RENAMED
|
File without changes
|
package/esm/graphql.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function remultGraphql(api:
|
|
1
|
+
import { RemultServer } from "./server/expressBridge";
|
|
2
|
+
export declare function remultGraphql(api: RemultServer): {
|
|
3
3
|
rootValue: {};
|
|
4
4
|
schema: string;
|
|
5
5
|
};
|
package/esm/remult-express.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as express from 'express';
|
|
2
|
+
import { RemultServer, RemultServerOptions } from './server/expressBridge';
|
|
2
3
|
export declare function remultExpress(options?: RemultServerOptions & {
|
|
3
4
|
bodyParser?: boolean;
|
|
4
5
|
bodySizeLimit?: string;
|
|
5
|
-
}):
|
|
6
|
-
getRemult: (req: any) => Promise<import(".").Remult>;
|
|
7
|
-
openApiDoc: (options: {
|
|
8
|
-
title: string;
|
|
9
|
-
}) => any;
|
|
10
|
-
addArea: (x: any) => void;
|
|
11
|
-
};
|
|
6
|
+
}): express.RequestHandler & RemultServer;
|
package/esm/remult-express.js
CHANGED
|
@@ -12,10 +12,11 @@ export function remultExpress(options) {
|
|
|
12
12
|
app.use(express.json({ limit: options.bodySizeLimit }));
|
|
13
13
|
app.use(express.urlencoded({ extended: true, limit: options.bodySizeLimit }));
|
|
14
14
|
}
|
|
15
|
-
const server = buildRemultServer(
|
|
15
|
+
const server = buildRemultServer(options);
|
|
16
|
+
server.registerRouter(app);
|
|
16
17
|
return Object.assign(app, {
|
|
17
18
|
getRemult: (req) => server.getRemult(req),
|
|
18
19
|
openApiDoc: (options) => server.openApiDoc(options),
|
|
19
|
-
|
|
20
|
+
registerRouter: x => server.registerRouter(x)
|
|
20
21
|
});
|
|
21
22
|
}
|
package/esm/remult-fastify.js
CHANGED
|
@@ -18,7 +18,7 @@ export function remultFastify(options) {
|
|
|
18
18
|
};
|
|
19
19
|
return response;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
const api = buildRemultServer(options);
|
|
22
22
|
const pluginFunction = async (instance, op) => {
|
|
23
23
|
//@ts-ignore
|
|
24
24
|
let fastifyRouter = {
|
|
@@ -42,16 +42,11 @@ export function remultFastify(options) {
|
|
|
42
42
|
return r;
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
|
-
api
|
|
46
|
-
};
|
|
47
|
-
const getApi = () => {
|
|
48
|
-
if (!api)
|
|
49
|
-
throw "Please call fastify's register before using this method";
|
|
50
|
-
return api;
|
|
45
|
+
api.registerRouter(fastifyRouter);
|
|
51
46
|
};
|
|
52
47
|
return Object.assign(pluginFunction, {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
getRemult: x => api.getRemult(x),
|
|
49
|
+
openApiDoc: x => api.openApiDoc(x),
|
|
50
|
+
handle: (req, res) => api.handle(req, res)
|
|
56
51
|
});
|
|
57
52
|
}
|
package/esm/remult-fresh.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { RemultServerOptions, RemultServer } from "./server/expressBridge";
|
|
2
|
-
import { Remult } from "./src/context";
|
|
3
2
|
export declare function remultFresh(options: RemultServerOptions, response: FreshResponse): RemultFresh;
|
|
4
3
|
export interface RemultFresh extends RemultServer {
|
|
5
|
-
|
|
4
|
+
freshHandler(req: FreshRequest, ctx: FreshContext): Promise<any>;
|
|
6
5
|
}
|
|
7
6
|
export interface FreshRequest {
|
|
8
7
|
url: string;
|
|
@@ -11,12 +10,8 @@ export interface FreshRequest {
|
|
|
11
10
|
}
|
|
12
11
|
export interface FreshContext {
|
|
13
12
|
next: () => Promise<any>;
|
|
14
|
-
state: FreshRemultState;
|
|
15
13
|
}
|
|
16
14
|
export interface FreshResponse {
|
|
17
15
|
new (body?: any | undefined, init?: ResponseInit): any;
|
|
18
16
|
json(data: unknown, init?: ResponseInit): any;
|
|
19
17
|
}
|
|
20
|
-
export interface FreshRemultState {
|
|
21
|
-
remult: Remult;
|
|
22
|
-
}
|
package/esm/remult-fresh.js
CHANGED
|
@@ -1,43 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildRemultServer } from "./server/expressBridge";
|
|
2
2
|
export function remultFresh(options, response) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (res) {
|
|
24
|
-
if (res.statusCode)
|
|
25
|
-
init.status = res.statusCode;
|
|
26
|
-
if (res.data) {
|
|
27
|
-
console.log({ init, res });
|
|
28
|
-
return response.json(res.data, init);
|
|
29
|
-
}
|
|
30
|
-
else
|
|
31
|
-
return new response(undefined, init);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
const remult = await mw.getRemult(req);
|
|
35
|
-
ctx.state.remult = remult;
|
|
36
|
-
return ctx.next();
|
|
3
|
+
const server = buildRemultServer(options);
|
|
4
|
+
return Object.assign(server, {
|
|
5
|
+
freshHandler: async (req, ctx) => {
|
|
6
|
+
const theReq = {
|
|
7
|
+
method: req.method,
|
|
8
|
+
url: req.url,
|
|
9
|
+
body: undefined
|
|
10
|
+
};
|
|
11
|
+
switch (req.method.toLocaleLowerCase()) {
|
|
12
|
+
case "put":
|
|
13
|
+
case "post":
|
|
14
|
+
theReq.body = await req.json();
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
let init = {};
|
|
18
|
+
const res = await server.handle(theReq);
|
|
19
|
+
if (res) {
|
|
20
|
+
init.status = res.statusCode;
|
|
21
|
+
if (res.data) {
|
|
22
|
+
return response.json(res.data, init);
|
|
37
23
|
}
|
|
38
|
-
|
|
24
|
+
else
|
|
25
|
+
return new response(undefined, init);
|
|
39
26
|
}
|
|
27
|
+
else {
|
|
28
|
+
return ctx.next();
|
|
29
|
+
}
|
|
30
|
+
;
|
|
40
31
|
}
|
|
41
|
-
};
|
|
32
|
+
});
|
|
42
33
|
}
|
|
43
34
|
;
|
|
35
|
+
;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { JsonEntityStorage } from '../index';
|
|
1
|
+
import { JsonDataProvider, JsonEntityStorage } from '../index';
|
|
2
2
|
export declare class JsonEntityFileStorage implements JsonEntityStorage {
|
|
3
3
|
private folderPath;
|
|
4
4
|
getItem(entityDbName: string): string;
|
|
5
5
|
setItem(entityDbName: string, json: string): void;
|
|
6
6
|
constructor(folderPath: string);
|
|
7
7
|
}
|
|
8
|
+
export declare class JsonFileDataProvider extends JsonDataProvider {
|
|
9
|
+
constructor(folderPath: string);
|
|
10
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
|
+
import { JsonDataProvider } from '../index';
|
|
3
4
|
export class JsonEntityFileStorage {
|
|
4
5
|
constructor(folderPath) {
|
|
5
6
|
this.folderPath = folderPath;
|
|
@@ -18,3 +19,6 @@ export class JsonEntityFileStorage {
|
|
|
18
19
|
return fs.writeFileSync(path.join(this.folderPath, entityDbName) + '.json', json);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
22
|
+
export class JsonFileDataProvider extends JsonDataProvider {
|
|
23
|
+
constructor(folderPath) { super(new JsonEntityFileStorage(folderPath)); }
|
|
24
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { queuedJobInfoResponse } from '../src/server-action';
|
|
2
2
|
import { DataProvider } from '../src/data-interfaces';
|
|
3
|
-
import {
|
|
4
|
-
import { AllowedForInstance, Remult, UserInfo } from '../src/context';
|
|
3
|
+
import { Remult, UserInfo } from '../src/context';
|
|
5
4
|
import { ClassType } from '../classType';
|
|
6
5
|
import { Repository } from '../src/remult3';
|
|
7
6
|
import { IdEntity } from '../src/id-entity';
|
|
@@ -11,7 +10,6 @@ export declare type RemultServerOptions = {
|
|
|
11
10
|
* @see [Connecting to a Database](https://remult.dev/docs/databases.html).
|
|
12
11
|
*/
|
|
13
12
|
dataProvider?: DataProvider | Promise<DataProvider> | (() => Promise<DataProvider | undefined>);
|
|
14
|
-
disableAutoApi?: boolean;
|
|
15
13
|
queueStorage?: QueueStorage;
|
|
16
14
|
initRequest?: (remult: Remult, origReq: GenericRequest) => Promise<void>;
|
|
17
15
|
getUser?: (request: GenericRequest) => Promise<UserInfo>;
|
|
@@ -22,25 +20,28 @@ export declare type RemultServerOptions = {
|
|
|
22
20
|
controllers?: ClassType<any>[];
|
|
23
21
|
rootPath?: string;
|
|
24
22
|
};
|
|
25
|
-
export declare function buildRemultServer(
|
|
26
|
-
export declare type
|
|
27
|
-
export interface
|
|
23
|
+
export declare function buildRemultServer(options: RemultServerOptions): RemultServer;
|
|
24
|
+
export declare type GenericRequestHandler = (req: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
|
|
25
|
+
export interface ServerHandleResponse {
|
|
26
|
+
data?: any;
|
|
27
|
+
statusCode: number;
|
|
28
28
|
}
|
|
29
29
|
export interface RemultServer {
|
|
30
30
|
getRemult(req: GenericRequest): Promise<Remult>;
|
|
31
31
|
openApiDoc(options: {
|
|
32
32
|
title: string;
|
|
33
33
|
}): any;
|
|
34
|
-
|
|
34
|
+
registerRouter(r: GenericRouter): void;
|
|
35
|
+
handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse | undefined>;
|
|
35
36
|
}
|
|
36
37
|
export declare type GenericRouter = {
|
|
37
38
|
route(path: string): SpecificRoute;
|
|
38
39
|
};
|
|
39
40
|
export declare type SpecificRoute = {
|
|
40
|
-
get(handler:
|
|
41
|
-
put(handler:
|
|
42
|
-
post(handler:
|
|
43
|
-
delete(handler:
|
|
41
|
+
get(handler: GenericRequestHandler): SpecificRoute;
|
|
42
|
+
put(handler: GenericRequestHandler): SpecificRoute;
|
|
43
|
+
post(handler: GenericRequestHandler): SpecificRoute;
|
|
44
|
+
delete(handler: GenericRequestHandler): SpecificRoute;
|
|
44
45
|
};
|
|
45
46
|
export interface GenericRequest {
|
|
46
47
|
url?: string;
|
|
@@ -51,57 +52,9 @@ export interface GenericRequest {
|
|
|
51
52
|
}
|
|
52
53
|
export interface GenericResponse {
|
|
53
54
|
json(data: any): any;
|
|
54
|
-
status
|
|
55
|
-
setStatus?(statusCode: number): GenericResponse;
|
|
55
|
+
status(statusCode: number): GenericResponse;
|
|
56
56
|
end(): any;
|
|
57
57
|
}
|
|
58
|
-
declare class ExpressBridge {
|
|
59
|
-
private app;
|
|
60
|
-
queue: inProcessQueueHandler;
|
|
61
|
-
options: RemultServerOptions;
|
|
62
|
-
dataProvider: DataProvider | Promise<DataProvider>;
|
|
63
|
-
openApiDoc(options: {
|
|
64
|
-
title: string;
|
|
65
|
-
version?: string;
|
|
66
|
-
}): any;
|
|
67
|
-
backendMethodsOpenApi: {
|
|
68
|
-
path: string;
|
|
69
|
-
allowed: AllowedForInstance<any>;
|
|
70
|
-
tag: string;
|
|
71
|
-
}[];
|
|
72
|
-
constructor(app: GenericRouter, queue: inProcessQueueHandler, options: RemultServerOptions, dataProvider: DataProvider | Promise<DataProvider>);
|
|
73
|
-
logApiEndPoints: boolean;
|
|
74
|
-
private firstArea;
|
|
75
|
-
addArea(rootUrl: string): SiteArea;
|
|
76
|
-
getRemult(req?: GenericRequest): Promise<Remult>;
|
|
77
|
-
}
|
|
78
|
-
export declare class SiteArea {
|
|
79
|
-
private bridge;
|
|
80
|
-
private app;
|
|
81
|
-
private rootUrl;
|
|
82
|
-
private logApiEndpoints;
|
|
83
|
-
constructor(bridge: ExpressBridge, app: GenericRouter, rootUrl: string, logApiEndpoints: boolean);
|
|
84
|
-
add(key: string, dataApiFactory: ((req: Remult) => DataApi)): void;
|
|
85
|
-
process(what: (remult: Remult, myReq: DataApiRequest, myRes: DataApiResponse, origReq: GenericRequest) => Promise<void>): (req: GenericRequest, res: GenericResponse) => Promise<void>;
|
|
86
|
-
getRemult(req: GenericRequest): Promise<Remult>;
|
|
87
|
-
initQueue(): void;
|
|
88
|
-
addAction(action: {
|
|
89
|
-
__register: (reg: (url: string, queue: boolean, allowed: AllowedForInstance<any>, what: ((data: any, req: Remult, res: DataApiResponse) => void)) => void) => void;
|
|
90
|
-
}): void;
|
|
91
|
-
}
|
|
92
|
-
export declare class ExpressRequestBridgeToDataApiRequest implements DataApiRequest {
|
|
93
|
-
private r;
|
|
94
|
-
get(key: string): any;
|
|
95
|
-
constructor(r: GenericRequest);
|
|
96
|
-
}
|
|
97
|
-
declare class inProcessQueueHandler {
|
|
98
|
-
private storage;
|
|
99
|
-
constructor(storage: QueueStorage);
|
|
100
|
-
submitJob(url: string, req: Remult, body: any): Promise<string>;
|
|
101
|
-
mapQueuedAction(url: string, what: (data: any, r: Remult, res: ApiActionResponse) => void): void;
|
|
102
|
-
actions: Map<string, (data: any, r: Remult, res: ApiActionResponse) => void>;
|
|
103
|
-
getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
|
|
104
|
-
}
|
|
105
58
|
export interface queuedJobInfo {
|
|
106
59
|
info: queuedJobInfoResponse;
|
|
107
60
|
userId: string;
|
|
@@ -136,4 +89,3 @@ export declare class JobsInQueueEntity extends IdEntity {
|
|
|
136
89
|
error: boolean;
|
|
137
90
|
progress: number;
|
|
138
91
|
}
|
|
139
|
-
export {};
|