Skip to content

Commit eee93b0

Browse files
committed
Add letter cache
1 parent 5ff647c commit eee93b0

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"author": "Xpo Development <[email protected]>",
88
"license": "MIT",
99
"scripts": {
10-
"build": "tsc"
10+
"build": "tsc",
11+
"test": "npm install -g . && dot tests/hello-world.ds"
1112
},
1213
"bin": {
1314
"dot": "./bin/index.js"

src/dot.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
1-
const _ᱹ = (: ᱹᱹ, ᱹᱹ: number, ᱹᱹᱹ: number) => {
2-
return (_ᱹᱹ: unknown, ᱹᱹᱹᱹ: string | symbol) => {
3-
if (typeof ᱹᱹᱹᱹ === "string") {
4-
const p = ᱹᱹᱹᱹ.split("");
5-
if (p.some((p) => p !== "ᱹ")) {
1+
const ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ = (: ᱹᱹ, ᱹᱹ: number, ᱹᱹᱹ: number) => {
2+
const ᱹᱹᱹᱹᱹᱹᱹᱹ = new Map<ᱹᱹᱹ, Record<string, string>>();
3+
return (ᱹᱹᱹᱹ: ᱹᱹᱹ, ᱹᱹᱹᱹᱹ: string | symbol) => {
4+
if (typeof ᱹᱹᱹᱹᱹ === "string") {
5+
const ᱹᱹᱹᱹᱹᱹᱹᱹᱹ = ᱹᱹᱹᱹᱹᱹᱹᱹ.get(ᱹᱹᱹᱹ) || {};
6+
ᱹᱹᱹᱹᱹᱹᱹᱹ.set(ᱹᱹᱹᱹ, ᱹᱹᱹᱹᱹᱹᱹᱹᱹ);
7+
if (ᱹᱹᱹᱹᱹᱹᱹᱹᱹ[ᱹᱹᱹᱹᱹ]) {
8+
. = ᱹᱹᱹᱹᱹᱹᱹᱹᱹ[ᱹᱹᱹᱹᱹ];
9+
return ;
10+
}
11+
const ᱹᱹᱹᱹᱹᱹ = ᱹᱹᱹᱹᱹ.split("");
12+
if (ᱹᱹᱹᱹᱹᱹ.some((ᱹᱹᱹᱹᱹᱹᱹ) => ᱹᱹᱹᱹᱹᱹᱹ !== "ᱹ")) {
613
return undefined;
714
}
8-
const char = ᱹᱹ + p.length - 1;
9-
if (char > ᱹᱹᱹ) {
15+
const ᱹᱹᱹᱹᱹᱹᱹ = ᱹᱹ + ᱹᱹᱹᱹᱹᱹ.length - 1;
16+
if (ᱹᱹᱹᱹᱹᱹᱹ > ᱹᱹᱹ) {
1017
return undefined;
1118
}
12-
. = String.fromCharCode(char);
19+
. = String.fromCharCode(ᱹᱹᱹᱹᱹᱹᱹ);
1320
return ;
1421
}
1522
};
1623
};
1724

1825
class ᱹᱹᱹ {
19-
constructor(: ᱹᱹ, ᱹᱹ: number, ᱹᱹᱹ: number) {
26+
constructor(: ᱹᱹ, ᱹᱹ: number, ᱹᱹᱹᱹ: number) {
2027
return new Proxy<ᱹᱹᱹ>(this, {
21-
get: _ᱹ(, ᱹᱹ, ᱹᱹᱹ),
28+
get: ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ(, ᱹᱹ, ᱹᱹᱹᱹ),
2229
});
2330
}
2431

25-
[key: string]: ᱹᱹ;
32+
[: string]: ᱹᱹ;
2633
}
2734

2835
let ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ: string;

tests/hello-world.ds

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
ᱹ.ᱹᱹ.ᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ
2+
.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ
3+
.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹ.ᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹ
4+
.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹ.ᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹ.ᱹᱹᱹ
5+
.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ
6+
.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹ.ᱹᱹᱹᱹᱹᱹᱹᱹᱹᱹ.ᱹ

0 commit comments

Comments
 (0)