No description
Find a file
2025-11-01 00:29:58 +01:00
.forgejo/workflows ( CI ) remove unnecessary comments 2024-12-03 14:23:56 +01:00
assets ( docs ) update solgan on logo 2023-01-27 17:56:23 +01:00
src perf(binding): try something different for node address 2025-11-01 00:29:58 +01:00
tests Add HTTP client with usefull interceptors 2024-06-28 21:37:13 +00:00
.gitignore add unit tests and coverage in Gitlab CI 2023-05-04 14:47:16 +02:00
.gitlab-ci.yml do not log sensible information 2024-07-04 17:32:54 +02:00
LICENSE first working version 2023-01-12 17:00:56 +01:00
package-lock.json update vite version to 4.3.4 2023-05-04 15:49:30 +02:00
package.json bump 0.0.31 version to test npm publication 2024-07-04 17:24:19 +02:00
README.md ( docs ) update readme to remove explicit router registration from example 2023-01-27 17:47:27 +01:00
tsconfig.json first working version 2023-01-12 17:00:56 +01:00
vite.config.ts perf: various performance optimization 2025-10-28 19:27:18 +01:00

License: Apache-2.0 npm version build status

TypeScript

Eliora

Eliora is a front-end JavaScript framework for building browser applications. It is largely inspired by Aurelia framework for its syntax and it is designed to work with Vite.

Getting started

To setup a new project, just setup a ViteJS vanilla typescript project and add dependency to Eliora framework:

npm create vite@latest my-project -- --template vanilla-ts
cd my-project
npm install
npm i eliora --save

To bootstrap Eliora, update main.ts with this content :

import { Eliora } from "eliora";

new Eliora()
    .registerTemplateModules(import.meta.glob("/src/**/*.html", { as: 'raw' }))
    .register(import("./app-component"));

Then, create the app component, you'll need a app-component.ts...

// app-component.ts
export class AppComponent {
    welcome: string = "Welcome to Eliora";
    name: string = "";
}

...and app-component.html

<!-- app-component.html -->
<form>
  <label>
    <span>What is your name?</span>
    <input value.bind="name">
  </label>
</form>

<p if.bind="name">${welcome}, ${name}!</p>

Finaly, add your component in your index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + TS + Eliora</title>
  </head>
  <body>
    <script type="module" src="/src/main.ts"></script>
    <app-component />
  </body>
</html>