@noego/forge 0.0.19 → 0.0.20

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/client.d.ts CHANGED
@@ -1,3 +1,10 @@
1
+ import { ErrorRequestHandler } from 'express';
2
+ import { RequestHandler } from 'express';
3
+
4
+ declare type AssetEntry = string | RequestHandler | ErrorRequestHandler;
5
+
6
+ declare function assets(overrides?: ForgeAssetsOverrides, _config?: ForgeAssetsConfig): Record<string, AssetEntry[]>;
7
+
1
8
  declare type AsyncHeadersMiddleware = (headers: HeadersObject) => Promise<void> | void;
2
9
 
3
10
  declare interface Body_2 {
@@ -45,6 +52,54 @@ declare interface FetchMiddlewareAPI {
45
52
  getMiddlewareCount?(): number;
46
53
  }
47
54
 
55
+ declare type ForgeAssets = ReturnType<typeof assets>;
56
+
57
+ declare interface ForgeAssetsConfig {
58
+ /**
59
+ * Indicates whether the build is running in production mode.
60
+ * Defaults to checking NODE_ENV.
61
+ */
62
+ isProduction?: boolean;
63
+ /**
64
+ * Directory that contains compiled client assets relative to project root.
65
+ * Defaults to `dist/client`.
66
+ */
67
+ clientDir?: string;
68
+ /**
69
+ * Directory that contains compiled SSR modules relative to project root.
70
+ * Defaults to `dist/ssr`.
71
+ */
72
+ ssrDir?: string;
73
+ /**
74
+ * Directory that contains hashed client assets (JS/CSS) relative to project root.
75
+ * Defaults to `<clientDir>/assets`.
76
+ */
77
+ clientAssetsDir?: string;
78
+ /**
79
+ * Directory that contains UI static resources relative to project root.
80
+ * Defaults to `ui/resources`.
81
+ */
82
+ resourcesDir?: string;
83
+ /**
84
+ * Directory that contains UI stylesheets relative to project root.
85
+ * Defaults to `ui/styles`.
86
+ */
87
+ stylesDir?: string;
88
+ /**
89
+ * Extra asset mappings to merge into the generated map.
90
+ */
91
+ extras?: ForgeAssetsOverrides;
92
+ /**
93
+ * When true, keeps the styles directory mounted in production.
94
+ * Defaults to false (parity with previous behaviour).
95
+ */
96
+ includeStylesInProduction?: boolean;
97
+ }
98
+
99
+ declare interface ForgeAssetsOverrides {
100
+ [mountPath: string]: AssetEntry | AssetEntry[] | undefined;
101
+ }
102
+
48
103
  declare type HeadersObject = Record<string, string>;
49
104
 
50
105
  declare type htmlRenderer = 'default' | string | IHTMLRender;
@@ -104,7 +159,7 @@ declare interface ServerOptions {
104
159
  open_api_path?: string;
105
160
  manifest_path?: string;
106
161
  manifest_endpoint?: string;
107
- assets?: Record<string, string[]>;
162
+ assets?: ForgeAssets;
108
163
  context_builder?: ContextBuilder;
109
164
  middleware_path?: string;
110
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAmBF,QAAA,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEW,QAAA,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,0BAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
1
+ {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAmBF,QAAA,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEW,QAAA,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,0BAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { IHTMLRender } from '../routing/html_render/html_render';
2
+ import type { ForgeAssets } from './assets';
2
3
  export { assets } from './assets';
3
4
  export type htmlRenderer = 'default' | string | IHTMLRender;
4
5
  export type ContextBuilder = (req: any, res: any) => Record<string, any>;
@@ -11,7 +12,7 @@ export interface ServerOptions {
11
12
  open_api_path?: string;
12
13
  manifest_path?: string;
13
14
  manifest_endpoint?: string;
14
- assets?: Record<string, string[]>;
15
+ assets?: ForgeAssets;
15
16
  context_builder?: ContextBuilder;
16
17
  middleware_path?: string;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAmBlC,MAAM,CAAC,MAAM,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
1
+ {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAmBlC,MAAM,CAAC,MAAM,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
@@ -26,7 +26,7 @@ const mergeRecords = (target, additions) => {
26
26
  }
27
27
  return target;
28
28
  };
29
- function assets(overrides = {}, config = {}) {
29
+ function assets(overrides = {}, _config = {}) {
30
30
  const isProduction = process.env.NODE_ENV === 'production';
31
31
  const base = {
32
32
  '/assets': ['.app/assets']
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":";;;AA8CA,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAY,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAgC,EAChC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAgB,MAAM,CAClB,YAAkC,EAAE,EACpC,SAA4B,EAAE;IAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAA6B;QACnC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wBAkBC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":";;;AAkDA,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAgB,EAAE;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAoC,EACpC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAa,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAgB,MAAM,CAClB,YAAkC,EAAE,EACpC,UAA6B,EAAE;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAAiC;QACvC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wBAkBC"}
@@ -1,5 +1,7 @@
1
+ import type { ErrorRequestHandler, RequestHandler } from 'express';
2
+ export type AssetEntry = string | RequestHandler | ErrorRequestHandler;
1
3
  export interface ForgeAssetsOverrides {
2
- [mountPath: string]: string | string[] | undefined;
4
+ [mountPath: string]: AssetEntry | AssetEntry[] | undefined;
3
5
  }
4
6
  export interface ForgeAssetsConfig {
5
7
  /**
@@ -42,5 +44,5 @@ export interface ForgeAssetsConfig {
42
44
  */
43
45
  includeStylesInProduction?: boolean;
44
46
  }
45
- export declare function assets(overrides?: ForgeAssetsOverrides, config?: ForgeAssetsConfig): Record<string, string[]>;
47
+ export declare function assets(overrides?: ForgeAssetsOverrides, _config?: ForgeAssetsConfig): Record<string, AssetEntry[]>;
46
48
  export type ForgeAssets = ReturnType<typeof assets>;
@@ -23,7 +23,7 @@ const mergeRecords = (target, additions) => {
23
23
  }
24
24
  return target;
25
25
  };
26
- export function assets(overrides = {}, config = {}) {
26
+ export function assets(overrides = {}, _config = {}) {
27
27
  const isProduction = process.env.NODE_ENV === 'production';
28
28
  const base = {
29
29
  '/assets': ['.app/assets']
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":"AA8CA,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAY,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAgC,EAChC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAClB,YAAkC,EAAE,EACpC,SAA4B,EAAE;IAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAA6B;QACnC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":"AAkDA,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAgB,EAAE;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAoC,EACpC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAa,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAClB,YAAkC,EAAE,EACpC,UAA6B,EAAE;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAAiC;QACvC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAmBF,QAAA,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEW,QAAA,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,0BAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
1
+ {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAmBF,QAAA,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEW,QAAA,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,0BAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
@@ -26,7 +26,7 @@ const mergeRecords = (target, additions) => {
26
26
  }
27
27
  return target;
28
28
  };
29
- function assets(overrides = {}, config = {}) {
29
+ function assets(overrides = {}, _config = {}) {
30
30
  const isProduction = process.env.NODE_ENV === 'production';
31
31
  const base = {
32
32
  '/assets': ['.app/assets']
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":";;;AA8CA,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAY,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAgC,EAChC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAgB,MAAM,CAClB,YAAkC,EAAE,EACpC,SAA4B,EAAE;IAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAA6B;QACnC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wBAkBC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":";;;AAkDA,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAgB,EAAE;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAoC,EACpC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAa,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAgB,MAAM,CAClB,YAAkC,EAAE,EACpC,UAA6B,EAAE;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAAiC;QACvC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wBAkBC"}
@@ -1,4 +1,5 @@
1
1
  import type { IHTMLRender } from '../routing/html_render/html_render';
2
+ import type { ForgeAssets } from './assets';
2
3
  export { assets } from './assets';
3
4
  export type htmlRenderer = 'default' | string | IHTMLRender;
4
5
  export type ContextBuilder = (req: any, res: any) => Record<string, any>;
@@ -11,7 +12,7 @@ export interface ServerOptions {
11
12
  open_api_path?: string;
12
13
  manifest_path?: string;
13
14
  manifest_endpoint?: string;
14
- assets?: Record<string, string[]>;
15
+ assets?: ForgeAssets;
15
16
  context_builder?: ContextBuilder;
16
17
  middleware_path?: string;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAmBlC,MAAM,CAAC,MAAM,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
1
+ {"version":3,"file":"ServerOptions.js","sourceRoot":"","sources":["../../../src/options/ServerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAmBlC,MAAM,CAAC,MAAM,kBAAkB,GAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;IACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;KACxC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAClD,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,SAAS;IACnB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;IACvD,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,SAAS;CAC7B,CAAC"}
@@ -1,5 +1,7 @@
1
+ import type { ErrorRequestHandler, RequestHandler } from 'express';
2
+ export type AssetEntry = string | RequestHandler | ErrorRequestHandler;
1
3
  export interface ForgeAssetsOverrides {
2
- [mountPath: string]: string | string[] | undefined;
4
+ [mountPath: string]: AssetEntry | AssetEntry[] | undefined;
3
5
  }
4
6
  export interface ForgeAssetsConfig {
5
7
  /**
@@ -42,5 +44,5 @@ export interface ForgeAssetsConfig {
42
44
  */
43
45
  includeStylesInProduction?: boolean;
44
46
  }
45
- export declare function assets(overrides?: ForgeAssetsOverrides, config?: ForgeAssetsConfig): Record<string, string[]>;
47
+ export declare function assets(overrides?: ForgeAssetsOverrides, _config?: ForgeAssetsConfig): Record<string, AssetEntry[]>;
46
48
  export type ForgeAssets = ReturnType<typeof assets>;
@@ -23,7 +23,7 @@ const mergeRecords = (target, additions) => {
23
23
  }
24
24
  return target;
25
25
  };
26
- export function assets(overrides = {}, config = {}) {
26
+ export function assets(overrides = {}, _config = {}) {
27
27
  const isProduction = process.env.NODE_ENV === 'production';
28
28
  const base = {
29
29
  '/assets': ['.app/assets']
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":"AA8CA,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAY,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAgC,EAChC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAClB,YAAkC,EAAE,EACpC,SAA4B,EAAE;IAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAA6B;QACnC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/options/assets.ts"],"names":[],"mappings":"AAkDA,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAgB,EAAE;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACjB,MAAoC,EACpC,SAAgC,EAClC,EAAE;IACA,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAa,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAClB,YAAkC,EAAE,EACpC,UAA6B,EAAE;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAE3D,MAAM,IAAI,GAAiC;QACvC,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1094,6 +1094,9 @@ async function createServer(app, options) {
1094
1094
  const rendererFullPath = typeof full_options.renderer === "string" && full_options.renderer !== "default" ? ensureFullPath(root, full_options.renderer) : ensureFullPath(root, "index.html");
1095
1095
  path.dirname(rendererFullPath);
1096
1096
  const resolveAssetRoot = (entry) => {
1097
+ if (typeof entry === "function") {
1098
+ return entry;
1099
+ }
1097
1100
  if (!entry || typeof entry !== "string") return root;
1098
1101
  const cleaned = entry.replace(/^\/+/, "");
1099
1102
  return path.resolve(root, cleaned);