@emberkit/core 0.2.5 → 0.2.6-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const VERSION = "0.1.0";
|
|
2
2
|
export { createElement, render, hydrate } from './runtime/index.js';
|
|
3
|
-
export { createSignal, createMemo, createEffect, batch, untrack, signal, computed, effect } from './signals/index.js';
|
|
3
|
+
export { createSignal, createMemo, createEffect, batch, untrack, signal, computed, effect, } from './signals/index.js';
|
|
4
4
|
export { createContext, useContext } from './context/index.js';
|
|
5
5
|
export { navigate, preload, useNavigate } from './navigation/index.js';
|
|
6
6
|
export { createRouter, matchRoute } from './router/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,GACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnF,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhF,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErF"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const VERSION = '0.1.0';
|
|
2
2
|
export { createElement, render, hydrate } from './runtime/index.js';
|
|
3
|
-
export { createSignal, createMemo, createEffect, batch, untrack, signal, computed, effect } from './signals/index.js';
|
|
3
|
+
export { createSignal, createMemo, createEffect, batch, untrack, signal, computed, effect, } from './signals/index.js';
|
|
4
4
|
export { createContext, useContext } from './context/index.js';
|
|
5
5
|
export { navigate, preload, useNavigate } from './navigation/index.js';
|
|
6
6
|
export { createRouter, matchRoute } from './router/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAInF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,EACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,UAAU,CAYZ;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAInF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,EACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,GAAG,QAAQ,EAAE,OAAO,EAAE,GACrB,UAAU,CAYZ;AA6ID,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,EACnF,SAAS,EAAE,OAAO,GAAG,MAAM,EAC3B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;SAAE,CAAC,CAAC;KACpF,CAAC,CAAC;CACJ,GACA,IAAI,CA+FN;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE9F;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAEjE;AAED,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -24,11 +24,46 @@ function attachEventHandlers(container) {
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
function
|
|
27
|
+
function parseQueryString(searchString) {
|
|
28
|
+
const query = {};
|
|
29
|
+
const params = new URLSearchParams(searchString);
|
|
30
|
+
for (const [key, value] of params) {
|
|
31
|
+
if (key in query) {
|
|
32
|
+
const existing = query[key];
|
|
33
|
+
if (Array.isArray(existing)) {
|
|
34
|
+
existing.push(value);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
query[key] = [existing, value];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
query[key] = value;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return query;
|
|
45
|
+
}
|
|
46
|
+
function extractParamsFromPath(routePath, pathname) {
|
|
47
|
+
const params = {};
|
|
48
|
+
const routeParts = routePath === '/' ? [] : routePath.split('/').filter((p) => p);
|
|
49
|
+
const pathParts = pathname === '/' ? [] : pathname.split('/').filter((p) => p);
|
|
50
|
+
for (let i = 0; i < routeParts.length; i++) {
|
|
51
|
+
const routePart = routeParts[i];
|
|
52
|
+
if (routePart.startsWith(':')) {
|
|
53
|
+
const paramName = routePart.slice(1);
|
|
54
|
+
if (pathParts[i] !== undefined) {
|
|
55
|
+
params[paramName] = decodeURIComponent(pathParts[i]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return params;
|
|
60
|
+
}
|
|
61
|
+
function renderToTarget(layout, target, routeComponent, routeProps) {
|
|
28
62
|
clearHandlers();
|
|
63
|
+
const componentProps = routeComponent && routeProps ? routeProps : {};
|
|
29
64
|
const jsxElement = {
|
|
30
65
|
type: layout,
|
|
31
|
-
props: routeComponent ? { children: [createElement(routeComponent,
|
|
66
|
+
props: routeComponent ? { children: [createElement(routeComponent, componentProps)] } : {},
|
|
32
67
|
};
|
|
33
68
|
const html = renderToString(jsxElement);
|
|
34
69
|
target.innerHTML = html;
|
|
@@ -144,7 +179,11 @@ export function render(element, container, options) {
|
|
|
144
179
|
const matched = matchRoute(window.location.pathname);
|
|
145
180
|
if (matched) {
|
|
146
181
|
const mod = await matched.component();
|
|
147
|
-
|
|
182
|
+
const params = extractParamsFromPath(matched.path, window.location.pathname);
|
|
183
|
+
const query = parseQueryString(window.location.search);
|
|
184
|
+
const request = new Request(window.location.href);
|
|
185
|
+
const routeProps = { params, query, request };
|
|
186
|
+
renderToTarget(layout, target, mod.default, routeProps);
|
|
148
187
|
}
|
|
149
188
|
else {
|
|
150
189
|
renderToTarget(layout, target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoBtE,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,qBAA0B,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoBtE,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,qBAA0B,GAAG,MAAM,CA8FlF;AAk3BD,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -36,9 +36,11 @@ export function emberkitVitePlugin(userOptions = {}) {
|
|
|
36
36
|
return {
|
|
37
37
|
plugins,
|
|
38
38
|
resolve: {
|
|
39
|
-
alias: isWorkspace
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
alias: isWorkspace
|
|
40
|
+
? {
|
|
41
|
+
'@emberkit/core': srcDir,
|
|
42
|
+
}
|
|
43
|
+
: {},
|
|
42
44
|
},
|
|
43
45
|
esbuild: {
|
|
44
46
|
jsxImportSource: '@emberkit/core',
|