diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config/config.nim | 4 | ||||
-rw-r--r-- | src/config/urimethodmap.nim (renamed from src/types/urimethodmap.nim) | 0 | ||||
-rw-r--r-- | src/css/cascade.nim | 2 | ||||
-rw-r--r-- | src/css/cssparser.nim | 2 | ||||
-rw-r--r-- | src/html/dom.nim | 6 | ||||
-rw-r--r-- | src/html/domexception.nim (renamed from src/js/domexception.nim) | 0 | ||||
-rw-r--r-- | src/html/env.nim | 10 | ||||
-rw-r--r-- | src/html/event.nim | 4 | ||||
-rw-r--r-- | src/html/formdata.nim | 2 | ||||
-rw-r--r-- | src/html/jsencoding.nim (renamed from src/js/encoding.nim) | 0 | ||||
-rw-r--r-- | src/html/jsintl.nim (renamed from src/js/intl.nim) | 0 | ||||
-rw-r--r-- | src/html/xmlhttprequest.nim | 2 | ||||
-rw-r--r-- | src/io/console.nim (renamed from src/js/console.nim) | 0 | ||||
-rw-r--r-- | src/io/timeout.nim (renamed from src/js/timeout.nim) | 2 | ||||
-rw-r--r-- | src/js/jsmodule.nim | 27 | ||||
-rw-r--r-- | src/loader/loader.nim | 4 | ||||
-rw-r--r-- | src/local/client.nim | 34 | ||||
-rw-r--r-- | src/local/pager.nim | 4 | ||||
-rw-r--r-- | src/server/buffer.nim | 4 | ||||
-rw-r--r-- | src/server/forkserver.nim | 2 | ||||
-rw-r--r-- | src/types/jscolor.nim (renamed from src/js/jscolor.nim) | 0 |
21 files changed, 52 insertions, 57 deletions
diff --git a/src/config/config.nim b/src/config/config.nim index 3e708f3d..5aa99d79 100644 --- a/src/config/config.nim +++ b/src/config/config.nim @@ -9,7 +9,7 @@ import config/chapath import config/mailcap import config/mimetypes import config/toml -import js/jscolor +import config/urimethodmap import loader/headers import monoucha/fromjs import monoucha/javascript @@ -21,8 +21,8 @@ import monoucha/tojs import types/cell import types/color import types/cookie +import types/jscolor import types/opt -import types/urimethodmap import types/url import utils/regexutils import utils/twtstr diff --git a/src/types/urimethodmap.nim b/src/config/urimethodmap.nim index 81876c26..81876c26 100644 --- a/src/types/urimethodmap.nim +++ b/src/config/urimethodmap.nim diff --git a/src/css/cascade.nim b/src/css/cascade.nim index 47e7fcfa..04f9c0dd 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -14,8 +14,8 @@ import css/stylednode import html/catom import html/dom import html/enums -import js/jscolor import types/color +import types/jscolor import types/opt type diff --git a/src/css/cssparser.nim b/src/css/cssparser.nim index 2278f86b..0dc4f384 100644 --- a/src/css/cssparser.nim +++ b/src/css/cssparser.nim @@ -1,6 +1,6 @@ import std/options -import js/domexception +import html/domexception import types/opt import utils/twtstr diff --git a/src/html/dom.nim b/src/html/dom.nim index c6b14c27..274d401f 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -16,15 +16,15 @@ import css/cssvalues import css/mediaquery import css/sheet import html/catom +import html/domexception import html/enums import html/event import html/script import io/bufwriter +import io/console import io/dynstream import io/promise -import js/console -import js/domexception -import js/timeout +import io/timeout import loader/headers import loader/loaderiface import loader/request diff --git a/src/js/domexception.nim b/src/html/domexception.nim index d07e88f4..d07e88f4 100644 --- a/src/js/domexception.nim +++ b/src/html/domexception.nim diff --git a/src/html/env.nim b/src/html/env.nim index b8c4fc31..d0c77b46 100644 --- a/src/html/env.nim +++ b/src/html/env.nim @@ -3,17 +3,17 @@ import std/tables import html/catom import html/chadombuilder import html/dom +import html/domexception import html/event import html/formdata +import html/jsencoding +import html/jsintl import html/script import html/xmlhttprequest +import io/console import io/dynstream import io/promise -import js/console -import js/domexception -import js/encoding -import js/intl -import js/timeout +import io/timeout import loader/headers import loader/loaderiface import loader/request diff --git a/src/html/event.nim b/src/html/event.nim index 61885b57..40162a8e 100644 --- a/src/html/event.nim +++ b/src/html/event.nim @@ -2,9 +2,9 @@ import std/math import std/options import html/catom +import html/domexception import html/script -import js/domexception -import js/timeout +import io/timeout import monoucha/fromjs import monoucha/javascript import monoucha/jserror diff --git a/src/html/formdata.nim b/src/html/formdata.nim index 56d49df2..f6a7451b 100644 --- a/src/html/formdata.nim +++ b/src/html/formdata.nim @@ -1,9 +1,9 @@ import chame/tags import html/catom import html/dom +import html/domexception import html/enums import io/dynstream -import js/domexception import monoucha/fromjs import monoucha/javascript import monoucha/tojs diff --git a/src/js/encoding.nim b/src/html/jsencoding.nim index 7aae5eb2..7aae5eb2 100644 --- a/src/js/encoding.nim +++ b/src/html/jsencoding.nim diff --git a/src/js/intl.nim b/src/html/jsintl.nim index b980fb90..b980fb90 100644 --- a/src/js/intl.nim +++ b/src/html/jsintl.nim diff --git a/src/html/xmlhttprequest.nim b/src/html/xmlhttprequest.nim index 50c963c1..0185e03a 100644 --- a/src/html/xmlhttprequest.nim +++ b/src/html/xmlhttprequest.nim @@ -7,11 +7,11 @@ import chagashi/decoder import html/catom import html/chadombuilder import html/dom +import html/domexception import html/event import html/script import io/dynstream import io/promise -import js/domexception import loader/headers import loader/loaderiface import loader/request diff --git a/src/js/console.nim b/src/io/console.nim index 755910a5..755910a5 100644 --- a/src/js/console.nim +++ b/src/io/console.nim diff --git a/src/js/timeout.nim b/src/io/timeout.nim index 6c905836..0015d892 100644 --- a/src/js/timeout.nim +++ b/src/io/timeout.nim @@ -1,8 +1,8 @@ import std/algorithm import std/times +import io/console import io/dynstream -import js/console import monoucha/fromjs import monoucha/javascript import monoucha/jsutils diff --git a/src/js/jsmodule.nim b/src/js/jsmodule.nim deleted file mode 100644 index cdb836e6..00000000 --- a/src/js/jsmodule.nim +++ /dev/null @@ -1,27 +0,0 @@ -import monoucha/constcharp -import monoucha/javascript -import monoucha/quickjs -import monoucha/tojs - -proc setImportMeta(ctx: JSContext; funcVal: JSValue; isMain: bool) = - let m = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) - let moduleNameAtom = JS_GetModuleName(ctx, m) - let metaObj = JS_GetImportMeta(ctx, m) - definePropertyCWE(ctx, metaObj, "url", JS_AtomToValue(ctx, moduleNameAtom)) - definePropertyCWE(ctx, metaObj, "main", isMain) - JS_FreeValue(ctx, metaObj) - JS_FreeAtom(ctx, moduleNameAtom) - -proc finishLoadModule*(ctx: JSContext; f: string; name: cstring): JSModuleDef = - let funcVal = compileModule(ctx, f, $name) - if JS_IsException(funcVal): - return nil - setImportMeta(ctx, funcVal, false) - # "the module is already referenced, so we must free it" - # idk how this works, so for now let's just do what qjs does - result = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) - JS_FreeValue(ctx, funcVal) - -proc normalizeModuleName*(ctx: JSContext; base_name, name: cstringConst; - opaque: pointer): cstring {.cdecl.} = - return js_strdup(ctx, cstring(name)) diff --git a/src/loader/loader.nim b/src/loader/loader.nim index 1779183d..0c6423b6 100644 --- a/src/loader/loader.nim +++ b/src/loader/loader.nim @@ -27,23 +27,23 @@ import std/posix import std/strutils import std/tables +import config/urimethodmap import io/bufreader import io/bufwriter import io/dynstream import io/poll import io/tempfile -import loader/urlfilter import loader/connecterror import loader/headers import loader/loaderhandle import loader/loaderiface import loader/request +import loader/urlfilter import monoucha/javascript import types/cookie import types/formdata import types/opt import types/referrer -import types/urimethodmap import types/url import utils/twtstr diff --git a/src/local/client.nim b/src/local/client.nim index 82e3b059..df5bd1ca 100644 --- a/src/local/client.nim +++ b/src/local/client.nim @@ -11,19 +11,18 @@ import config/config import html/catom import html/chadombuilder import html/dom +import html/domexception import html/env import html/formdata +import html/jsencoding +import html/jsintl import html/xmlhttprequest import io/bufwriter +import io/console import io/dynstream import io/poll import io/promise -import js/console -import js/domexception -import js/encoding -import js/intl -import js/jsmodule -import js/timeout +import io/timeout import loader/headers import loader/loaderiface import loader/request @@ -629,6 +628,29 @@ proc headlessLoop(client: Client) = client.loader.unregistered.setLen(0) client.acceptBuffers() +proc setImportMeta(ctx: JSContext; funcVal: JSValue; isMain: bool) = + let m = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) + let moduleNameAtom = JS_GetModuleName(ctx, m) + let metaObj = JS_GetImportMeta(ctx, m) + definePropertyCWE(ctx, metaObj, "url", JS_AtomToValue(ctx, moduleNameAtom)) + definePropertyCWE(ctx, metaObj, "main", isMain) + JS_FreeValue(ctx, metaObj) + JS_FreeAtom(ctx, moduleNameAtom) + +proc finishLoadModule(ctx: JSContext; f: string; name: cstring): JSModuleDef = + let funcVal = compileModule(ctx, f, $name) + if JS_IsException(funcVal): + return nil + setImportMeta(ctx, funcVal, false) + # "the module is already referenced, so we must free it" + # idk how this works, so for now let's just do what qjs does + result = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) + JS_FreeValue(ctx, funcVal) + +proc normalizeModuleName(ctx: JSContext; base_name, name: cstringConst; + opaque: pointer): cstring {.cdecl.} = + return js_strdup(ctx, cstring(name)) + proc clientLoadJSModule(ctx: JSContext; module_name: cstringConst; opaque: pointer): JSModuleDef {.cdecl.} = let global = JS_GetGlobalObject(ctx) diff --git a/src/local/pager.nim b/src/local/pager.nim index 5e6eee1a..53f9a84f 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -12,12 +12,12 @@ import config/config import config/mailcap import css/render import io/bufreader +import io/console import io/dynstream import io/poll import io/promise import io/tempfile -import js/console -import js/timeout +import io/timeout import loader/connecterror import loader/headers import loader/loaderiface diff --git a/src/server/buffer.nim b/src/server/buffer.nim index 4efb779d..66858bf6 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -29,11 +29,11 @@ import html/event import html/formdata as formdata_impl import io/bufreader import io/bufwriter +import io/console import io/dynstream import io/poll import io/promise -import js/console -import js/timeout +import io/timeout import loader/headers import loader/loaderiface import loader/request diff --git a/src/server/forkserver.nim b/src/server/forkserver.nim index 52213228..c6a77f99 100644 --- a/src/server/forkserver.nim +++ b/src/server/forkserver.nim @@ -5,6 +5,7 @@ import std/tables import chagashi/charset import config/config +import config/urimethodmap import html/formdata import io/bufreader import io/bufwriter @@ -12,7 +13,6 @@ import io/dynstream import loader/loader import loader/loaderiface import server/buffer -import types/urimethodmap import types/url import types/winattrs import utils/proctitle diff --git a/src/js/jscolor.nim b/src/types/jscolor.nim index 20f04b0a..20f04b0a 100644 --- a/src/js/jscolor.nim +++ b/src/types/jscolor.nim |