@subjektifylabs/subjektify-watch
v0.0.1
Published
Hot reloading of Subjekt models in your Subjektify project.
Downloads
2
Readme
@subjektifylabs/subjektify-watch
subjektify-watch
is a utility package designed to enable hot reloading of Subjekt models in your Subjektify project. This helps enhance the development experience by providing real-time updates and feedback as you modify your models.
Features
- File Watching: Automatically detect changes in Subjekt model files and reload them.
- Real-time Feedback: Provides instant feedback on model changes to streamline the development process.
- State Preservation: Ensures the current state of the application is preserved when models are reloaded.
Installation
subjektify-watch
is already included in the subjektify-toolbox
package.
Tasks
npx subjektify watch
This command will start watching for changes in Subjekt model files and automatically reload them as needed.
Environment Extensions
subjektify-watch
extends the Subjektify runtime environment by providing additional tasks and configuration options for hot loading.
Usage
To use subjektify-watch
, simply run the following command in your project directory:
npx subjektify watch
Example Configuration
You can customize the file watching process by specifying paths in your subjektify.config.ts
file:
import { SubjektifyConfig } from 'subjektify';
import "@subjektifylabs/subjektify-toolbox";
const config: SubjektifyConfig = {
namespace: "my.dapp",
version: "1.0.0",
license: "MIT",
watch: {
paths: ["src/models"],
}
};
export default config;
In this example, the watch
property specifies an array of paths that will be monitored for changes. When changes are detected, the corresponding models will be reloaded automatically, ensuring a seamless development experience.
How it Works
- File Watching: The package uses a file-watching library to monitor specified directories for changes to Subjekt model files.
- Model Parsing and Validation: When a change is detected, the modified files are re-parsed and validated to ensure correctness.
- Dynamic Model Injection: The updated models are dynamically injected into the running application without requiring a full restart.
- State Management: The current state of the application is preserved and synchronized with the updated models to maintain consistency.