Skip to content

Commit 1a248b1

Browse files
committed
release pre
1 parent 106dd9b commit 1a248b1

42 files changed

Lines changed: 317 additions & 434 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dist/_hyperscript.esm.js

Lines changed: 13 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.esm.js.map

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.esm.min.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.esm.min.js.br

-57 Bytes
Binary file not shown.

dist/_hyperscript.js

Lines changed: 13 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.js.map

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.min.js

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/_hyperscript.min.js.br

-33 Bytes
Binary file not shown.

dist/platform/bun-hyperscript.js

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/usr/bin/env bun
22

33
import _hyperscript from '../_hyperscript.js';
4-
import { Feature } from '../parsetree/base.js';
54
import path from 'node:path';
65

76
const hsExt = '._hs';
@@ -14,48 +13,35 @@ function run(modulePath) {
1413
.catch(e => console.error("Cannot execute file:", e));
1514
}
1615

17-
class RequireFeature extends Feature {
18-
static keyword = "require";
19-
20-
constructor(id, name) {
21-
super();
22-
this.moduleId = id;
23-
this.moduleName = name;
24-
}
25-
26-
static parse(parser) {
27-
if (!parser.matchToken("require")) return;
28-
var id = parser.requireElement("nakedString").evalStatically();
29-
var name;
30-
if (parser.matchToken("as")) {
31-
name = parser.requireTokenType("IDENTIFIER").value;
32-
} else {
33-
name = path.basename(id).replace(/\.[^.]*$/, '');
34-
}
35-
return new RequireFeature(id, name);
16+
_hyperscript.addFeature("require", function parseRequire(parser) {
17+
if (!parser.matchToken("require")) return;
18+
const id = parser.requireElement("nakedString").evalStatically();
19+
let name;
20+
if (parser.matchToken("as")) {
21+
name = parser.requireTokenType("IDENTIFIER").value;
22+
} else {
23+
name = path.basename(id).replace(/\.[^.]*$/, '');
3624
}
37-
38-
async install(target, source, args, runtime) {
39-
var id = this.moduleId;
40-
if (id.startsWith('./') || id.startsWith('../')) {
41-
id = path.join(args.module.dir, id);
42-
}
43-
44-
var mod;
45-
if (id.endsWith(hsExt)) {
46-
mod = await run(id);
47-
} else {
48-
var file = Bun.file(id + hsExt);
49-
if (await file.exists()) {
50-
mod = await run(id + hsExt);
25+
return {
26+
async install(target, source, args, runtime) {
27+
let resolved = id;
28+
if (resolved.startsWith('./') || resolved.startsWith('../')) {
29+
resolved = path.join(args.module.dir, resolved);
30+
}
31+
let mod;
32+
if (resolved.endsWith(hsExt)) {
33+
mod = await run(resolved);
5134
} else {
52-
mod = await import(id);
35+
const file = Bun.file(resolved + hsExt);
36+
if (await file.exists()) {
37+
mod = await run(resolved + hsExt);
38+
} else {
39+
mod = await import(resolved);
40+
}
5341
}
42+
runtime.assignToNamespace(target, [], name, mod);
5443
}
55-
runtime.assignToNamespace(target, [], this.moduleName, mod);
56-
}
57-
}
58-
59-
_hyperscript.addFeature(RequireFeature.keyword, RequireFeature.parse.bind(RequireFeature));
44+
};
45+
});
6046

6147
run(process.argv[2]);

dist/platform/deno-hyperscript.js

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import _hyperscript from '../_hyperscript.js';
2-
import { Feature } from '../parsetree/base.js';
32
import * as path from 'jsr:@std/path';
43

54
const hsExt = '._hs';
@@ -12,49 +11,36 @@ export function run(modulePath) {
1211
.catch(e => console.error("Cannot execute file:", e));
1312
}
1413

15-
class ImportFeature extends Feature {
16-
static keyword = "import";
17-
18-
constructor(id, name) {
19-
super();
20-
this.moduleId = id;
21-
this.moduleName = name;
22-
}
23-
24-
static parse(parser) {
25-
if (!parser.matchToken("import")) return;
26-
var id = parser.requireElement("nakedString").evalStatically();
27-
var name;
28-
if (parser.matchToken("as")) {
29-
name = parser.requireTokenType("IDENTIFIER").value;
30-
} else {
31-
name = path.basename(id).replace(/\.[^.]*$/, '');
32-
}
33-
return new ImportFeature(id, name);
14+
_hyperscript.addFeature("import", function parseImport(parser) {
15+
if (!parser.matchToken("import")) return;
16+
const id = parser.requireElement("nakedString").evalStatically();
17+
let name;
18+
if (parser.matchToken("as")) {
19+
name = parser.requireTokenType("IDENTIFIER").value;
20+
} else {
21+
name = path.basename(id).replace(/\.[^.]*$/, '');
3422
}
35-
36-
async install(target, source, args, runtime) {
37-
var id = this.moduleId;
38-
if (id.startsWith('./') || id.startsWith('../')) {
39-
id = path.join(args.module.dir, id);
40-
}
41-
42-
var mod;
43-
if (id.endsWith(hsExt)) {
44-
mod = await run(id);
45-
} else {
46-
try {
47-
await Deno.stat(id + hsExt);
48-
mod = await run(id + hsExt);
49-
} catch {
50-
mod = await import(id);
23+
return {
24+
async install(target, source, args, runtime) {
25+
let resolved = id;
26+
if (resolved.startsWith('./') || resolved.startsWith('../')) {
27+
resolved = path.join(args.module.dir, resolved);
28+
}
29+
let mod;
30+
if (resolved.endsWith(hsExt)) {
31+
mod = await run(resolved);
32+
} else {
33+
try {
34+
await Deno.stat(resolved + hsExt);
35+
mod = await run(resolved + hsExt);
36+
} catch {
37+
mod = await import(resolved);
38+
}
5139
}
40+
runtime.assignToNamespace(target, [], name, mod);
5241
}
53-
runtime.assignToNamespace(target, [], this.moduleName, mod);
54-
}
55-
}
56-
57-
_hyperscript.addFeature(ImportFeature.keyword, ImportFeature.parse.bind(ImportFeature));
42+
};
43+
});
5844

5945
export default _hyperscript;
6046

0 commit comments

Comments
 (0)