aspect-js

Fullstack JavaScript framework for SPAs incl. reactivity rendering, mvc / mvvm, models, expression language, datasource, virtual paths, unit test and some more

APACHE-2.0 License

Downloads
141
Stars
3
Committers
2

Description

Influenced by the good experiences from JSF (Java Server Faces) with regard to function and an easy integration into the markup, arose a similar client-side fullstack solution.

Seanox aspect-js focuses on a minimalist approach to implementing Single-Page Applications (SPAs). This framework takes the declarative approach of HTML and extends this with expression language, reactivity rendering with additional attributes, Model View Controller, view model binding, resource bundle, NoSQL datasource, test environment and much more.

Features

  • Easy integration in markup and JavaScript (clean code)
    combinable with other JavaScript frameworks if they don't do the same thing do
    and use a different syntax
  • Lightweight implementation
    requires no additional frameworks
  • Component based architecture
  • Namespaces and domain concept
    for better structuring of components, modules and business logic
  • Modularization (supports imports at the runtime)
    component concept for smart/automatic loading of composite resources at runtime
  • Event handling
  • Expression Language
    meta-language extension with full JavaScript support
  • Reactivity rendering
    rendering reacts to changes in data objects and triggers partial rendering on
    consumers
  • Markup rendering
    supports: conditions, custom tags, events, filter, interval, iterate,
    rendering, resources messages, validation, ...
  • Markup hardening
    makes it difficult to manipulate the attributes in the markup
    non-visible components are removed from the DOM and only reinserted when used
  • Model View Controller (MVC) / Model View ViewModel (MVVM)
    supports view model binding and events
  • Sitemap for organizing the view into pages, faces and facets
    supports virtual paths and permission concepts
  • Resource Bundle / Resource Messages
    internationalization (i18n), localization (l10n) and text outsourcing
  • NoSQL datasource based on XML
    lightweight data management for aggregation / projection / transformation
  • Micro Frontends
    platform and framework for the implementation of micro-frontends
  • Test environment
    for automated unit tests and integration tests
  • ...

Licence Agreement

Seanox Software Solutions ist ein Open-Source-Projekt, im Folgenden Seanox Software Solutions oder kurz Seanox genannt.

Diese Software unterliegt der Version 2 der Apache License.

Copyright (C) 2023 Seanox Software Solutions

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

System Requirement

  • ECMAScript 6 support or higher (normally the current browsers)
    Engines (tested): Blink, Gecko, Goanna, WebKit, ...
    Browsers used for testing: Basilisk, Firefox, Microsoft Edge, Google Chrome, Safari (MacOS/iOS)
  • Web server for hosting

Downloads

Seanox aspect-js 1.6.1 Seanox aspect-js 1.6.1 Sources

Release Channels

The release channels continuously provide the latest final versions, so Seanox aspect-js is always up to date.

Version 1.6.1

Standard: Contains all minimized

Standard Max: Contains all

Core: Contains all minimized, except the Test API

Core Max: Contains all minimized, except the Test API

Micro: Contains all minimized, except SiteMap, minimized

Micro Max: Contains all minimized, except SiteMap

Micro Core: Contains all minimized, except the Test API and SiteMap

Micro Core Max: Contains all minimized, except the test API and SiteMap

Manuals

Changes

1.6.1 20230410

BF: Composite: Added recursion detection for include of composite markup BF: Composite: Correction of validation with message and notification without model BF: Composite: Correction of mounting of child elements in a condition BF: Composite: Correction of the queue during rendering when a lock exists BF: Expression: Unification of the suppressed output BF: Reactive: Correction for the use of arrays BF: Reactive: Correction/optimization for elements with iterate BF: Reactive: Correction of recursive triggered updates BF: Review: Optimization and corrections BF: Test: Correction of wrong output of Element.prototype.toPlainString() CR: Reactive: Optimization of object-model-view decoupling CR: Reactive: Refactoring to distinguish from frameworks with similar name CR: SiteMap: Inactive by default CR: Expression: Extension of the syntax for elements and variables CR: Expression: Optimization (consequent new implementation) CR: Expression: Omission of automatic use of get and is methods for fields CR: Expression: omission of tolerance for undefined parts in object chains (like JSP EL) CR: Composite: Errors during rendering are output in the view CR: Composite: Renamed method Object.using(...) in Object.use(...) CR: Composite: Optimization when loading module resources CR: Composite: Extension of the element ID with a unique identifier CR: Composite: Added @-attributes as attribute templates for elements CR: Composite: Changing the behavior of the validation CR: Scripting: Outsourcing and isolating the execution of Composite JavaScript CR: Scripting: Optimization macros for Composite JavaScript CR: Scripting: Added macro #export for Composite JavaScript CR: Scripting: Added macro #use for Composite JavaScript CR: Scripting: Added macro (?...) for Composite JavaScript CR: Datasource: Optimization when loading module resources CR: Messages: Added messages as alternative object tree for associative array Messages CR: Messages: Added Messages.customize(label, ...values) to fill placeholders with values CR: Namespace: Renamed method Namespace.using(...) in Namespace.use(...) CR: Extension: Math.unique(...) replaces Math.uniqueId(...) CR: Extension: Math.serial() replaces Math.uniqueSerialId(...) CR: Release: Added the manual (de/en) to the release package (zip) CR: Release: Channels with major number are omitted CR: Release: Revision of the release channels

Read more

Contact

Issues Requests Mail

Package Rankings
Top 21.25% on Npmjs.org