Skip to content

vasille-js/steel-frame

Repository files navigation

Steel Frame

Vasille.js logo

SteelFrameKit is a front-end development kit, which is developed to provide fault tolerant web applications.

npm Ask DeepWiki Coverage Status

Table of content


Installation

npm install steel-frame --save

How to use SteelFramekit

Create an app from a template

$ npm create steel-frame

Full documentation:

Examples


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":

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.

Road map

  • 100% Test Coverage for core Library v3.
  • Develop the JSX library.
  • 100% Test Coverage for the JSX library.
  • Develop the Babel Plugin.
  • 100% Test Coverage fot babel plugin.
  • Add CSS support (define styles in components).
  • Add router.
  • 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.

7.0

  • WIP

6.0 RC (never released)

  • Add QueueRenderer, ArrayView, ArrayModelView, SetModelView, MapModelView, Iterate and ForEach components.
  • const a = [] is not implicit array model, use explicit arrayModel. [API change]

5.0 - 5.1

  • 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]
  • Add support for web components compile target web build components. Web components as custom tags are supported in any version.

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:

About

Monorepo for all NPM Packages source code.

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors