speedly 2.0.23 → 2.0.25

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.
@@ -4,7 +4,12 @@ type InitConfig = {
4
4
  homeHandler?: boolean;
5
5
  errorHandler?: boolean;
6
6
  jsonParser?: boolean;
7
- documentation?: boolean;
7
+ documentation?: boolean | {
8
+ servers: {
9
+ url: string;
10
+ description?: string;
11
+ }[];
12
+ };
8
13
  urlEncodedParser?: boolean;
9
14
  cookieParser?: boolean;
10
15
  staticFiles?: boolean;
@@ -39,7 +39,9 @@ function speedly(config = {}) {
39
39
  console.log("init", 48, fs_1.default.existsSync(path_1.default.join(process.cwd(), "src/module")));
40
40
  if (finalConfig.documentation &&
41
41
  fs_1.default.existsSync(path_1.default.join(process.cwd(), "src/module")))
42
- (0, document_1.default)(app, path_1.default.join(process.cwd(), "src/module"));
42
+ (0, document_1.default)(app, path_1.default.join(process.cwd(), "src/module"), finalConfig.documentation === true
43
+ ? undefined
44
+ : finalConfig.documentation.servers);
43
45
  if (finalConfig.staticFiles)
44
46
  app.use("/static", express_1.default.static("public"));
45
47
  if (finalConfig.homeHandler) {
@@ -1,2 +1,5 @@
1
1
  import { Express } from "express";
2
- export default function swaggerLoader(app: Express, baseDir?: string): void;
2
+ export default function swaggerLoader(app: Express, baseDir?: string, servers?: {
3
+ url: string;
4
+ description?: string;
5
+ }[]): void;
@@ -209,7 +209,7 @@ function findRoutersInDir(dir) {
209
209
  }
210
210
  return routers;
211
211
  }
212
- function RouterFetcher(baseDir) {
212
+ function RouterFetcher(baseDir, servers) {
213
213
  const modules = findRoutersInDir(baseDir);
214
214
  let paths = {};
215
215
  const tags = [];
@@ -253,8 +253,8 @@ function RouterFetcher(baseDir) {
253
253
  };
254
254
  }
255
255
  /* ==================== EXPORT HOOK ==================== */
256
- function swaggerLoader(app, baseDir = path_1.default.join(process.cwd(), "src/module")) {
257
- const doc = RouterFetcher(baseDir);
256
+ function swaggerLoader(app, baseDir = path_1.default.join(process.cwd(), "src/module"), servers = [{ url: "/api/v1" }]) {
257
+ const doc = RouterFetcher(baseDir, servers);
258
258
  const theme = new swagger_themes_1.SwaggerTheme();
259
259
  app.use("/docs", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(doc, {
260
260
  customCss: theme.getBuffer(swagger_themes_1.SwaggerThemeNameEnum.DARK),
@@ -13,13 +13,15 @@ const find = (field, ...args) => {
13
13
  };
14
14
  const findStartingWith = (start, rel, field) => {
15
15
  const file = path_1.default.join(start, rel);
16
- const formats = ['.ts', '.js', '.json'];
16
+ const formats = [".ts", ".js", ".json"];
17
17
  for (const [index, format] of formats.entries()) {
18
18
  try {
19
19
  if (fs_1.default.statSync(file + format))
20
20
  return require(file + format)[field] || {};
21
21
  }
22
22
  catch (err) {
23
+ if (err instanceof Error && "code" in err && err.code !== "ENOENT")
24
+ throw err;
23
25
  if (index + 1 != formats.length)
24
26
  continue;
25
27
  if (path_1.default.dirname(start) !== start) {
@@ -30,7 +32,7 @@ const findStartingWith = (start, rel, field) => {
30
32
  }
31
33
  };
32
34
  const configGetter = (configField) => {
33
- const foundData = find(configField, 'speedly.config');
35
+ const foundData = find(configField, "speedly.config");
34
36
  if (foundData)
35
37
  return foundData;
36
38
  return {};
@@ -4,7 +4,12 @@ type InitConfig = {
4
4
  homeHandler?: boolean;
5
5
  errorHandler?: boolean;
6
6
  jsonParser?: boolean;
7
- documentation?: boolean;
7
+ documentation?: boolean | {
8
+ servers: {
9
+ url: string;
10
+ description?: string;
11
+ }[];
12
+ };
8
13
  urlEncodedParser?: boolean;
9
14
  cookieParser?: boolean;
10
15
  staticFiles?: boolean;
@@ -39,7 +39,9 @@ function speedly(config = {}) {
39
39
  console.log("init", 48, fs_1.default.existsSync(path_1.default.join(process.cwd(), "src/module")));
40
40
  if (finalConfig.documentation &&
41
41
  fs_1.default.existsSync(path_1.default.join(process.cwd(), "src/module")))
42
- (0, document_1.default)(app, path_1.default.join(process.cwd(), "src/module"));
42
+ (0, document_1.default)(app, path_1.default.join(process.cwd(), "src/module"), finalConfig.documentation === true
43
+ ? undefined
44
+ : finalConfig.documentation.servers);
43
45
  if (finalConfig.staticFiles)
44
46
  app.use("/static", express_1.default.static("public"));
45
47
  if (finalConfig.homeHandler) {
@@ -1,2 +1,5 @@
1
1
  import { Express } from "express";
2
- export default function swaggerLoader(app: Express, baseDir?: string): void;
2
+ export default function swaggerLoader(app: Express, baseDir?: string, servers?: {
3
+ url: string;
4
+ description?: string;
5
+ }[]): void;
@@ -209,7 +209,7 @@ function findRoutersInDir(dir) {
209
209
  }
210
210
  return routers;
211
211
  }
212
- function RouterFetcher(baseDir) {
212
+ function RouterFetcher(baseDir, servers) {
213
213
  const modules = findRoutersInDir(baseDir);
214
214
  let paths = {};
215
215
  const tags = [];
@@ -253,8 +253,8 @@ function RouterFetcher(baseDir) {
253
253
  };
254
254
  }
255
255
  /* ==================== EXPORT HOOK ==================== */
256
- function swaggerLoader(app, baseDir = path_1.default.join(process.cwd(), "src/module")) {
257
- const doc = RouterFetcher(baseDir);
256
+ function swaggerLoader(app, baseDir = path_1.default.join(process.cwd(), "src/module"), servers = [{ url: "/api/v1" }]) {
257
+ const doc = RouterFetcher(baseDir, servers);
258
258
  const theme = new swagger_themes_1.SwaggerTheme();
259
259
  app.use("/docs", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(doc, {
260
260
  customCss: theme.getBuffer(swagger_themes_1.SwaggerThemeNameEnum.DARK),
@@ -13,13 +13,15 @@ const find = (field, ...args) => {
13
13
  };
14
14
  const findStartingWith = (start, rel, field) => {
15
15
  const file = path_1.default.join(start, rel);
16
- const formats = ['.ts', '.js', '.json'];
16
+ const formats = [".ts", ".js", ".json"];
17
17
  for (const [index, format] of formats.entries()) {
18
18
  try {
19
19
  if (fs_1.default.statSync(file + format))
20
20
  return require(file + format)[field] || {};
21
21
  }
22
22
  catch (err) {
23
+ if (err instanceof Error && "code" in err && err.code !== "ENOENT")
24
+ throw err;
23
25
  if (index + 1 != formats.length)
24
26
  continue;
25
27
  if (path_1.default.dirname(start) !== start) {
@@ -30,7 +32,7 @@ const findStartingWith = (start, rel, field) => {
30
32
  }
31
33
  };
32
34
  const configGetter = (configField) => {
33
- const foundData = find(configField, 'speedly.config');
35
+ const foundData = find(configField, "speedly.config");
34
36
  if (foundData)
35
37
  return foundData;
36
38
  return {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speedly",
3
- "version": "2.0.23",
3
+ "version": "2.0.25",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",