Skip to content

Commit 06a20c2

Browse files
authored
refactor: rename @init to @let (#16)
1 parent b34b753 commit 06a20c2

File tree

6 files changed

+46
-17
lines changed

6 files changed

+46
-17
lines changed

dist/kasper.js

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/kasper.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

live/demo.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@
4343
</div>
4444
<div class="flex-grow bg-gray-700 p-6">
4545
<div @if="post.value && user.value">
46-
<kvoid @init="u = user.value">
46+
<kvoid @let="u = user.value">
4747
<div class="text-lg">Author</div>
4848
<div class="flex flex-col pb-4">
4949
<div class="text-lg font-bold">{{u.name}}</div>
5050
<div class="text-sm text-gray-400">{{u.email}}</div>
5151
</div>
5252
</kvoid>
53-
<kvoid @init="p = post.value">
53+
<kvoid @let="p = post.value">
5454
<div class="text-2xl font-bold">{{p.title}}</div>
5555
<div class="text-sm text-gray-400">{{p.body}}</div>
5656
</kvoid>

live/index.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ <h4>Hobbies ({{person.hobbies.length}}):</h4>
5757
</div>
5858
5959
<!-- evaluating code on element creation -->
60-
<div @init="student = {name: person.name, degree: 'Masters'}; console.log(student.name)">
60+
<div @let="student = {name: person.name, degree: 'Masters'}; console.log(student.name)">
6161
{{student.name}}
6262
</div>
6363
@@ -67,15 +67,15 @@ <h4>Hobbies ({{person.hobbies.length}}):</h4>
6767
</span>
6868
6969
<!-- while loop -->
70-
<span @init="index = 0">
70+
<span @let="index = 0">
7171
<span @while="index < 3">
7272
{{index = index + 1}},
7373
</span>
7474
</span>
7575
7676
<!-- void elements -->
7777
<div>
78-
<kvoid @init="index = 0">
78+
<kvoid @let="index = 0">
7979
<kvoid @while="index < 3">
8080
{{index = index + 1}}
8181
</kvoid>

readme.md

+31-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,35 @@ The template language should be cohesive and clean, ideally with no compromises
2222
- html parser
2323
- javascript like syntax parser and interpreter
2424
- template renderer
25+
- re-render on state update
26+
27+
## Getting started
28+
29+
To use kasper you will need to:
30+
31+
- Include the `kasper.js`.
32+
- Add a `<template>` element
33+
- Add a class that extends from `KasperApp`
34+
- Render the app by calling `Kasper`
35+
36+
```
37+
<html>
38+
<head>
39+
<script src="kasper.min.js"></script>
40+
</head>
41+
<body>
42+
<template>
43+
<div>{{myAppName}}</div>
44+
</template>
45+
<script>
46+
class MyApp extends KasperApp {
47+
myAppName = "MyAppName"
48+
}
49+
Kasper(MyApp);
50+
</script>
51+
</body>
52+
</html>
53+
```
2554

2655
## Conditional expression
2756

@@ -41,12 +70,12 @@ The template language should be cohesive and clean, ideally with no compromises
4170
</ul>
4271
```
4372

44-
## Init expression
73+
## Let expression
4574

4675
Evaluated during element creation
4776

4877
```
49-
<div @init="student = {name: person.name, degree: 'Masters'}; console.log(student.name)">
78+
<div @let="student = {name: person.name, degree: 'Masters'}; console.log(student.name)">
5079
{{student.name}}
5180
</div>
5281
```

src/transpiler.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export class Transpiler implements KNode.KNodeVisitor<void> {
159159
this.interpreter.scope = originalScope;
160160
}
161161

162-
private doInit(init: KNode.Attribute, node: KNode.Element, parent: Node) {
162+
private doLet(init: KNode.Attribute, node: KNode.Element, parent: Node) {
163163
const originalScope = this.interpreter.scope;
164164
this.interpreter.scope = new Scope(originalScope);
165165
this.execute(init.value);
@@ -210,9 +210,9 @@ export class Transpiler implements KNode.KNodeVisitor<void> {
210210
continue;
211211
}
212212

213-
const $init = this.findAttr(node as KNode.Element, ["@init"]);
214-
if ($init) {
215-
this.doInit($init, node as KNode.Element, parent);
213+
const $let = this.findAttr(node as KNode.Element, ["@let"]);
214+
if ($let) {
215+
this.doLet($let, node as KNode.Element, parent);
216216
continue;
217217
}
218218
}

0 commit comments

Comments
 (0)