@emberkit/core 0.2.4 → 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 +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +42 -3
- package/dist/signals/helpers/core.d.ts +3 -0
- package/dist/signals/helpers/core.d.ts.map +1 -1
- package/dist/signals/helpers/core.js +9 -0
- package/dist/vite-plugin/index.d.ts.map +1 -1
- package/dist/vite-plugin/index.js +5 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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 } 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';
|
|
7
|
-
export { createLoaderData, type LoaderResult } from './loader/index.js';
|
|
7
|
+
export { createLoaderData, type LoaderResult, type LoaderFunction } from './loader/index.js';
|
|
8
8
|
export { createErrorBoundary, createLoadingBoundary } from './boundaries/index.js';
|
|
9
|
-
export type { JSXElement, DOMElement } from './runtime/types.js';
|
|
9
|
+
export type { JSXElement, JSXNode, DOMElement } from './runtime/types.js';
|
|
10
10
|
export type { Signal, WritableSignal, ReadonlySignal } from './signals/index.js';
|
|
11
11
|
export { createMarkdownParser, parseMarkdown, renderMarkdown, extractFrontmatter, } from './markdown/index.js';
|
|
12
12
|
export { compileMDX, compileSync, useMDX } from './mdx/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 } 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);
|
|
@@ -8,4 +8,7 @@ export declare function createMemo<T>(computation: () => T, _options?: SignalOpt
|
|
|
8
8
|
export declare function createEffect(callback: () => void | (() => void)): () => void;
|
|
9
9
|
export declare function batch<T>(fn: () => T): T;
|
|
10
10
|
export declare function untrack<T>(fn: () => T): T;
|
|
11
|
+
export declare function signal<T>(initialValue: T): Signal<T>;
|
|
12
|
+
export declare function computed<T>(computation: () => T): Signal<T>;
|
|
13
|
+
export declare function effect(callback: () => void | (() => void)): () => void;
|
|
11
14
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/signals/helpers/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKzD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV;IAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CAAE,GAAG,SAAS,CAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,YAAY,EAAE,CAAC,EACf,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM,GAC7B,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAmEjE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAqB1F;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAqB5E;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvC;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzC"}
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/signals/helpers/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKzD,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV;IAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CAAE,GAAG,SAAS,CAErE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,YAAY,EAAE,CAAC,EACf,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM,GAC7B,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAmEjE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAqB1F;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAqB5E;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvC;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAEpD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAE3D;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAEtE"}
|
|
@@ -116,3 +116,12 @@ export function batch(fn) {
|
|
|
116
116
|
export function untrack(fn) {
|
|
117
117
|
return fn();
|
|
118
118
|
}
|
|
119
|
+
export function signal(initialValue) {
|
|
120
|
+
return createSignal(initialValue);
|
|
121
|
+
}
|
|
122
|
+
export function computed(computation) {
|
|
123
|
+
return createMemo(computation);
|
|
124
|
+
}
|
|
125
|
+
export function effect(callback) {
|
|
126
|
+
return createEffect(callback);
|
|
127
|
+
}
|
|
@@ -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',
|