Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Vasille
core library is frontend solution for safe
, performant
& powerful
applications.
npm install vasille --save
npm install vasille-less --save
npm install vasille-magic --save
There are several modes to use Vasille.
Vasille Magic
- perfect for you - highest-level
Vasille Less Library
- no transcriber usage - high-level
Vasille Core Library
- the hard way - low-level
Vasille Magic API
- compiler writes for you - highest-level
Vasille Less Library API
- write less do more - high-level
Vasille Core Library API
- write anything - low-level
The safe of your application is ensured by
100%
coverage of vasille
code by unit tests.
Each function, each branch is working as designed.strong typing
makes your javascript/typescript code safe as C++ code.
All entities of vasille
core library are strongly typed, including:
Can you detect the correct order of console logs in the next code snippet:
import logo from './logo.svg';
import './App.css';
import {useEffect} from 'react';
function C1 ({children}) {
console.log(1);
useEffect(() => {
console.log(2);
});
return <div>{children}</div>;
}
function C2 () {
console.log(3);
useEffect(() => {
console.log(4);
});
return <div></div>;
}
function App() {
return <C1>
<C2/>
</C1>;
}
export default App;
So let's see the same example using Vasille:
interface Options extends FragmentOptions {
slot?: () => void;
}
const C1 : VFragment<Options> = ({slot}) => {
console.log(1);
<div>
<vxSlot model={slot} />
</div>;
console.log(2);
}
const C2: VFragment = () => {
console.log(3);
<div></div>;
console.log(4);
}
const App: VApp = () => {
<C1>
<C2/>
</C1>
}
The C2
function is sent to C1
as function,
so it will be called after console.log(1)
and before console.log(2)
.
No return is present in this case,
then construction like for
& if
can be used in place of [].map()
and ternary operator.
The component function is called once, no recalls on component update.
The secret of Vasille
is a good task decomposition. The core library is composed of
an effective reactive module and a DOM generation engine based on it.
Reactivity module is used to create a model of data. It can contain self-updating values, forward-only shared data. Reactivity of objects/fields can be disabled/enabled manually.
Destroyable
is an entity which has a custom destructor.IValue<T>
is a common interface for any value container, with next members:
get $
gets the encapsulated value.set $
manually update the encapsulated value, if enabled triggers updating of all linked data.disable
disables the reactivity.enable
enables the reactivity and triggers updating of all linked data.Reference<T>
contains a value of type T
.Mirror<T>
syncs self value with another IValue
container, can be used to share a value forward-only.Pointer<T>
same as Mirror
, but it can switch between IValue
target anytime.Expression<ReturnType, Args...>
is a self-updating value.Reactive
is a reactive object which can have multiple reactive fields, emit/receive events/signals.DOM Generation Engine is used to describe a virtual DOM of reactive fragments, which will be reflected into a browser DOM and keep up to date it.
Fragment
describes a virtual DOM node, which has siblings, children, parent & slots.TextNode
reflects a Text
node.INode
reflects a Element
node.Tag
reflect a self created Element
node.Extension
reflects an existing Element
node.Component
reflects a Element
node created by a Tag
child.AppNode
is root of a Vasille
application, can be used to create applications in application.App
is root of a definitive Vasille
application.DebugNode
reflects a Comment
node, useful for debug.Watch
recompose children nodes on model value change.RepeatNode
creates multiples children nodes using the same code multiple time.BaseView
represent a view in context of MVC (Model-View-Controller).ObjectView
repeats slot content for each value of ObjectModel
.MapView
repeats slot content for each MapModel
value.SetView
repeats slot content for each SetModel
value.ArrayView
repeats slot content for each ArrayModel
value respecting its order.<script src="https://unpkg.com/vasille"></script>
If you have questions, feel free to contact the maintainer of the project:
FAQs
Vasille - Safe. Simple. Powerful.
The npm package vasille receives a total of 0 weekly downloads. As such, vasille popularity was classified as not popular.
We found that vasille demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.