@proteinjs/server 1.0.17 → 1.1.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.1.0](https://github.com/proteinjs/server/compare/@proteinjs/server@1.0.17...@proteinjs/server@1.1.0) (2024-05-06)
7
+
8
+
9
+ ### Features
10
+
11
+ * `ServerConfig` now accepts a bundles directory instead of bundle paths (deprecated) so the server can support dynamic bundle names (ie. when you generate a hash as part of the bundle name for cache busting) ([f3d7cef](https://github.com/proteinjs/server/commit/f3d7cefd58cb0b220470e886e161fbc028ca2df9))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [1.0.11](https://github.com/proteinjs/server/compare/@proteinjs/server@1.0.10...@proteinjs/server@1.0.11) (2024-04-24)
7
18
 
8
19
 
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Brent Bahry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -4,6 +4,7 @@ import '@proteinjs/db';
4
4
  import '@proteinjs/reflection';
5
5
  import '@proteinjs/server-api';
6
6
  import '@proteinjs/util';
7
+ import '@proteinjs/util-node';
7
8
  import 'body-parser';
8
9
  import 'buffer';
9
10
  import 'compression';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AACxB,OAAO,SAAS,CAAC;AACjB,OAAO,OAAO,CAAC;AACf,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,0BAA0B,CAAC;AAClC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,WAAW,CAAC;AACnB,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,CAAC;AACb,OAAO,MAAM,CAAC;AACd,OAAO,SAAS,CAAC;AACjB,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAyBhC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,iBAAiB,CAAC;AACzB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AACxB,OAAO,SAAS,CAAC;AACjB,OAAO,OAAO,CAAC;AACf,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,0BAA0B,CAAC;AAClC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,WAAW,CAAC;AACnB,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,CAAC;AACb,OAAO,MAAM,CAAC;AACd,OAAO,SAAS,CAAC;AACjB,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAyBhC,cAAc,UAAU,CAAC"}
@@ -20,6 +20,7 @@ require("@proteinjs/db");
20
20
  require("@proteinjs/reflection");
21
21
  require("@proteinjs/server-api");
22
22
  require("@proteinjs/util");
23
+ require("@proteinjs/util-node");
23
24
  require("body-parser");
24
25
  require("buffer");
25
26
  require("compression");
@@ -45,7 +46,7 @@ require("webpack");
45
46
  require("webpack-dev-middleware");
46
47
  require("webpack-hot-middleware");
47
48
  /** Generate Source Graph */
48
- var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"NodeSessionDataStorage\",\"filePath\":\"/Users/brentbahry/workspaces/n3xa/packages/proteinjs/packages/server/packages/server/src/NodeSessionDataStorage.ts\",\"qualifiedName\":\"@proteinjs/server/NodeSessionDataStorage\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"HOOK_INITIALIZED\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"SESSION_DATA\",\"type\":{\"packageName\":\"@proteinjs/server\",\"name\":\"{[id: string]: SessionData}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server/{[id: string]: SessionData}\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"environment\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"setData\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"data\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getData\",\"returnType\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"initHook\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionDataStorage\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionDataStorage\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/server-api/SessionDataStorage\"},{\"v\":\"/string\"},{\"v\":\"@proteinjs/server/healthCheck\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"healthCheck\",\"filePath\":\"/Users/brentbahry/workspaces/n3xa/packages/proteinjs/packages/server/packages/server/src/routes/healthCheck.ts\",\"qualifiedName\":\"@proteinjs/server/healthCheck\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/server-api/Route\"}],\"edges\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"w\":\"@proteinjs/server-api/SessionDataStorage\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/server/healthCheck\",\"w\":\"@proteinjs/server-api/Route\",\"value\":\"has type\"}]}";
49
+ var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"NodeSessionDataStorage\",\"filePath\":\"/home/runner/work/server/server/packages/server/src/NodeSessionDataStorage.ts\",\"qualifiedName\":\"@proteinjs/server/NodeSessionDataStorage\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"HOOK_INITIALIZED\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"SESSION_DATA\",\"type\":{\"packageName\":\"@proteinjs/server\",\"name\":\"{[id: string]: SessionData}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server/{[id: string]: SessionData}\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"environment\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"setData\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"data\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getData\",\"returnType\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"initHook\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionDataStorage\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionDataStorage\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/server-api/SessionDataStorage\"},{\"v\":\"/string\"},{\"v\":\"@proteinjs/server/healthCheck\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"healthCheck\",\"filePath\":\"/home/runner/work/server/server/packages/server/src/routes/healthCheck.ts\",\"qualifiedName\":\"@proteinjs/server/healthCheck\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/server-api/Route\"}],\"edges\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"w\":\"@proteinjs/server-api/SessionDataStorage\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/server/healthCheck\",\"w\":\"@proteinjs/server-api/Route\",\"value\":\"has type\"}]}";
49
50
  /** Generate Source Links */
50
51
  var NodeSessionDataStorage_1 = require("../src/NodeSessionDataStorage");
51
52
  var healthCheck_1 = require("../src/routes/healthCheck");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gDAA8C;AAC9C,yBAAuB;AACvB,iCAA+B;AAC/B,iCAA+B;AAC/B,2BAAyB;AACzB,uBAAqB;AACrB,kBAAgB;AAChB,uBAAqB;AACrB,yBAAuB;AACvB,6BAA2B;AAC3B,kBAAgB;AAChB,mBAAiB;AACjB,2BAAyB;AACzB,uBAAqB;AACrB,oBAAkB;AAClB,0BAAwB;AACxB,mBAAiB;AACjB,iBAAe;AACf,wBAAsB;AACtB,yBAAuB;AACvB,oCAAkC;AAClC,6BAA2B;AAC3B,qBAAmB;AACnB,sBAAoB;AACpB,eAAa;AACb,gBAAc;AACd,mBAAiB;AACjB,kCAAgC;AAChC,kCAAgC;AAGhC,4BAA4B;AAE5B,IAAM,WAAW,GAAG,g2GAAg2G,CAAC;AAGr3G,4BAA4B;AAE5B,wEAAuE;AACvE,yDAAwD;AAExD,IAAM,WAAW,GAAG;IACnB,0CAA0C,EAAE,+CAAsB;IAClE,+BAA+B,EAAE,yBAAW;CAC5C,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gDAA8C;AAC9C,yBAAuB;AACvB,iCAA+B;AAC/B,iCAA+B;AAC/B,2BAAyB;AACzB,gCAA8B;AAC9B,uBAAqB;AACrB,kBAAgB;AAChB,uBAAqB;AACrB,yBAAuB;AACvB,6BAA2B;AAC3B,kBAAgB;AAChB,mBAAiB;AACjB,2BAAyB;AACzB,uBAAqB;AACrB,oBAAkB;AAClB,0BAAwB;AACxB,mBAAiB;AACjB,iBAAe;AACf,wBAAsB;AACtB,yBAAuB;AACvB,oCAAkC;AAClC,6BAA2B;AAC3B,qBAAmB;AACnB,sBAAoB;AACpB,eAAa;AACb,gBAAc;AACd,mBAAiB;AACjB,kCAAgC;AAChC,kCAAgC;AAGhC,4BAA4B;AAE5B,IAAM,WAAW,GAAG,sxGAAsxG,CAAC;AAG3yG,4BAA4B;AAE5B,wEAAuE;AACvE,yDAAwD;AAExD,IAAM,WAAW,GAAG;IACnB,0CAA0C,EAAE,+CAAsB;IAClE,+BAA+B,EAAE,yBAAW;CAC5C,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
@@ -70,7 +70,7 @@ function loadRoutes(routes, server, config) {
70
70
  }
71
71
  exports.loadRoutes = loadRoutes;
72
72
  function loadDefaultStarRoute(routes, server, config) {
73
- var _a;
73
+ var _a, _b;
74
74
  var starRouteSpecified = false;
75
75
  for (var _i = 0, routes_2 = routes; _i < routes_2.length; _i++) {
76
76
  var route = routes_2[_i];
@@ -79,7 +79,7 @@ function loadDefaultStarRoute(routes, server, config) {
79
79
  break;
80
80
  }
81
81
  }
82
- if (!starRouteSpecified && ((_a = config.staticContent) === null || _a === void 0 ? void 0 : _a.bundlePaths)) {
82
+ if (!starRouteSpecified && (((_a = config.staticContent) === null || _a === void 0 ? void 0 : _a.bundlePaths) || ((_b = config.staticContent) === null || _b === void 0 ? void 0 : _b.bundlesDir))) {
83
83
  var reactApp = (0, reactApp_1.createReactApp)(config);
84
84
  server[reactApp.method](reactApp.path, wrapRoute(reactApp.onRequest, config));
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loadRoutes.js","sourceRoot":"","sources":["../../src/loadRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadRoutes.js","sourceRoot":"","sources":["../../src/loadRoutes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAgC;AAChC,oDAA6H;AAC7H,8CAAmD;AACnD,wCAAyC;AAEzC,IAAM,MAAM,GAAG,IAAI,aAAM,CAAC,QAAQ,CAAC,CAAC;AAEpC,SAAgB,UAAU,CAAC,MAAe,EAAE,MAAuB,EAAE,MAAoB;IACrF,IAAI,SAAS,GAAe,IAAI,CAAC;IACjC,IAAM,cAAc,GAAY,EAAE,CAAC;IACnC,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAAvB,IAAM,KAAK,eAAA;QACZ,MAAM,CAAC,IAAI,CAAC,yBAAkB,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE;YACnB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS;SACZ;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC1B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;SACZ;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KAC7F;IAED,KAA4B,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc;QAArC,IAAM,aAAa,uBAAA;QACpB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KAAA;IAE9H,IAAI,SAAS;QACT,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzG,CAAC;AAvBD,gCAuBC;AAED,SAAgB,oBAAoB,CAAC,MAAe,EAAE,MAAuB,EAAE,MAAoB;;IAC/F,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAAvB,IAAM,KAAK,eAAA;QACZ,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE;YACnB,kBAAkB,GAAG,IAAI,CAAC;YAC1B,MAAM;SACT;KACJ;IAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,WAAW,MAAI,MAAA,MAAM,CAAC,aAAa,0CAAE,UAAU,CAAA,CAAC,EAAE;QAChG,IAAM,QAAQ,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;KACjF;AACL,CAAC;AAbD,oDAaC;AAED,SAAS,OAAO,CAAC,IAAY;IACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,IAAI,CAAE,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,KAA8E,EAAE,MAAoB;IACnH,OAAO,UAAgB,OAAwB,EAAE,QAA0B,EAAE,IAA0B;;;;;;;wBACnG,IAAI,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;4BACpC,IAAI,EAAE,CAAC;4BACP,sBAAO;yBACV;6BAEG,MAAM,CAAC,YAAY,EAAnB,wBAAmB;wBACnB,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;gCACpC,kBAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,IAAI;oCACpD,IAAI,GAAG;wCACH,MAAM,CAAC,GAAG,CAAC,CAAC;oCAEhB,OAAO,EAAE,CAAC;gCACd,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;4BAChC,CAAC,CAAC,EAAA;;wBAPF,SAOE,CAAC;;;wBAGD,WAAW,GAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAc,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;8BACrD,EAAtB,SAAA,iCAAoB,GAAE;;;6BAAtB,CAAA,cAAsB,CAAA;wBAA1C,gBAAgB;wBACvB,KAAA,WAAW,CAAC,IAAI,CAAA;wBAAC,KAAA,gBAAgB,CAAC,GAAG,CAAA;wBAAI,qBAAM,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,EAAA;;wBAA/G,MAAsC,GAAG,SAAsE,CAAC;;;wBADrF,IAAsB,CAAA;;;wBAErD,oBAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAEvB,gBAAgB,GAAG,IAAA,gCAAmB,GAAE,CAAC;8BACR,EAAhB,qCAAgB;;;6BAAhB,CAAA,8BAAgB,CAAA;wBAA5B,QAAQ;wBACf,IAAI,CAAC,QAAQ,CAAC,aAAa;4BACvB,yBAAS;;;;wBAGT,qBAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;wBAA/C,SAA+C,CAAC;;;;wBAEhD,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE,OAAK,CAAC,CAAC;;;wBAP1D,IAAgB,CAAA;;;wBAWjC,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC9B,OAAO,GAAG,OAAO,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,SAAS,CAAA,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;wBAC3G,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;4BACxB,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa;gCAC7B,MAAM,CAAC,IAAI,CAAC,YAAK,QAAQ,CAAC,MAAM,CAAC,aAAa,yBAAe,OAAO,CAAC,WAAW,CAAE,CAAC,CAAC;;gCAEpF,MAAM,CAAC,IAAI,CAAC,oBAAa,OAAO,CAAC,WAAW,CAAE,CAAC,CAAC;wBACxD,CAAC,CAAC,CAAC;;;;wBAGC,qBAAM,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;wBAA9B,SAA8B,CAAC;;;;wBAE/B,OAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAC;;;wBAEzB,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;8BAEH,EAAhB,qCAAgB;;;6BAAhB,CAAA,8BAAgB,CAAA;wBAA5B,QAAQ;wBACf,IAAI,CAAC,QAAQ,CAAC,YAAY;4BACtB,yBAAS;;;;wBAGT,qBAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;wBAA9C,SAA8C,CAAC;;;;wBAE/C,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,OAAK,CAAC,CAAC;;;wBAPzD,IAAgB,CAAA;;;wBAWvC,IAAI,EAAE,CAAC;;;;;KACV,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAwB;IAClD,IAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,IAAA,KAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAA1E,QAAQ,QAAA,EAAE,QAAQ,QAAwD,CAAC;IAClF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;QACtB,OAAO,IAAI,CAAC;IAEhB,OAAO,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactApp.d.ts","sourceRoot":"","sources":["../../../src/routes/reactApp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAE/E,eAAO,MAAM,cAAc,iBAAkB,YAAY;;;yBAItB,GAAG,YAAY,GAAG,KAAG,QAAQ,IAAI,CAAC;CA4BpE,CAAA"}
1
+ {"version":3,"file":"reactApp.d.ts","sourceRoot":"","sources":["../../../src/routes/reactApp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAG/E,eAAO,MAAM,cAAc,iBAAkB,YAAY;;;yBAItB,GAAG,YAAY,GAAG,KAAG,QAAQ,IAAI,CAAC;CA4BpE,CAAA"}
@@ -43,26 +43,30 @@ exports.createReactApp = void 0;
43
43
  var path_1 = __importDefault(require("path"));
44
44
  var react_helmet_1 = __importDefault(require("react-helmet"));
45
45
  var server_api_1 = require("@proteinjs/server-api");
46
+ var util_node_1 = require("@proteinjs/util-node");
46
47
  var createReactApp = function (serverConfig) {
47
48
  return {
48
49
  path: '*',
49
50
  method: 'get',
50
51
  onRequest: function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
51
- var helmet, _a, _b, _c, _d;
52
- var _e, _f;
53
- return __generator(this, function (_g) {
54
- switch (_g.label) {
52
+ var helmet, _a, _b, _c, _d, _e, _f;
53
+ var _g, _h, _j;
54
+ return __generator(this, function (_k) {
55
+ switch (_k.label) {
55
56
  case 0:
56
57
  if (request.path.startsWith('/static'))
57
58
  return [2 /*return*/];
58
- if (!((_e = serverConfig.staticContent) === null || _e === void 0 ? void 0 : _e.bundlePaths))
59
- throw new Error("ServerConfig.bundlePath must be provided to serve react app");
59
+ if (!(((_g = serverConfig.staticContent) === null || _g === void 0 ? void 0 : _g.bundlePaths) || ((_h = serverConfig.staticContent) === null || _h === void 0 ? void 0 : _h.bundlesDir)))
60
+ throw new Error("ServerConfig.bundlePath or ServerConfig.bundlesDir must be provided to serve a react app");
60
61
  helmet = react_helmet_1.default.renderStatic();
61
62
  _b = (_a = response).send;
62
- _d = (_c = "<!DOCTYPE html>\n <html ".concat(helmet.htmlAttributes, ">\n <head>\n <meta charset='utf-8' />\n <meta name='viewport' content='width=device-width, initial-scale=1.0'>\n <link href='").concat(((_f = serverConfig.staticContent) === null || _f === void 0 ? void 0 : _f.faviconPath) ? path_1.default.join('/static/', serverConfig.staticContent.faviconPath) : '', "' rel='icon' type='image/x-icon' />\n ").concat(helmet.title.toString(), "\n ").concat(helmet.meta.toString(), "\n ").concat(helmet.link.toString(), "\n </head>\n <body ").concat(helmet.bodyAttributes.toString(), ">\n <div id='app'></div>\n <script>proteinjs = {};</script>\n ")).concat;
63
+ _e = (_d = "<!DOCTYPE html>\n <html ".concat(helmet.htmlAttributes, ">\n <head>\n <meta charset='utf-8' />\n <meta name='viewport' content='width=device-width, initial-scale=1.0'>\n <link href='").concat(((_j = serverConfig.staticContent) === null || _j === void 0 ? void 0 : _j.faviconPath) ? path_1.default.join('/static/', serverConfig.staticContent.faviconPath) : '', "' rel='icon' type='image/x-icon' />\n ").concat(helmet.title.toString(), "\n ").concat(helmet.meta.toString(), "\n ").concat(helmet.link.toString(), "\n </head>\n <body ").concat(helmet.bodyAttributes.toString(), ">\n <div id='app'></div>\n <script>proteinjs = {};</script>\n ")).concat;
63
64
  return [4 /*yield*/, serverRenderedScriptTags()];
64
65
  case 1:
65
- _b.apply(_a, [_d.apply(_c, [_g.sent(), "\n "]).concat(bundleScriptTags(serverConfig), "\n </body>\n </html>")]);
66
+ _f = (_c = _e.apply(_d, [_k.sent(), "\n "])).concat;
67
+ return [4 /*yield*/, bundleScriptTags(serverConfig)];
68
+ case 2:
69
+ _b.apply(_a, [_f.apply(_c, [_k.sent(), "\n </body>\n </html>"])]);
66
70
  return [2 /*return*/];
67
71
  }
68
72
  });
@@ -71,15 +75,37 @@ var createReactApp = function (serverConfig) {
71
75
  };
72
76
  exports.createReactApp = createReactApp;
73
77
  function bundleScriptTags(serverConfig) {
74
- var _a;
75
- if (!((_a = serverConfig.staticContent) === null || _a === void 0 ? void 0 : _a.bundlePaths))
76
- return;
77
- var scriptTags = [];
78
- for (var _i = 0, _b = serverConfig.staticContent.bundlePaths; _i < _b.length; _i++) {
79
- var bundlePath = _b[_i];
80
- scriptTags.push("<script src='".concat(path_1.default.join('/static/', bundlePath), "'></script>"));
81
- }
82
- return scriptTags.join('\n');
78
+ var _a, _b, _c, _d, _e;
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var scriptTags, _i, _f, bundlePath, resolvedBundlesDir, filePaths, _g, filePaths_1, filePath, relativePath;
81
+ return __generator(this, function (_h) {
82
+ switch (_h.label) {
83
+ case 0:
84
+ if (!(((_a = serverConfig.staticContent) === null || _a === void 0 ? void 0 : _a.bundlePaths) || ((_b = serverConfig.staticContent) === null || _b === void 0 ? void 0 : _b.bundlesDir)))
85
+ return [2 /*return*/];
86
+ scriptTags = [];
87
+ if (!((_c = serverConfig.staticContent) === null || _c === void 0 ? void 0 : _c.bundlePaths)) return [3 /*break*/, 1];
88
+ for (_i = 0, _f = serverConfig.staticContent.bundlePaths; _i < _f.length; _i++) {
89
+ bundlePath = _f[_i];
90
+ scriptTags.push("<script src='".concat(path_1.default.join('/static/', bundlePath), "'></script>"));
91
+ }
92
+ return [3 /*break*/, 3];
93
+ case 1:
94
+ if (!(((_d = serverConfig.staticContent) === null || _d === void 0 ? void 0 : _d.bundlesDir) && ((_e = serverConfig.staticContent) === null || _e === void 0 ? void 0 : _e.staticContentDir))) return [3 /*break*/, 3];
95
+ resolvedBundlesDir = path_1.default.join(serverConfig.staticContent.staticContentDir, serverConfig.staticContent.bundlesDir);
96
+ return [4 /*yield*/, util_node_1.Fs.getFilePathsMatchingGlob(resolvedBundlesDir, '**/*.js')];
97
+ case 2:
98
+ filePaths = _h.sent();
99
+ for (_g = 0, filePaths_1 = filePaths; _g < filePaths_1.length; _g++) {
100
+ filePath = filePaths_1[_g];
101
+ relativePath = path_1.default.relative(serverConfig.staticContent.staticContentDir, filePath);
102
+ scriptTags.push("<script src='".concat(path_1.default.join('/static/', relativePath), "'></script>"));
103
+ }
104
+ _h.label = 3;
105
+ case 3: return [2 /*return*/, scriptTags.join('\n')];
106
+ }
107
+ });
108
+ });
83
109
  }
84
110
  function serverRenderedScriptTags() {
85
111
  return __awaiter(this, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"reactApp.js","sourceRoot":"","sources":["../../../src/routes/reactApp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,8DAAuC;AACvC,oDAA+E;AAExE,IAAM,cAAc,GAAG,UAAC,YAA0B;IACrD,OAAO;QACH,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAc;QACtB,SAAS,EAAE,UAAO,OAAY,EAAE,QAAa;;;;;;wBACzC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;4BAClC,sBAAO;wBAEX,IAAI,CAAC,CAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,WAAW,CAAA;4BACxC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;wBAE7E,MAAM,GAAG,sBAAW,CAAC,YAAY,EAAE,CAAC;wBAC1C,KAAA,CAAA,KAAA,QAAQ,CAAA,CAAC,IAAI,CAAA;oFACD,MAAM,CAAC,cAAc,kOAIP,CAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,WAAW,EAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,0EACxH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uCACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,uCACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,sEAEpB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;wBAGlC,qBAAM,wBAAwB,EAAE,EAAA;;wBAb9C,cAAc,cAaA,SAAgC,wCAChC,gBAAgB,CAAC,YAAY,CAAC,2DAEhC,EACX,CAAC;;;;aACL;KACJ,CAAA;AACL,CAAC,CAAA;AAhCY,QAAA,cAAc,kBAgC1B;AAED,SAAS,gBAAgB,CAAC,YAA0B;;IAChD,IAAI,CAAC,CAAA,MAAA,YAAY,CAAC,aAAa,0CAAE,WAAW,CAAA;QACxC,OAAO;IAEX,IAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAyB,UAAsC,EAAtC,KAAA,YAAY,CAAC,aAAa,CAAC,WAAW,EAAtC,cAAsC,EAAtC,IAAsC;QAA1D,IAAM,UAAU,SAAA;QACjB,UAAU,CAAC,IAAI,CAAC,uBAAgB,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,gBAAa,CAAC,CAAC;KAAA;IAEpF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAe,wBAAwB;;;;;;oBAC7B,OAAO,GAAG,IAAA,qCAAwB,GAAE,CAAC;oBACrC,UAAU,GAAa,EAAE,CAAC;0BACJ,EAAP,mBAAO;;;yBAAP,CAAA,qBAAO,CAAA;oBAAjB,MAAM;oBACb,KAAA,CAAA,KAAA,UAAU,CAAA,CAAC,IAAI,CAAA;;oBAAY,qBAAM,MAAM,CAAC,MAAM,EAAE,EAAA;;oBAAhD,cAAgB,sBAAW,SAAqB,eAAW,EAAC,CAAC;;;oBAD5C,IAAO,CAAA;;wBAG5B,sBAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;;;;CAChC"}
1
+ {"version":3,"file":"reactApp.js","sourceRoot":"","sources":["../../../src/routes/reactApp.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import '@proteinjs/db';
5
5
  import '@proteinjs/reflection';
6
6
  import '@proteinjs/server-api';
7
7
  import '@proteinjs/util';
8
+ import '@proteinjs/util-node';
8
9
  import 'body-parser';
9
10
  import 'buffer';
10
11
  import 'compression';
@@ -33,7 +34,7 @@ import 'webpack-hot-middleware';
33
34
 
34
35
  /** Generate Source Graph */
35
36
 
36
- const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"NodeSessionDataStorage\",\"filePath\":\"/Users/brentbahry/workspaces/n3xa/packages/proteinjs/packages/server/packages/server/src/NodeSessionDataStorage.ts\",\"qualifiedName\":\"@proteinjs/server/NodeSessionDataStorage\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"HOOK_INITIALIZED\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"SESSION_DATA\",\"type\":{\"packageName\":\"@proteinjs/server\",\"name\":\"{[id: string]: SessionData}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server/{[id: string]: SessionData}\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"environment\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"setData\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"data\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getData\",\"returnType\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"initHook\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionDataStorage\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionDataStorage\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/server-api/SessionDataStorage\"},{\"v\":\"/string\"},{\"v\":\"@proteinjs/server/healthCheck\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"healthCheck\",\"filePath\":\"/Users/brentbahry/workspaces/n3xa/packages/proteinjs/packages/server/packages/server/src/routes/healthCheck.ts\",\"qualifiedName\":\"@proteinjs/server/healthCheck\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/server-api/Route\"}],\"edges\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"w\":\"@proteinjs/server-api/SessionDataStorage\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/server/healthCheck\",\"w\":\"@proteinjs/server-api/Route\",\"value\":\"has type\"}]}";
37
+ const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"NodeSessionDataStorage\",\"filePath\":\"/home/runner/work/server/server/packages/server/src/NodeSessionDataStorage.ts\",\"qualifiedName\":\"@proteinjs/server/NodeSessionDataStorage\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"HOOK_INITIALIZED\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"SESSION_DATA\",\"type\":{\"packageName\":\"@proteinjs/server\",\"name\":\"{[id: string]: SessionData}\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server/{[id: string]: SessionData}\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":true,\"visibility\":\"private\"},{\"name\":\"environment\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"setData\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"data\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getData\",\"returnType\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionData\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionData\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[]},{\"name\":\"initHook\",\"returnType\":null,\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"SessionDataStorage\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/SessionDataStorage\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/server-api/SessionDataStorage\"},{\"v\":\"/string\"},{\"v\":\"@proteinjs/server/healthCheck\",\"value\":{\"packageName\":\"@proteinjs/server\",\"name\":\"healthCheck\",\"filePath\":\"/home/runner/work/server/server/packages/server/src/routes/healthCheck.ts\",\"qualifiedName\":\"@proteinjs/server/healthCheck\",\"type\":{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/server-api\",\"name\":\"Route\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/server-api/Route\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/server-api/Route\"}],\"edges\":[{\"v\":\"@proteinjs/server/NodeSessionDataStorage\",\"w\":\"@proteinjs/server-api/SessionDataStorage\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/server/healthCheck\",\"w\":\"@proteinjs/server-api/Route\",\"value\":\"has type\"}]}";
37
38
 
38
39
 
39
40
  /** Generate Source Links */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/server",
3
- "version": "1.0.17",
3
+ "version": "1.1.0",
4
4
  "description": "A server impl",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -24,8 +24,9 @@
24
24
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
25
25
  "@proteinjs/db": "1.0.11",
26
26
  "@proteinjs/reflection": "1.0.7",
27
- "@proteinjs/server-api": "^1.0.8",
27
+ "@proteinjs/server-api": "^1.1.0",
28
28
  "@proteinjs/util": "1.1.0",
29
+ "@proteinjs/util-node": "1.2.0",
29
30
  "body-parser": "1.19.0",
30
31
  "buffer": "6.0.3",
31
32
  "compression": "1.7.4",
@@ -66,5 +67,6 @@
66
67
  "@types/webpack-hot-middleware": "2.25.9"
67
68
  },
68
69
  "main": "./dist/generated/index.js",
69
- "types": "./dist/generated/index.d.ts"
70
- }
70
+ "types": "./dist/generated/index.d.ts",
71
+ "gitHead": "7ddcd8abe723f52cd645851d93dcf6b5f7b1e17e"
72
+ }
package/src/loadRoutes.ts CHANGED
@@ -40,7 +40,7 @@ export function loadDefaultStarRoute(routes: Route[], server: express.Express, c
40
40
  }
41
41
  }
42
42
 
43
- if (!starRouteSpecified && config.staticContent?.bundlePaths) {
43
+ if (!starRouteSpecified && (config.staticContent?.bundlePaths || config.staticContent?.bundlesDir)) {
44
44
  const reactApp = createReactApp(config);
45
45
  server[reactApp.method](reactApp.path, wrapRoute(reactApp.onRequest, config));
46
46
  }
@@ -1,6 +1,7 @@
1
1
  import path from 'path';
2
2
  import ReactHelmet from 'react-helmet';
3
3
  import { ServerConfig, getServerRenderedScripts } from '@proteinjs/server-api';
4
+ import { Fs } from '@proteinjs/util-node';
4
5
 
5
6
  export const createReactApp = (serverConfig: ServerConfig) => {
6
7
  return {
@@ -10,8 +11,8 @@ export const createReactApp = (serverConfig: ServerConfig) => {
10
11
  if (request.path.startsWith('/static'))
11
12
  return;
12
13
 
13
- if (!serverConfig.staticContent?.bundlePaths)
14
- throw new Error(`ServerConfig.bundlePath must be provided to serve react app`);
14
+ if (!(serverConfig.staticContent?.bundlePaths || serverConfig.staticContent?.bundlesDir))
15
+ throw new Error(`ServerConfig.bundlePath or ServerConfig.bundlesDir must be provided to serve a react app`);
15
16
 
16
17
  const helmet = ReactHelmet.renderStatic();
17
18
  response.send(`<!DOCTYPE html>
@@ -28,7 +29,7 @@ export const createReactApp = (serverConfig: ServerConfig) => {
28
29
  <div id='app'></div>
29
30
  <script>proteinjs = {};</script>
30
31
  ${await serverRenderedScriptTags()}
31
- ${bundleScriptTags(serverConfig)}
32
+ ${await bundleScriptTags(serverConfig)}
32
33
  </body>
33
34
  </html>`
34
35
  );
@@ -36,13 +37,22 @@ export const createReactApp = (serverConfig: ServerConfig) => {
36
37
  }
37
38
  }
38
39
 
39
- function bundleScriptTags(serverConfig: ServerConfig) {
40
- if (!serverConfig.staticContent?.bundlePaths)
40
+ async function bundleScriptTags(serverConfig: ServerConfig) {
41
+ if (!(serverConfig.staticContent?.bundlePaths || serverConfig.staticContent?.bundlesDir))
41
42
  return;
42
43
 
43
44
  const scriptTags: string[] = [];
44
- for (const bundlePath of serverConfig.staticContent.bundlePaths)
45
- scriptTags.push(`<script src='${path.join('/static/', bundlePath)}'></script>`);
45
+ if (serverConfig.staticContent?.bundlePaths) {
46
+ for (const bundlePath of serverConfig.staticContent.bundlePaths)
47
+ scriptTags.push(`<script src='${path.join('/static/', bundlePath)}'></script>`);
48
+ } else if (serverConfig.staticContent?.bundlesDir && serverConfig.staticContent?.staticContentDir) {
49
+ const resolvedBundlesDir = path.join(serverConfig.staticContent.staticContentDir, serverConfig.staticContent.bundlesDir);
50
+ const filePaths = await Fs.getFilePathsMatchingGlob(resolvedBundlesDir, '**/*.js');
51
+ for (const filePath of filePaths) {
52
+ const relativePath = path.relative(serverConfig.staticContent.staticContentDir, filePath);
53
+ scriptTags.push(`<script src='${path.join('/static/', relativePath)}'></script>`);
54
+ }
55
+ }
46
56
 
47
57
  return scriptTags.join('\n');
48
58
  }