UNPKG

vasille-jsx

Version:

The same framework which is designed to build bulletproof frontends (JSX components)

174 lines (125 loc) 5.37 kB
# Steel Frame ![Vasille.js logo](https://raw.githubusercontent.com/vasille-js/vasille-js/refs/heads/v5/doc/img/logo.png) `SteelFrameKit` is a front-end development kit, which is developed to provide fault tolerant web applications. [![npm](https://img.shields.io/npm/v/steel-frame?style=round-square)](https://www.npmjs.com/package/steel-frame) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/vasille-js/steel-frame) [![Coverage Status](https://coveralls.io/repos/github/vasille-js/steel-frame/badge.svg?branch=v5)](https://coveralls.io/github/vasille-js/steel-frame?branch=v5) ## Table of content - [Steel Frame](#steel-frame) - [Table of content](#table-of-content) - [Installation](#installation) - [How to use SteelFramekit](#how-to-use-steelframekit) - [Full documentation:](#full-documentation) - [Examples](#examples) - [How SAFE is SteelFrameKit](#how-safe-is-steelframekit) - [How INTUITIVE is SteelFrameKit](#how-intuitive-is-steelframekit) - [How POWERFUL is SteelFrameKit](#how-powerful-is-steelframekit) - [Road map](#road-map) - [Change log](#change-log) - [5.1](#51) - [5.0](#50) - [4.0 - 4.3](#40---43) - [3.0 - 3.2](#30---32) - [2.0 - 2.3](#20---23) - [1.0 - 1.2](#10---12) - [Questions](#questions) <hr> ## Installation ``` npm install steel-frame --save ``` ## How to use SteelFramekit Create an app from a template ```bash $ npm create steel-frame ``` ### Full documentation: - [Learn `SteelFrameKit` in 5 minutes](https://github.com/vasille-js/vasille-js/blob/v5/doc/V4-API.md) - [Router Documentation](https://github.com/vasille-js/vasille-js/blob/v5/doc/Router-API.md) - [Compostion functions](https://github.com/vasille-js/vasille-js/blob/v5/doc/Compositions.md) - [Dependency injection](https://github.com/vasille-js/vasille-js/blob/v5/doc/Context.md) ### Examples - [TypeScript Example](https://github.com/vasille-js/example-typescript) - [JavaScript Example](https://github.com/vasille-js/example-javascript) <hr> ## How SAFE is SteelFrameKit The safe of your application is ensured by - `100%` coverage of code by unit tests. Each function, each branch is working as designed. - OOP, DRY, KISS and SOLID principles are applied. - `strong typing` makes your code safe. All entities of `SteelFrameKit` core library are strongly typed, including: - data fields & properties. - computed properties (function parameters and result). - methods. - events (defined handlers & event emit). - DOM events & DOM operation (attributing, styling, etc.). - slots of components. - references to children. - No asynchronous code, when the line of code is executed, the DOM and reactive things are already synced. ## How INTUITIVE is SteelFrameKit There is the "Hello World": ```typescript jsx import { compose, mount } from "steel-frame"; const App = compose(() => { <p>Hello world</p>; }); mount(document.body, App, {}); ``` ## How POWERFUL is SteelFrameKit All of these are supported: - Components. - Reactive values (observables). - Inline computed values. - Multiline computed values. - HTML tags. - Component custom slots. - 2-way data binding in components. - Logic block (if, else). - Loops (array, map, set). - Dependency injection. <hr> ## Road map - [x] `100%` Test Coverage for core Library v3. - [x] Develop the `JSX` library. - [x] `100%` Test Coverage for the JSX library. - [x] Develop the `Babel Plugin`. - [x] `100%` Test Coverage fot babel plugin. - [x] Add CSS support (define styles in components). - [x] Add router. - [x] Add SSG (static site generation). - [ ] Develop tools extension for debugging (WIP). - [ ] Add SSR (server side rendering). ## Change log We respect semantic versioning: - A major version is increased when we make incompatible API changes. - A minor version is increased when we add functionality. - Patch version is increased when we fix bugs. ### 5.1 Add support for web components compile target `web build components`. _Web components as custom tags are supported in any version._ ### 5.0 - Add support for context and dependencies injection. - New developement direction: `fault tolerant`. - Renamed to `steel-frame`. **[API change]** - Removed `forward` and `backward` functions. **[API change]** - Removed `Debug` component. **[API change]** ### 4.0 - 4.3 - Initial version of the framework with file based routing and building scripts (`web dev` and `web build spa`). - Reactive values naming switched to `$` prefix. **[API change]** - `4.1` Added SSG (static site generation) as build option `web build static`. - `4.2` Add support for inlined conditions in JSX, binary `&&` and ternary `?:` operator. - `4.3` Add new function `safe` which make functions safe, errors are reported automatically. ### 3.0 - 3.2 - Switch to a babel plugin to compile components code. **[API change]** - 100% of the code has been covered with unit tests. - New developement direction: `keep it simple`. ### 2.0 - 2.3 - Introduces components compilation via a typescript plugin. **[API change]** - New developement direction: `write less, do more`. ### 1.0 - 1.2 - Initial version of a core library. - Developemnt direction: `performance-first`. ## Questions If you have questions, feel free to contact the maintainer of the project: - [Author's Email](mailto:vas.lixcode@gmail.com)