piral-cli 0.11.8-pre.1620 → 0.11.8

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/lib/common/log.js CHANGED
@@ -53,7 +53,7 @@ function logDebug(message, ...args) {
53
53
  exports.logDebug = logDebug;
54
54
  function logVerbose(message, ...args) {
55
55
  const msg = util_1.format(message, ...args);
56
- logger.log(msg);
56
+ logger.logLevel > 3 && logger.log(msg);
57
57
  return msg;
58
58
  }
59
59
  exports.logVerbose = logVerbose;
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/common/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/common/log.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig } from 'kras';
3
+ import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig, KrasConfiguration } from 'kras';
4
4
  import { Bundler } from '../types';
5
5
  interface Pilet {
6
6
  bundler: Bundler;
@@ -14,7 +14,9 @@ export interface PiletInjectorConfig extends KrasInjectorConfig {
14
14
  }
15
15
  export default class PiletInjector implements KrasInjector {
16
16
  config: PiletInjectorConfig;
17
- constructor(options: PiletInjectorConfig, _: any, core: EventEmitter);
17
+ private port;
18
+ private protocol;
19
+ constructor(options: PiletInjectorConfig, config: KrasConfiguration, core: EventEmitter);
18
20
  get active(): boolean;
19
21
  set active(value: boolean);
20
22
  get name(): string;
@@ -4,8 +4,10 @@ const path_1 = require("path");
4
4
  const fs_1 = require("fs");
5
5
  const external_1 = require("../external");
6
6
  class PiletInjector {
7
- constructor(options, _, core) {
7
+ constructor(options, config, core) {
8
8
  this.config = options;
9
+ this.port = config.port;
10
+ this.protocol = config.ssl ? 'https' : 'http';
9
11
  const { pilets, api } = options;
10
12
  const cbs = {};
11
13
  core.on('user-connected', e => {
@@ -45,7 +47,7 @@ class PiletInjector {
45
47
  return {
46
48
  name: def.name,
47
49
  version: def.version,
48
- link: `${api}/${index}/${file}`,
50
+ link: `${this.protocol}://localhost:${this.port}${api}/${index}/${file}`,
49
51
  hash: bundler.bundle.hash,
50
52
  requireRef,
51
53
  noCache: true,
@@ -103,9 +105,12 @@ class PiletInjector {
103
105
  if (fs_1.existsSync(target) && fs_1.statSync(target).isFile()) {
104
106
  return this.sendFile(target, req.url);
105
107
  }
106
- else {
108
+ else if (req.url !== '/index.html') {
107
109
  return this.handle(Object.assign(Object.assign({}, req), { url: '/index.html' }));
108
110
  }
111
+ else {
112
+ return undefined;
113
+ }
109
114
  }
110
115
  else if (req.target === api) {
111
116
  return this.sendResponse(path, req.url);
@@ -1 +1 @@
1
- {"version":3,"file":"pilet.js","sourceRoot":"","sources":["../../src/injectors/pilet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pilet.js","sourceRoot":"","sources":["../../src/injectors/pilet.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,6 @@ export default class PiralInjector implements KrasInjector {
11
11
  get name(): string;
12
12
  getOptions(): {};
13
13
  setOptions(): void;
14
- sendResponse(path: string, target: string, dir: string, url: string): KrasResponse;
14
+ sendResponse(path: string, target: string, dir: string, url: string, recursionDepth?: number): KrasResponse;
15
15
  handle(req: KrasRequest): KrasResponse;
16
16
  }
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const path_1 = require("path");
4
4
  const fs_1 = require("fs");
5
5
  const external_1 = require("../external");
6
+ /**
7
+ * The maximum amount of retries when sending a response
8
+ */
9
+ const maxRetrySendResponse = 4;
6
10
  class PiralInjector {
7
11
  constructor(options) {
8
12
  this.config = options;
@@ -20,11 +24,14 @@ class PiralInjector {
20
24
  return {};
21
25
  }
22
26
  setOptions() { }
23
- sendResponse(path, target, dir, url) {
27
+ sendResponse(path, target, dir, url, recursionDepth = 0) {
28
+ if (recursionDepth > maxRetrySendResponse) {
29
+ return undefined;
30
+ }
24
31
  if (!path || !fs_1.existsSync(target) || !fs_1.statSync(target).isFile()) {
25
32
  const { bundler } = this.config;
26
33
  const newTarget = path_1.join(bundler.bundle.dir, bundler.bundle.name);
27
- return this.sendResponse(bundler.bundle.name, newTarget, dir, url);
34
+ return this.sendResponse(bundler.bundle.name, newTarget, dir, url, recursionDepth + 1);
28
35
  }
29
36
  return {
30
37
  injector: { name: this.name },
@@ -1 +1 @@
1
- {"version":3,"file":"piral.js","sourceRoot":"","sources":["../../src/injectors/piral.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,2BAAwD;AAExD,0CAAmC;AAOnC,MAAqB,aAAa;IAGhC,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,KAAI,CAAC;IAEf,YAAY,CAAC,IAAY,EAAE,MAAc,EAAE,GAAW,EAAE,GAAW;QACjE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAU,CAAC,MAAM,CAAC,IAAI,CAAC,aAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,SAAS,GAAG,WAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACpE;QAED,OAAO;YACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,EAAE;gBACP,cAAc,EAAE,eAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,eAAe,EAAE,qCAAqC;gBACtD,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACrB,GAAG;YACH,OAAO,EAAE,iBAAY,CAAC,MAAM,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM,MAAM,GAAG,WAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAClF;IACH,CAAC;CACF;AAtDD,gCAsDC"}
1
+ {"version":3,"file":"piral.js","sourceRoot":"","sources":["../../src/injectors/piral.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,2BAAwD;AAExD,0CAAmC;AAGnC;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAM/B,MAAqB,aAAa;IAGhC,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,KAAI,CAAC;IAEf,YAAY,CAAC,IAAY,EAAE,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,cAAc,GAAG,CAAC;QACrF,IAAI,cAAc,GAAG,oBAAoB,EAAE;YACzC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,IAAI,IAAI,CAAC,eAAU,CAAC,MAAM,CAAC,IAAI,CAAC,aAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,SAAS,GAAG,WAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;SACxF;QAED,OAAO;YACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,EAAE;gBACP,cAAc,EAAE,eAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,eAAe,EAAE,qCAAqC;gBACtD,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACrB,GAAG;YACH,OAAO,EAAE,iBAAY,CAAC,MAAM,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM,MAAM,GAAG,WAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAClF;IACH,CAAC;CACF;AA1DD,gCA0DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-cli",
3
- "version": "0.11.8-pre.1620",
3
+ "version": "0.11.8",
4
4
  "description": "The standard CLI for creating and building a Piral instance or a Pilet.",
5
5
  "keywords": [
6
6
  "portal",
@@ -72,5 +72,5 @@
72
72
  "typescript": "^3.8.3",
73
73
  "yargs": "^15.3.1"
74
74
  },
75
- "gitHead": "e027010f23a5a9fbda79a2c6443d08a378bad1d0"
75
+ "gitHead": "617df77a2d553e455ec66b04936967ff3ce21a47"
76
76
  }
package/src/common/log.ts CHANGED
@@ -59,7 +59,7 @@ export function logDebug(message: string, ...args: Array<string | number | boole
59
59
 
60
60
  export function logVerbose(message: string, ...args: Array<string | number | boolean>) {
61
61
  const msg = format(message, ...args);
62
- logger.log(msg);
62
+ logger.logLevel > 3 && logger.log(msg);
63
63
  return msg;
64
64
  }
65
65
 
@@ -1,17 +1,134 @@
1
- import PiletInjector from './pilet';
2
1
  import { EventEmitter } from 'events';
2
+ import { KrasRequest } from 'kras';
3
+ import PiletInjector from './pilet';
4
+
5
+ const optionsMock = {
6
+ pilets: [],
7
+ api: '',
8
+ app: '',
9
+ active: true,
10
+ };
11
+
12
+ const configMock: any = {
13
+ port: 1234,
14
+ };
3
15
 
4
16
  describe('Piral-CLI piral injector', () => {
5
17
  it('PiletInjector is active when configured', () => {
6
- const config = {
18
+ const core = new EventEmitter();
19
+ const injector = new PiletInjector(optionsMock, configMock, core);
20
+ expect(injector.active).toBeTruthy();
21
+ });
22
+
23
+ it('PiletInjector properties can be accessed', () => {
24
+ // Arrange
25
+ const core = new EventEmitter();
26
+ const injector = new PiletInjector(optionsMock, configMock, core);
27
+
28
+ // Act
29
+ injector.active = false;
30
+ injector.name;
31
+ injector.getOptions();
32
+ //injector.getMetaOf(0);
33
+ injector.getMeta();
34
+
35
+ // Assert
36
+ expect(injector.active).toBeFalsy();
37
+ });
38
+
39
+ it('PiletInjector does not send empty content', () => {
40
+ // Arrange
41
+ const core = new EventEmitter();
42
+ const injector = new PiletInjector(optionsMock, configMock, core);
43
+ const target = '';
44
+ const url = '';
45
+
46
+ let hasFailed = false;
47
+
48
+ // Act
49
+ try {
50
+ injector.sendFile(target, url); // this file does not exist
51
+ } catch {
52
+ hasFailed = true;
53
+ }
54
+ // Assert
55
+ expect(hasFailed).toBeTruthy();
56
+ });
57
+
58
+ it('PiletInjector does not crash when sending invalid content', () => {
59
+ // Arrange
60
+ const core = new EventEmitter();
61
+ const injector = new PiletInjector(optionsMock, configMock, core);
62
+
63
+ // Act
64
+ const res = injector.sendContent('someContent', 'application/json', 'invalidUrl');
65
+
66
+ // Assert
67
+ expect(res).not.toBeUndefined();
68
+ });
69
+
70
+ it('PiletInjector can send reponse and fails with invalid path', () => {
71
+ // Arrange
72
+ const core = new EventEmitter();
73
+ const injector = new PiletInjector(optionsMock, configMock, core);
74
+
75
+ // Act
76
+ const res = injector.sendResponse('some/nice/invalid/path', 'localhost:1234');
77
+
78
+ // Assert
79
+ expect(res).toBeUndefined();
80
+ });
81
+
82
+ it('PiletInjector wont crash on mocked request', () => {
83
+ // Arrange
84
+ const optionsMock = {
7
85
  pilets: [],
8
- port: 1234,
9
- api: '',
86
+ api: 'http://someFakeApi:1234',
10
87
  app: '',
11
88
  active: true,
12
89
  };
90
+
13
91
  const core = new EventEmitter();
14
- const injector = new PiletInjector(config, undefined, core);
15
- expect(injector.active).toBeTruthy();
92
+ const injector = new PiletInjector(optionsMock, configMock, core);
93
+ const request: KrasRequest = {
94
+ content: 'someFakeContent',
95
+ headers: {},
96
+ method: 'PUT',
97
+ query: {},
98
+ target: optionsMock.api,
99
+ url: 'localhost:1234',
100
+ };
101
+
102
+ // Act
103
+ const res = injector.handle(request);
104
+
105
+ // Assert
106
+ expect(res).toBeUndefined();
107
+ });
108
+
109
+ it('PiletInjector wont crash on request with no target', () => {
110
+ // Arrange
111
+ const optionsMock = {
112
+ pilets: [],
113
+ api: 'http://someFakeApi:1234',
114
+ app: '',
115
+ active: true,
116
+ };
117
+ const core = new EventEmitter();
118
+ const injector = new PiletInjector(optionsMock, configMock, core);
119
+ const request: KrasRequest = {
120
+ content: 'someFakeContent',
121
+ headers: {},
122
+ method: 'PUT',
123
+ query: {},
124
+ target: '',
125
+ url: 'localhost:1234',
126
+ };
127
+
128
+ // Act
129
+ const res = injector.handle(request);
130
+
131
+ // Assert
132
+ expect(res).toBeUndefined();
16
133
  });
17
134
  });
@@ -1,7 +1,7 @@
1
1
  import { join } from 'path';
2
2
  import { EventEmitter } from 'events';
3
3
  import { readFileSync, existsSync, statSync } from 'fs';
4
- import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig } from 'kras';
4
+ import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig, KrasConfiguration } from 'kras';
5
5
  import { mime } from '../external';
6
6
  import { Bundler } from '../types';
7
7
 
@@ -11,6 +11,8 @@ interface Pilet {
11
11
  requireRef?: string;
12
12
  }
13
13
 
14
+ type Protocol = 'https' | 'http';
15
+
14
16
  export interface PiletInjectorConfig extends KrasInjectorConfig {
15
17
  pilets: Array<Pilet>;
16
18
  api: string;
@@ -19,9 +21,13 @@ export interface PiletInjectorConfig extends KrasInjectorConfig {
19
21
 
20
22
  export default class PiletInjector implements KrasInjector {
21
23
  public config: PiletInjectorConfig;
24
+ private port: number;
25
+ private protocol: Protocol;
22
26
 
23
- constructor(options: PiletInjectorConfig, _: any, core: EventEmitter) {
27
+ constructor(options: PiletInjectorConfig, config: KrasConfiguration, core: EventEmitter) {
24
28
  this.config = options;
29
+ this.port = config.port;
30
+ this.protocol = config.ssl ? 'https' : 'http';
25
31
  const { pilets, api } = options;
26
32
  const cbs = {};
27
33
 
@@ -72,7 +78,7 @@ export default class PiletInjector implements KrasInjector {
72
78
  return {
73
79
  name: def.name,
74
80
  version: def.version,
75
- link: `${api}/${index}/${file}`,
81
+ link: `${this.protocol}://localhost:${this.port}${api}/${index}/${file}`,
76
82
  hash: bundler.bundle.hash,
77
83
  requireRef,
78
84
  noCache: true,
@@ -139,11 +145,13 @@ export default class PiletInjector implements KrasInjector {
139
145
 
140
146
  if (existsSync(target) && statSync(target).isFile()) {
141
147
  return this.sendFile(target, req.url);
142
- } else {
148
+ } else if (req.url !== '/index.html') {
143
149
  return this.handle({
144
150
  ...req,
145
151
  url: '/index.html',
146
152
  });
153
+ } else {
154
+ return undefined;
147
155
  }
148
156
  } else if (req.target === api) {
149
157
  return this.sendResponse(path, req.url);
@@ -1,4 +1,20 @@
1
- import PiralInjector from './piral';
1
+ import PiralInjector, { PiralInjectorConfig } from './piral';
2
+ import { KrasRequest, KrasResult } from 'kras';
3
+
4
+ const bundlerMock = {
5
+ pending: true,
6
+ bundle: {
7
+ dir: '',
8
+ hash: '',
9
+ name: 'someName',
10
+ },
11
+ on() {},
12
+ off() {},
13
+ start() {},
14
+ ready() {
15
+ return Promise.resolve();
16
+ },
17
+ };
2
18
 
3
19
  describe('Piral-CLI piral injector', () => {
4
20
  it('PiralInjector is active when configured', () => {
@@ -23,4 +39,60 @@ describe('Piral-CLI piral injector', () => {
23
39
  const injector = new PiralInjector(config);
24
40
  expect(injector.active).toBeTruthy();
25
41
  });
42
+
43
+ it('PiralInjector properties can be accessed', () => {
44
+ // Arrange
45
+ const config = {
46
+ bundler: bundlerMock,
47
+ active: true,
48
+ };
49
+ const injector = new PiralInjector(config);
50
+
51
+ // Act
52
+ injector.active = false;
53
+ injector.name;
54
+ injector.getOptions();
55
+ injector.config;
56
+
57
+ // Assert
58
+ expect(injector.active).toBeFalsy();
59
+ });
60
+
61
+ it('PiralInjector can send reponse and fails with invalid path', () => {
62
+ // Arrange
63
+ const config = {
64
+ bundler: bundlerMock,
65
+ active: true,
66
+ };
67
+ const injector = new PiralInjector(config);
68
+
69
+ // Act
70
+ const res = injector.sendResponse('some/nice/invalid/path', 'sometarget.file', 'someDir', 'localhost:1234');
71
+
72
+ // Assert
73
+ expect(res).toBeUndefined();
74
+ });
75
+
76
+ it('PiralInjector wont crash when handling an invalid request', async () => {
77
+ // Arrange
78
+ const config = {
79
+ bundler: bundlerMock,
80
+ active: true,
81
+ };
82
+ const injector = new PiralInjector(config);
83
+ const request: KrasRequest = {
84
+ content: 'someFakeContent',
85
+ headers: {},
86
+ method: 'PUT',
87
+ query: {},
88
+ target: '',
89
+ url: 'localhost:1234',
90
+ };
91
+
92
+ // Act
93
+ const res = await (injector.handle(request) as Promise<KrasResult>);
94
+
95
+ // Assert
96
+ expect(res).toBeUndefined();
97
+ });
26
98
  });
@@ -4,6 +4,11 @@ import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig } from 'kra
4
4
  import { mime } from '../external';
5
5
  import { Bundler } from '../types';
6
6
 
7
+ /**
8
+ * The maximum amount of retries when sending a response
9
+ */
10
+ const maxRetrySendResponse = 4;
11
+
7
12
  export interface PiralInjectorConfig extends KrasInjectorConfig {
8
13
  bundler: Bundler;
9
14
  }
@@ -32,11 +37,15 @@ export default class PiralInjector implements KrasInjector {
32
37
 
33
38
  setOptions() {}
34
39
 
35
- sendResponse(path: string, target: string, dir: string, url: string): KrasResponse {
40
+ sendResponse(path: string, target: string, dir: string, url: string, recursionDepth = 0): KrasResponse {
41
+ if (recursionDepth > maxRetrySendResponse) {
42
+ return undefined;
43
+ }
44
+
36
45
  if (!path || !existsSync(target) || !statSync(target).isFile()) {
37
46
  const { bundler } = this.config;
38
47
  const newTarget = join(bundler.bundle.dir, bundler.bundle.name);
39
- return this.sendResponse(bundler.bundle.name, newTarget, dir, url);
48
+ return this.sendResponse(bundler.bundle.name, newTarget, dir, url, recursionDepth + 1);
40
49
  }
41
50
 
42
51
  return {