+11
-7
@@ -16,2 +16,3 @@ "use strict"; | ||
| stdout: [], | ||
| state: [] | ||
| }; | ||
@@ -37,2 +38,3 @@ let _middleware = (data, emit) => emit(data); | ||
| internalRender(); | ||
| listeners.state.forEach(emitState => emitState(toExternalState(internalState))); | ||
| }; | ||
@@ -43,11 +45,7 @@ /* ---- */ | ||
| state: { | ||
| get: () => Object.freeze({ | ||
| text: internalState.text.value, | ||
| input: internalState.inputField === null | ||
| ? null | ||
| : (({ startPos: position, caretOffset, value }) => Object.freeze({ position, caretOffset, value }))(internalState.inputField) | ||
| }), | ||
| get: () => toExternalState(internalState), | ||
| set: stateOrReducer => internalOnState(typeof stateOrReducer === "function" | ||
| ? stateOrReducer(terminal.state.get()) | ||
| : stateOrReducer) | ||
| : stateOrReducer), | ||
| listen: utils_1.bindMethod(listeners.state, "push") | ||
| }, | ||
@@ -83,2 +81,8 @@ io: { | ||
| }; | ||
| const toExternalState = (internalState) => Object.freeze({ | ||
| text: internalState.text.value, | ||
| input: internalState.inputField === null | ||
| ? null | ||
| : (({ startPos: position, caretOffset, value }) => Object.freeze({ position, caretOffset, value }))(internalState.inputField) | ||
| }); | ||
| const toStdout = (state) => utils_1.ansiEscapes.cursorMove(0, 0) + | ||
@@ -85,0 +89,0 @@ utils_1.ansiEscapes.clearScreen + |
@@ -7,2 +7,3 @@ import { DeepReadonly } from "./utils"; | ||
| set: (stateOrReducer: TerminalState | ((state: DeepReadonly<TerminalState>) => TerminalState)) => void; | ||
| listen: (listener: TerminalStateListener) => void; | ||
| }; | ||
@@ -46,2 +47,3 @@ io: { | ||
| export declare type StdoutListener = (data: string) => void; | ||
| export declare type TerminalStateListener = (state: TerminalState) => void; | ||
| export declare type KeypressMiddleware = (data: KeypressData, emit: (data: KeypressData) => void) => void; | ||
@@ -48,0 +50,0 @@ export declare type XtermTerminal = { |
+1
-1
| { | ||
| "name": "staerm", | ||
| "version": "2.0.2", | ||
| "version": "2.1.0", | ||
| "description": "Stateful, declarative & predictive library to build reactive terminal UIs", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
15840
2.11%395
1.54%0
-100%