remult 0.14.29 → 0.14.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/graphql.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { RemultExpressBridge } from "./server/expressBridge";
2
- export declare function remultGraphql(api: RemultExpressBridge): {
1
+ import { RemultServer } from "./server/expressBridge";
2
+ export declare function remultGraphql(api: RemultServer): {
3
3
  rootValue: {};
4
4
  schema: string;
5
5
  };
@@ -1,11 +1,6 @@
1
- import { RemultMiddlewareOptions } from './server/expressBridge';
2
- export declare function remultExpress(options?: RemultMiddlewareOptions & {
1
+ import * as express from 'express';
2
+ import { RemultServer, RemultServerOptions } from './server/expressBridge';
3
+ export declare function remultExpress(options?: RemultServerOptions & {
3
4
  bodyParser?: boolean;
4
5
  bodySizeLimit?: string;
5
- }): import("express-serve-static-core").Router & {
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;
@@ -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(app, options);
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
- addArea: x => server.addArea(x)
20
+ registerRouter: x => server.registerRouter(x)
20
21
  });
21
22
  }
@@ -1,3 +1,3 @@
1
1
  import type { FastifyPluginCallback } from 'fastify';
2
- import { RemultServer, RemultMiddlewareOptions } from './server/expressBridge';
3
- export declare function remultFastify(options: RemultMiddlewareOptions): FastifyPluginCallback & RemultServer;
2
+ import { RemultServer, RemultServerOptions } from './server/expressBridge';
3
+ export declare function remultFastify(options: RemultServerOptions): FastifyPluginCallback & RemultServer;
@@ -18,8 +18,8 @@ export function remultFastify(options) {
18
18
  };
19
19
  return response;
20
20
  }
21
- let api;
22
- const pluginFunction = async (instance, options) => {
21
+ const api = buildRemultServer(options);
22
+ const pluginFunction = async (instance, op) => {
23
23
  //@ts-ignore
24
24
  let fastifyRouter = {
25
25
  route(path) {
@@ -42,16 +42,11 @@ export function remultFastify(options) {
42
42
  return r;
43
43
  },
44
44
  };
45
- api = buildRemultServer(fastifyRouter, options);
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
- addArea: x => getApi().addArea(x),
54
- getRemult: x => getApi().getRemult(x),
55
- openApiDoc: x => getApi().openApiDoc(x)
48
+ getRemult: x => api.getRemult(x),
49
+ openApiDoc: x => api.openApiDoc(x),
50
+ handle: (req, res) => api.handle(req, res)
56
51
  });
57
52
  }
@@ -0,0 +1,17 @@
1
+ import { RemultServerOptions, RemultServer } from "./server/expressBridge";
2
+ export declare function remultFresh(options: RemultServerOptions, response: FreshResponse): RemultFresh;
3
+ export interface RemultFresh extends RemultServer {
4
+ freshHandler(req: FreshRequest, ctx: FreshContext): Promise<FreshResponse>;
5
+ }
6
+ export interface FreshRequest {
7
+ url: string;
8
+ method: string;
9
+ json: () => Promise<any>;
10
+ }
11
+ export interface FreshContext {
12
+ next: () => Promise<any>;
13
+ }
14
+ export interface FreshResponse {
15
+ new (body?: any | undefined, init?: ResponseInit): any;
16
+ json(data: unknown, init?: ResponseInit): any;
17
+ }
@@ -0,0 +1,36 @@
1
+ import { buildRemultServer } from "./server/expressBridge";
2
+ export function remultFresh(options, response) {
3
+ const server = buildRemultServer(options);
4
+ const orig = server.handle;
5
+ return Object.assign(server, {
6
+ freshHandler: async (req, ctx) => {
7
+ const theReq = {
8
+ method: req.method,
9
+ url: req.url,
10
+ body: undefined
11
+ };
12
+ switch (req.method.toLocaleLowerCase()) {
13
+ case "put":
14
+ case "post":
15
+ theReq.body = await req.json();
16
+ break;
17
+ }
18
+ let init = {};
19
+ const res = await orig(theReq);
20
+ if (res) {
21
+ init.status = res.statusCode;
22
+ if (res.data) {
23
+ return response.json(res.data, init);
24
+ }
25
+ else
26
+ return new response(undefined, init);
27
+ }
28
+ else {
29
+ return ctx.next();
30
+ }
31
+ ;
32
+ }
33
+ });
34
+ }
35
+ ;
36
+ ;
@@ -1,9 +1,10 @@
1
- import { GenericRequest, GenericRequestHandler, GenericResponse, RemultMiddlewareOptions, RemultServer } from './server/expressBridge';
2
- export declare function remultMiddleware(options?: RemultMiddlewareOptions): RemultMiddleware;
3
- export interface RemultMiddleware extends GenericRequestHandler, RemultServer {
1
+ import { GenericRequest, GenericMiddleware, GenericResponse, GenericRouter, buildRemultServer, RemultServerOptions, SpecificRoute, RemultServer } from './server/expressBridge';
2
+ export declare function remultMiddleware(options?: RemultServerOptions): RemultMiddleware;
3
+ export interface RemultMiddleware extends GenericMiddleware, RemultServer {
4
4
  handle(req: GenericRequest, gRes?: GenericResponse): Promise<MiddlewareResponse>;
5
5
  }
6
6
  export interface MiddlewareResponse {
7
7
  data?: any;
8
8
  statusCode?: number;
9
9
  }
10
+ export { GenericRequest, GenericMiddleware as GenericRequestHandler, GenericResponse, GenericRouter, buildRemultServer, RemultServerOptions as RemultMiddlewareOptions, SpecificRoute, RemultServer };
@@ -114,3 +114,4 @@ class middleware {
114
114
  next();
115
115
  }
116
116
  }
117
+ export { buildRemultServer };
@@ -1,37 +1,39 @@
1
1
  import { queuedJobInfoResponse } from '../src/server-action';
2
2
  import { DataProvider } from '../src/data-interfaces';
3
- import { DataApi, DataApiRequest, DataApiResponse } from '../src/data-api';
4
- import { AllowedForInstance, Remult, UserInfo } from '../src/context';
3
+ import { DataApiRequest } from '../src/data-api';
4
+ import { Remult, UserInfo } from '../src/context';
5
5
  import { ClassType } from '../classType';
6
6
  import { Repository } from '../src/remult3';
7
7
  import { IdEntity } from '../src/id-entity';
8
- export declare type RemultMiddlewareOptions = {
8
+ export declare type RemultServerOptions = {
9
9
  /** Sets a database connection for Remult.
10
10
  *
11
11
  * @see [Connecting to a Database](https://remult.dev/docs/databases.html).
12
12
  */
13
13
  dataProvider?: DataProvider | Promise<DataProvider> | (() => Promise<DataProvider | undefined>);
14
- disableAutoApi?: boolean;
15
14
  queueStorage?: QueueStorage;
16
15
  initRequest?: (remult: Remult, origReq: GenericRequest) => Promise<void>;
16
+ getUser?: (request: GenericRequest) => Promise<UserInfo>;
17
17
  initApi?: (remult: Remult) => void | Promise<void>;
18
18
  logApiEndPoints?: boolean;
19
19
  defaultGetLimit?: number;
20
20
  entities?: ClassType<any>[];
21
21
  controllers?: ClassType<any>[];
22
- bodyParser?: boolean;
23
22
  rootPath?: string;
24
23
  };
25
- export declare function buildRemultServer(app: GenericRouter, options: RemultMiddlewareOptions): RemultServer;
24
+ export declare function buildRemultServer(options: RemultServerOptions): RemultServer;
26
25
  export declare type GenericRequestHandler = (req: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
27
- export interface RemultExpressBridge extends GenericRequestHandler, RemultServer {
26
+ export interface ServerHandleResponse {
27
+ data?: any;
28
+ statusCode: number;
28
29
  }
29
30
  export interface RemultServer {
30
31
  getRemult(req: GenericRequest): Promise<Remult>;
31
32
  openApiDoc(options: {
32
33
  title: string;
33
34
  }): any;
34
- addArea(rootUrl: string): void;
35
+ registerRouter(r: GenericRouter): void;
36
+ handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse | undefined>;
35
37
  }
36
38
  export declare type GenericRouter = {
37
39
  route(path: string): SpecificRoute;
@@ -48,8 +50,6 @@ export interface GenericRequest {
48
50
  body?: any;
49
51
  query?: any;
50
52
  params?: any;
51
- user?: UserInfo;
52
- auth?: UserInfo;
53
53
  }
54
54
  export interface GenericResponse {
55
55
  json(data: any): any;
@@ -57,53 +57,11 @@ export interface GenericResponse {
57
57
  setStatus?(statusCode: number): GenericResponse;
58
58
  end(): any;
59
59
  }
60
- declare class ExpressBridge {
61
- private app;
62
- queue: inProcessQueueHandler;
63
- initRequest: (remult: Remult, origReq: GenericRequest) => Promise<void>;
64
- dataProvider: DataProvider | Promise<DataProvider>;
65
- openApiDoc(options: {
66
- title: string;
67
- version?: string;
68
- }): any;
69
- backendMethodsOpenApi: {
70
- path: string;
71
- allowed: AllowedForInstance<any>;
72
- tag: string;
73
- }[];
74
- constructor(app: GenericRouter, queue: inProcessQueueHandler, initRequest: (remult: Remult, origReq: GenericRequest) => Promise<void>, dataProvider: DataProvider | Promise<DataProvider>);
75
- logApiEndPoints: boolean;
76
- private firstArea;
77
- addArea(rootUrl: string): SiteArea;
78
- getRemult(req?: GenericRequest): Promise<Remult>;
79
- }
80
- export declare class SiteArea {
81
- private bridge;
82
- private app;
83
- private rootUrl;
84
- private logApiEndpoints;
85
- constructor(bridge: ExpressBridge, app: GenericRouter, rootUrl: string, logApiEndpoints: boolean);
86
- add(key: string, dataApiFactory: ((req: Remult) => DataApi)): void;
87
- process(what: (remult: Remult, myReq: DataApiRequest, myRes: DataApiResponse, origReq: GenericRequest) => Promise<void>): (req: GenericRequest, res: GenericResponse) => Promise<void>;
88
- getRemult(req: GenericRequest): Promise<Remult>;
89
- initQueue(): void;
90
- addAction(action: {
91
- __register: (reg: (url: string, queue: boolean, allowed: AllowedForInstance<any>, what: ((data: any, req: Remult, res: DataApiResponse) => void)) => void) => void;
92
- }): void;
93
- }
94
60
  export declare class ExpressRequestBridgeToDataApiRequest implements DataApiRequest {
95
61
  private r;
96
62
  get(key: string): any;
97
63
  constructor(r: GenericRequest);
98
64
  }
99
- declare class inProcessQueueHandler {
100
- private storage;
101
- constructor(storage: QueueStorage);
102
- submitJob(url: string, req: Remult, body: any): Promise<string>;
103
- mapQueuedAction(url: string, what: (data: any, r: Remult, res: ApiActionResponse) => void): void;
104
- actions: Map<string, (data: any, r: Remult, res: ApiActionResponse) => void>;
105
- getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
106
- }
107
65
  export interface queuedJobInfo {
108
66
  info: queuedJobInfoResponse;
109
67
  userId: string;
@@ -138,4 +96,3 @@ export declare class JobsInQueueEntity extends IdEntity {
138
96
  error: boolean;
139
97
  progress: number;
140
98
  }
141
- export {};