greybel-interpreter 1.6.7 → 1.6.9

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/cps.js CHANGED
@@ -21,6 +21,7 @@ const call_1 = __importDefault(require("./operations/call"));
21
21
  const chunk_1 = __importDefault(require("./operations/chunk"));
22
22
  const continue_1 = __importDefault(require("./operations/continue"));
23
23
  const debugger_statement_1 = __importDefault(require("./operations/debugger-statement"));
24
+ const envar_1 = __importDefault(require("./operations/envar"));
24
25
  const evaluate_1 = __importDefault(require("./operations/evaluate"));
25
26
  const for_1 = __importDefault(require("./operations/for"));
26
27
  const function_1 = __importDefault(require("./operations/function"));
@@ -38,7 +39,6 @@ const not_1 = __importDefault(require("./operations/not"));
38
39
  const resolve_1 = __importDefault(require("./operations/resolve"));
39
40
  const return_1 = __importDefault(require("./operations/return"));
40
41
  const while_1 = __importDefault(require("./operations/while"));
41
- const envar_1 = __importDefault(require("./operations/envar"));
42
42
  class CPSContext {
43
43
  constructor(target, handler) {
44
44
  this.target = target;
@@ -1,18 +1,19 @@
1
+ import { CancelablePromise } from 'cancelable-promise';
1
2
  export interface KeyEvent {
2
3
  keyCode: number;
3
4
  code: string;
4
5
  }
5
6
  export declare abstract class OutputHandler {
6
- abstract print(message: string): void;
7
- abstract progress(timeout: number): Promise<void>;
8
- abstract waitForInput(isPassword: boolean): Promise<string>;
9
- abstract waitForKeyPress(): Promise<KeyEvent>;
7
+ abstract print(message: string, appendNewLine?: boolean): void;
8
+ abstract progress(timeout: number): CancelablePromise<void>;
9
+ abstract waitForInput(isPassword: boolean): CancelablePromise<string>;
10
+ abstract waitForKeyPress(): CancelablePromise<KeyEvent>;
10
11
  abstract clear(): void;
11
12
  }
12
13
  export declare class DefaultOutputHandler extends OutputHandler {
13
- print(message: string): void;
14
- progress(timeout: number): Promise<void>;
15
- waitForInput(_isPassword: boolean): Promise<string>;
16
- waitForKeyPress(): Promise<KeyEvent>;
14
+ print(message: string, appendNewLine?: boolean): void;
15
+ progress(timeout: number): CancelablePromise<void>;
16
+ waitForInput(_isPassword: boolean): CancelablePromise<string>;
17
+ waitForKeyPress(): CancelablePromise<KeyEvent>;
17
18
  clear(): void;
18
19
  }
@@ -1,23 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultOutputHandler = exports.OutputHandler = void 0;
4
+ const cancelable_promise_1 = require("cancelable-promise");
4
5
  class OutputHandler {
5
6
  }
6
7
  exports.OutputHandler = OutputHandler;
7
8
  class DefaultOutputHandler extends OutputHandler {
8
- print(message) {
9
- console.log(message);
9
+ print(message, appendNewLine = true) {
10
+ if (appendNewLine) {
11
+ process.stdout.write(message + '\n');
12
+ }
13
+ else {
14
+ process.stdout.write(message);
15
+ }
10
16
  }
11
17
  progress(timeout) {
12
- return new Promise((resolve, _reject) => {
13
- setTimeout(resolve, timeout);
18
+ return new cancelable_promise_1.CancelablePromise((resolve, _reject, onCancel) => {
19
+ const timer = setTimeout(resolve, timeout);
20
+ onCancel(() => {
21
+ clearTimeout(timer);
22
+ resolve();
23
+ });
14
24
  });
15
25
  }
16
26
  waitForInput(_isPassword) {
17
- return Promise.resolve('test');
27
+ return cancelable_promise_1.CancelablePromise.resolve('test');
18
28
  }
19
29
  waitForKeyPress() {
20
- return Promise.resolve({
30
+ return cancelable_promise_1.CancelablePromise.resolve({
21
31
  keyCode: 13,
22
32
  code: 'Enter'
23
33
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greybel-interpreter",
3
- "version": "1.6.7",
3
+ "version": "1.6.9",
4
4
  "description": "Interpreter",
5
5
  "main": "dist/index",
6
6
  "typings": "dist/index",
@@ -48,6 +48,7 @@
48
48
  "typescript": "^4.5.4"
49
49
  },
50
50
  "dependencies": {
51
+ "cancelable-promise": "^4.3.1",
51
52
  "greybel-core": "^0.6.7",
52
53
  "greyscript-core": "^0.6.2"
53
54
  },