airx 0.1.7 → 0.2.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.
Files changed (41) hide show
  1. package/README.md +6 -2
  2. package/output/element.d.ts +9 -7
  3. package/output/element.js +3 -0
  4. package/output/element.js.map +1 -1
  5. package/output/index.d.ts +5 -2
  6. package/output/index.js +9 -8
  7. package/output/index.js.map +1 -1
  8. package/output/reactive.d.ts +5 -4
  9. package/output/reactive.js +4 -3
  10. package/output/reactive.js.map +1 -1
  11. package/output/render/browser.d.ts +3 -8
  12. package/output/render/browser.js +7 -109
  13. package/output/render/browser.js.map +1 -1
  14. package/output/render/common/hooks.d.ts +10 -0
  15. package/output/render/common/hooks.js +22 -0
  16. package/output/render/common/hooks.js.map +1 -0
  17. package/output/render/common/index.d.ts +16 -20
  18. package/output/render/common/index.js +49 -124
  19. package/output/render/common/index.js.map +1 -1
  20. package/output/render/common/plugins/context.d.ts +5 -0
  21. package/output/render/common/plugins/context.js +12 -0
  22. package/output/render/common/plugins/context.js.map +1 -0
  23. package/output/render/common/plugins/index.d.ts +19 -0
  24. package/output/render/common/plugins/index.js +2 -0
  25. package/output/render/common/plugins/index.js.map +1 -0
  26. package/output/render/common/plugins/internal/basic.d.ts +10 -0
  27. package/output/render/common/plugins/internal/basic.js +158 -0
  28. package/output/render/common/plugins/internal/basic.js.map +1 -0
  29. package/output/render/common/plugins/internal/inject.d.ts +6 -0
  30. package/output/render/common/plugins/internal/inject.js +25 -0
  31. package/output/render/common/plugins/internal/inject.js.map +1 -0
  32. package/output/render/index.d.ts +3 -3
  33. package/output/render/index.js +3 -3
  34. package/output/render/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/output/plugin.d.ts +0 -2
  37. package/output/plugin.js +0 -2
  38. package/output/plugin.js.map +0 -1
  39. package/output/render/server.d.ts +0 -24
  40. package/output/render/server.js +0 -345
  41. package/output/render/server.js.map +0 -1
package/README.md CHANGED
@@ -7,16 +7,20 @@ Arix is a front-end framework based on JSX, but it doesn't have hooks like React
7
7
  ```tsx
8
8
  import * as airx from 'airx'
9
9
 
10
- const outsideCount = airx.createRef(1)
10
+ // create a reaction value
11
+ const outsideCount = airx.createSignal(1)
11
12
 
13
+ // define a component
12
14
  function App() {
13
- const innerCount = airx.createRef(1)
15
+ // create a reaction value
16
+ const innerCount = airx.createSignal(1)
14
17
 
15
18
  const handleClick = () => {
16
19
  innerCount.value += 1
17
20
  outsideCount.value +=1
18
21
  }
19
22
 
23
+ // return a render function
20
24
  return () => (
21
25
  <button onClick={handleClick}>
22
26
  {innerCount.value}
@@ -1,6 +1,8 @@
1
- import { Ref } from './reactive';
2
1
  import * as symbol from './symbol';
3
2
  type AirxElementType<P> = string | AirxComponent<P>;
3
+ export type Props = {
4
+ [propKey: string]: unknown;
5
+ };
4
6
  /**
5
7
  * AirxElement 表示一个 Airx 元素
6
8
  * type 表示元素的类型,可能是一个 html 标签,
@@ -10,17 +12,16 @@ type AirxElementType<P> = string | AirxComponent<P>;
10
12
  */
11
13
  export interface AirxElement<P = any> {
12
14
  type: AirxElementType<P>;
13
- props: {
14
- [propKey: string]: unknown;
15
- } & P;
15
+ props: Props & P;
16
16
  [symbol.airxElementSymbol]: true;
17
17
  }
18
18
  export type AirxChildren = null | string | number | boolean | undefined | AirxElement | Array<AirxChildren>;
19
19
  /**
20
20
  * 函数式组件接收自己的 props,并返回一个 AirxElement
21
21
  */
22
- export type AirxComponent<P = unknown> = (props: P) => AirxComponentRender;
23
22
  export type AirxComponentRender = () => AirxChildren;
23
+ export type AirxComponent<P = unknown> = ReactiveComponent<P>;
24
+ export type ReactiveComponent<P = unknown> = (props: P) => AirxComponentRender;
24
25
  /**
25
26
  * createElement 是用于创建 AirxElement 的工具函数
26
27
  */
@@ -38,7 +39,8 @@ export interface AirxComponentLifecycle {
38
39
  onUnmounted: (listener: AirxComponentUnmountedListener) => void;
39
40
  }
40
41
  export type AirxComponentContext = AirxComponentLifecycle & {
41
- provide: <T = any>(key: any, value: T) => (newValue: T) => void;
42
- inject: <T = any>(key: any) => Ref<T | null>;
42
+ provide: <T = unknown>(key: unknown, value: T) => (newValue: T) => void;
43
+ inject: <T = unknown>(key: unknown) => T | undefined;
43
44
  };
45
+ export declare function component<P = unknown>(comp: AirxComponent<P>): AirxComponent<P>;
44
46
  export {};
package/output/element.js CHANGED
@@ -21,4 +21,7 @@ export function isValidElement(element) {
21
21
  export function Fragment(props) {
22
22
  return () => props.children;
23
23
  }
24
+ export function component(comp) {
25
+ return comp;
26
+ }
24
27
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../source/element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAiClC;;GAEG;AACH,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,KAAqC,EACrC,GAAG,QAAwB;IAE3B,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,GAAG,KAAK;YACR,QAAQ;SACT;QACD,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI;KACjC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,OAAO,KAAK,QAAQ;WAC7B,OAAO,KAAK,IAAI;WAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAgC;IACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../source/element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAoClC;;GAEG;AACH,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,KAAqC,EACrC,GAAG,QAAwB;IAE3B,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,GAAG,KAAK;YACR,QAAQ;SACT;QACD,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,IAAI;KACjC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,OAAO,KAAK,QAAQ;WAC7B,OAAO,KAAK,IAAI;WAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAgC;IACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC7B,CAAC;AAiBD,MAAM,UAAU,SAAS,CAAc,IAAsB;IAC3D,OAAO,IAAI,CAAA;AACb,CAAC"}
package/output/index.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  import { AirxElement } from './element';
2
+ import { Plugin } from './render';
2
3
  export * from './types';
3
- export { createRef, Ref, watch } from './reactive';
4
- export { Fragment, createElement, AirxComponent, AirxElement, AirxChildren, AirxComponentContext } from './element';
4
+ export { Plugin } from './render';
5
+ export { createSignal, Signal, watchSignal } from './reactive';
6
+ export { Fragment, component, createElement, AirxComponent, AirxElement, AirxChildren, AirxComponentContext } from './element';
5
7
  export { inject, provide, onMounted, onUnmounted } from './render';
6
8
  export interface AirxApp {
9
+ plugin: (...plugins: Plugin[]) => AirxApp;
7
10
  mount: (container: HTMLElement) => AirxApp;
8
11
  }
9
12
  export declare function createApp(element: AirxElement<any>): AirxApp;
package/output/index.js CHANGED
@@ -1,17 +1,18 @@
1
- import { renderToDom } from './render';
1
+ import { PluginContext, render } from './render';
2
2
  export * from './types';
3
- export { createRef, watch } from './reactive';
4
- export { Fragment, createElement } from './element';
3
+ export { createSignal, watchSignal } from './reactive';
4
+ export { Fragment, component, createElement } from './element';
5
5
  export { inject, provide, onMounted, onUnmounted } from './render';
6
6
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
7
  export function createApp(element) {
8
+ const appContext = new PluginContext();
8
9
  const app = {
9
- // plugin: (plugins) => {
10
- // console.log(plugins)
11
- // return app
12
- // },
10
+ plugin: (...plugins) => {
11
+ appContext.registerPlugin(...plugins);
12
+ return app;
13
+ },
13
14
  mount: (container) => {
14
- renderToDom(element, container);
15
+ render(appContext, element, container);
15
16
  return app;
16
17
  }
17
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,cAAc,SAAS,CAAA;AAEvB,OAAO,EAAE,SAAS,EAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,QAAQ,EACR,aAAa,EAKd,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,UAAU,CAAA;AAOjB,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,GAAG,GAAY;QACnB,yBAAyB;QACzB,yBAAyB;QACzB,eAAe;QACf,KAAK;QAEL,KAAK,EAAE,CAAC,SAAsB,EAAE,EAAE;YAChC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAC/B,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExD,cAAc,SAAS,CAAA;AAEvB,OAAO,EAAE,YAAY,EAAU,WAAW,EAAE,MAAM,YAAY,CAAA;AAE9D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EAKd,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,UAAU,CAAA;AAOjB,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAA;IACtC,MAAM,GAAG,GAAY;QACnB,MAAM,EAAE,CAAC,GAAG,OAAiB,EAAE,EAAE;YAC/B,UAAU,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAA;YACrC,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,KAAK,EAAE,CAAC,SAAsB,EAAE,EAAE;YAChC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACtC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,9 +1,10 @@
1
1
  export declare function createCollector(): {
2
- complete: () => Ref<unknown>[];
2
+ clear: () => void;
3
+ complete: () => Signal<unknown>[];
3
4
  collect: <R = unknown>(process: () => R) => R;
4
5
  };
5
- export interface Ref<T = unknown> {
6
+ export interface Signal<T = unknown> {
6
7
  value: T;
7
8
  }
8
- export declare function watch<T = unknown>(ref: Ref<T>, listener: () => unknown): () => void;
9
- export declare function createRef<T>(obj: T): Ref<T>;
9
+ export declare function watchSignal<T = unknown>(ref: Signal<T>, listener: () => unknown): () => void;
10
+ export declare function createSignal<T>(obj: T): Signal<T>;
@@ -1,11 +1,12 @@
1
1
  import * as symbol from './symbol';
2
- /** TODO: 污染全局总是不好的 */
2
+ /** FIXME: 污染全局总是不好的 */
3
3
  const globalContext = {
4
4
  dependencies: new Set()
5
5
  };
6
6
  export function createCollector() {
7
7
  const newDependencies = new Set();
8
8
  return {
9
+ clear: () => newDependencies.clear(),
9
10
  complete: () => [...newDependencies.values()],
10
11
  collect: (process) => {
11
12
  const beforeDeps = globalContext.dependencies;
@@ -34,12 +35,12 @@ function createRefObject(value) {
34
35
  });
35
36
  return object;
36
37
  }
37
- export function watch(ref, listener) {
38
+ export function watchSignal(ref, listener) {
38
39
  const deps = Reflect.get(ref, symbol.airxReactiveDependenciesSymbol);
39
40
  deps.add(listener);
40
41
  return () => { deps.delete(listener); };
41
42
  }
42
- export function createRef(obj) {
43
+ export function createSignal(obj) {
43
44
  const ref = createRefObject(obj);
44
45
  if (!globalContext.dependencies.has(ref)) {
45
46
  globalContext.dependencies.add(ref);
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../source/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,sBAAsB;AACtB,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,IAAI,GAAG,EAAgB;CACtC,CAAA;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAc,OAAgB,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAA;YAC7C,aAAa,CAAC,YAAY,GAAG,eAAe,CAAA;YAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;YACxB,aAAa,CAAC,YAAY,GAAG,UAAU,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAc,GAAW;IAC1C,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;QACpE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,GAAG,EAAE,CAAA;SACN;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAMD,SAAS,eAAe,CAAc,KAAQ;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,8BAA8B,EAAE;QACpE,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAc,GAAW,EAAE,QAAuB;IACrE,MAAM,IAAI,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;IACxF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,GAAM;IACjC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACpC;IAED,IAAI,KAAK,GAAM,GAAG,CAAC,KAAK,CAAA;IAExB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;QACnC,GAAG;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACpC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,GAAG,CAAC,QAAQ;YACV,KAAK,GAAG,QAAQ,CAAA;YAChB,UAAU,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../source/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,uBAAuB;AACvB,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,IAAI,GAAG,EAAmB;CACzC,CAAA;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAA;IAClD,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAc,OAAgB,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAA;YAC7C,aAAa,CAAC,YAAY,GAAG,eAAe,CAAA;YAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,CAAA;YACxB,aAAa,CAAC,YAAY,GAAG,UAAU,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAc,GAAc;IAC7C,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;QACpE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,GAAG,EAAE,CAAA;SACN;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAMD,SAAS,eAAe,CAAc,KAAQ;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAEvC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,8BAA8B,EAAE;QACpE,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAc,GAAc,EAAE,QAAuB;IAC9E,MAAM,IAAI,GAAuB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAA;IACxF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,GAAM;IACpC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACpC;IAED,IAAI,KAAK,GAAM,GAAG,CAAC,KAAK,CAAA;IAExB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;QACnC,GAAG;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACpC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,GAAG,CAAC,QAAQ;YACV,KAAK,GAAG,QAAQ,CAAA;YAChB,UAAU,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,9 +1,4 @@
1
1
  import { AirxElement } from '../element';
2
- import { Instance as BaseInstance } from './common';
3
- type Instance = BaseInstance<Element>;
4
- interface RenderOptions {
5
- ensureRendered: boolean;
6
- }
7
- export declare function innerRender(element: AirxElement, domRef: Element, options?: RenderOptions): Instance;
8
- export declare function render(element: AirxElement, domRef: Element): Instance;
9
- export {};
2
+ import { PluginContext } from './common/plugins';
3
+ import { Instance } from './common';
4
+ export declare function render(pluginContext: PluginContext, element: AirxElement, domRef: Element): Instance;
@@ -1,6 +1,6 @@
1
1
  import { createLogger } from '../logger';
2
2
  import { InnerAirxComponentContext, performUnitOfWork } from './common';
3
- export function innerRender(element, domRef, options) {
3
+ export function render(pluginContext, element, domRef) {
4
4
  const rootInstance = {
5
5
  domRef,
6
6
  context: new InnerAirxComponentContext()
@@ -9,7 +9,6 @@ export function innerRender(element, domRef, options) {
9
9
  const context = {
10
10
  rootInstance,
11
11
  nextUnitOfWork: null,
12
- firstRendered: false,
13
12
  needCommitDom: false
14
13
  };
15
14
  const appInstance = {
@@ -28,104 +27,10 @@ export function innerRender(element, domRef, options) {
28
27
  const logger = createLogger('commitDom');
29
28
  logger.debug('commitDom', rootInstance);
30
29
  function updateDomProperties(dom, nextProps, prevProps = {}) {
31
- const isKey = (key) => key === 'key';
32
- const isRef = (key) => key === 'ref';
33
- const isStyle = (key) => key === 'style';
34
- const isClass = (key) => key === 'class';
35
- const isEvent = (key) => key.startsWith("on");
36
- const isChildren = (key) => key === 'children';
37
- const isGone = (_prev, next) => (key) => !(key in next);
38
- const isNew = (prev, next) => (key) => prev[key] !== next[key];
39
- const isProperty = (key) => !isChildren(key) && !isEvent(key) && !isStyle(key) && !isClass(key) && !isKey(key) && !isRef(key);
40
- // https://developer.mozilla.org/zh-CN/docs/Web/API/Node
41
- if (dom.nodeName === '#text' || dom.nodeName === '#comment') {
42
- const textNode = dom;
43
- if (textNode.nodeValue !== nextProps.textContent) {
44
- textNode.nodeValue = String(nextProps.textContent);
45
- }
46
- return;
47
- }
48
- // remove old style
49
- const oldStyle = prevProps?.style;
50
- if (typeof oldStyle === 'object' && oldStyle != null) {
51
- if (!('style' in dom) || !dom.style)
52
- return;
53
- Object.keys(oldStyle).forEach(key => {
54
- /* eslint-disable @typescript-eslint/no-explicit-any */
55
- if ('style' in dom && dom.style) {
56
- delete dom.style[key];
57
- /* eslint-enable @typescript-eslint/no-explicit-any */
58
- }
59
- });
60
- }
61
- // add new style
62
- const newStyle = nextProps?.style;
63
- if (typeof newStyle === 'object' && newStyle != null) {
64
- if (!('style' in dom) || !dom.style)
65
- return;
66
- Object.keys(newStyle).forEach((key) => {
67
- /* eslint-disable @typescript-eslint/no-explicit-any */
68
- const value = newStyle?.[key];
69
- dom.style[key] = value == null ? '' : value;
70
- /* eslint-enable @typescript-eslint/no-explicit-any */
71
- });
72
- }
73
- if (dom.className !== nextProps?.class) {
74
- if (!nextProps?.class) {
75
- dom.removeAttribute('class');
76
- }
77
- else if (typeof nextProps?.class === 'string') {
78
- dom.setAttribute('class', nextProps?.class);
79
- }
30
+ for (const plugin of pluginContext.plugins) {
31
+ if (plugin.updateDom)
32
+ plugin.updateDom(dom, nextProps, prevProps);
80
33
  }
81
- //Remove old or changed event listeners
82
- Object.keys(prevProps)
83
- .filter(isEvent)
84
- .filter(key => !(key in nextProps) ||
85
- isNew(prevProps, nextProps)(key))
86
- .forEach(name => {
87
- const eventType = name
88
- .toLowerCase()
89
- .substring(2);
90
- if (prevProps[name] == null)
91
- return;
92
- if (typeof prevProps[name] !== 'function') {
93
- console.error('EventListener is not a function');
94
- }
95
- else {
96
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
- dom.removeEventListener(eventType, prevProps[name]);
98
- }
99
- });
100
- // Add event listeners
101
- Object.keys(nextProps)
102
- .filter(isEvent)
103
- .filter(isNew(prevProps, nextProps))
104
- .forEach(name => {
105
- const eventType = name
106
- .toLowerCase()
107
- .substring(2);
108
- if (nextProps[name] == null)
109
- return;
110
- if (typeof nextProps[name] !== 'function') {
111
- console.error('EventListener is not a function');
112
- }
113
- else {
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
- dom.addEventListener(eventType, nextProps[name]);
116
- }
117
- });
118
- // Remove old properties
119
- Object.keys(prevProps)
120
- .filter(isProperty)
121
- .filter(isGone(prevProps, nextProps))
122
- .forEach(name => dom.setAttribute(name, ''));
123
- // Set new or changed properties
124
- Object.keys(nextProps)
125
- .filter(isProperty)
126
- .filter(isNew(prevProps, nextProps))
127
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
- .forEach(name => dom.setAttribute(name, nextProps[name]));
129
34
  }
130
35
  function getParentDom(instance) {
131
36
  if (instance.parent?.domRef != null) {
@@ -267,18 +172,14 @@ export function innerRender(element, domRef, options) {
267
172
  const logger = createLogger('workLoop');
268
173
  while (context.nextUnitOfWork && !shouldYield) {
269
174
  logger.debug('nextUnitOfWork', context.nextUnitOfWork);
270
- context.nextUnitOfWork = performUnitOfWork(context.nextUnitOfWork, onUpdateRequire);
175
+ context.nextUnitOfWork = performUnitOfWork(pluginContext, context.nextUnitOfWork, onUpdateRequire);
271
176
  if (context.nextUnitOfWork == null)
272
177
  context.needCommitDom = true;
273
- // 强制要求首次渲染完成的的情况下必须要等 firstRendered 为 true 再进入时间片剩余检查
274
- if (options?.ensureRendered !== true && context.firstRendered != true) {
275
- if (deadline)
276
- shouldYield = deadline.timeRemaining() < 1;
277
- }
178
+ if (deadline)
179
+ shouldYield = deadline.timeRemaining() < 1;
278
180
  }
279
181
  if (context.needCommitDom && context.rootInstance.child) {
280
182
  commitDom(context.rootInstance.child, context.rootInstance.domRef?.firstChild || undefined);
281
- context.firstRendered = true;
282
183
  context.needCommitDom = false;
283
184
  }
284
185
  requestIdleCallback(workLoop);
@@ -287,7 +188,4 @@ export function innerRender(element, domRef, options) {
287
188
  workLoop();
288
189
  return context.rootInstance;
289
190
  }
290
- export function render(element, domRef) {
291
- return innerRender(element, domRef);
292
- }
293
191
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../source/render/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../source/render/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,yBAAyB,EAAY,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAQjF,MAAM,UAAU,MAAM,CAAC,aAA4B,EAAE,OAAoB,EAAE,MAAe;IACxF,MAAM,YAAY,GAAa;QAC7B,MAAM;QACN,OAAO,EAAE,IAAI,yBAAyB,EAAE;KACzC,CAAA;IACD,YAAY,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAA;IAE5C,MAAM,OAAO,GAAkB;QAC7B,YAAY;QACZ,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB,CAAA;IAED,MAAM,WAAW,GAAa;QAC5B,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,YAAY;QAC5B,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QAC/B,OAAO,EAAE,IAAI,yBAAyB,EAAE;KACzC,CAAA;IAED,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAA;IAE1C,OAAO,CAAC,YAAY,CAAC,KAAK,GAAG,WAAW,CAAA;IACxC,OAAO,CAAC,cAAc,GAAG,WAAW,CAAA;IAEpC;;OAEG;IACH,SAAS,SAAS,CAAC,YAAsB,EAAE,QAAoB;QAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;QACxC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAIvC,SAAS,mBAAmB,CAAC,GAAY,EAAE,SAAoB,EAAE,YAAuB,EAAE;YACxF,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE;gBAC1C,IAAI,MAAM,CAAC,SAAS;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;aAClE;QACH,CAAC;QAED,SAAS,YAAY,CAAC,QAAkB;YACtC,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE;gBACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAA;aAC9B;YACD,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;aACrC;YAED,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,CAAC;QAED;;;;WAIG;QACH,SAAS,YAAY,CAAC,QAAkB;YACtC,MAAM,OAAO,GAAc,EAAE,CAAA;YAC7B,MAAM,QAAQ,GAAe,CAAC,QAAQ,CAAC,CAAA;YAEvC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;gBAE9B,gBAAgB;gBAChB,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE;oBAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;iBAC7B;gBAED,uBAAuB;gBACvB,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE;oBAC3B,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE;wBAC1B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;qBAC7B;iBACF;gBAED,kBAAkB;gBAClB,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE;oBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;iBAC/B;aACF;YAED,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,SAAS,iBAAiB,CAAC,YAAsB,EAAE,OAAmB;YACpE,SAAS;YACT,IAAI,YAAY,CAAC,SAAS,EAAE;gBAC1B,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE;oBAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;oBACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACnD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC1B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;4BAAE,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;qBAC3D;oBACD,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAA;iBACpC;gBAED,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;aAC/B;YAED,SAAS;YACT,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC/B,IAAI,YAAY,CAAC,OAAO,IAAI,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;gBACxD,IAAI,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACjD,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;wBACxC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAA;wBAC1D,8DAA8D;wBAC9D,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAqB,CAAQ,CAAA;qBAC5E;yBAAM,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;wBAClD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAA;wBAC1D,8DAA8D;wBAC9D,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAqB,CAAQ,CAAA;qBAC3E;yBAAM;wBACL,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,gBAAgB;4BACjD,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;4BACpF,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;qBACtD;oBAED,IAAI,YAAY,CAAC,MAAM,EAAE;wBACvB,8DAA8D;wBAC7D,YAAY,CAAC,MAAc,CAAC,YAAY,GAAG,YAAY,CAAA;qBACzD;iBACF;aACF;YAED,OAAO;YACP,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,IAAI,IAAI,EAAE;gBAC/D,mBAAmB,CACjB,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,OAAO,CAAC,KAAK,EAC1B,YAAY,CAAC,aAAa,EAAE,KAAK,CAClC,CAAA;aACF;YAED,YAAY;YACZ,iBAAiB;YACjB,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC/B,IAAI,OAAO,KAAK,YAAY,CAAC,MAAM,EAAE;oBACnC,IAAI,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE;wBAClC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;qBAChE;oBAED,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;oBAC5C,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;iBAC3C;aACF;QACH,CAAC;QAED,SAAS,YAAY,CAAC,YAAsB,EAAE,QAAoB;YAChE,iBAAiB;YAGjB,MAAM,KAAK,GAAiB,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAA;YAEtD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,oEAAoE;gBACpE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;gBAC/B,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;oBACpC,UAAU,EAAE,CAAA;oBACZ,SAAQ;iBACT;gBAED,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,UAAU,CAAA;gBACnC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAEjC,cAAc;gBACd,gBAAgB;gBAChB,kBAAkB;gBAElB,gBAAgB;gBAChB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;gBAEnD,YAAY;gBACZ,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE;oBAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;wBACjC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW;wBAC7B,CAAC,CAAC,IAAI,EAAE,WAAW,CAAA;oBAErB,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC,CAAA;iBACzD;gBAED,WAAW;gBACX,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;wBAC/B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU;wBAC5B,CAAC,CAAC,IAAI,CAAA;oBAER,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAA;iBACrD;aACF;QACH,CAAC;QAED,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,SAAS,eAAe;QACtB,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE;YAChE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAA;SACpD;IACH,CAAC;IAED;;OAEG;IACH,SAAS,QAAQ,CAAC,QAAuB;QACvC,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QACvC,OAAO,OAAO,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE;YAC7C,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YACtD,OAAO,CAAC,cAAc,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,eAAe,CAAa,CAAA;YAC9G,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI;gBAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;YAChE,IAAI,QAAQ;gBAAE,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;SACzD;QAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE;YACvD,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAClC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,CACrD,CAAA;YACD,OAAO,CAAC,aAAa,GAAG,KAAK,CAAA;SAC9B;QAED,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;IACP,QAAQ,EAAE,CAAA;IACV,OAAO,OAAO,CAAC,YAAY,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AirxComponentContext } from '../../element';
2
+ interface GlobalContext {
3
+ current: AirxComponentContext | null;
4
+ }
5
+ export declare const globalContext: GlobalContext;
6
+ export declare const onMounted: AirxComponentContext['onMounted'];
7
+ export declare const onUnmounted: AirxComponentContext['onUnmounted'];
8
+ export declare const inject: AirxComponentContext['inject'];
9
+ export declare const provide: AirxComponentContext['provide'];
10
+ export {};
@@ -0,0 +1,22 @@
1
+ export const globalContext = {
2
+ current: null
3
+ };
4
+ function useContext() {
5
+ if (globalContext.current == null) {
6
+ throw new Error('Unable to find a valid component context');
7
+ }
8
+ return globalContext.current;
9
+ }
10
+ export const onMounted = (listener) => {
11
+ return useContext().onMounted(listener);
12
+ };
13
+ export const onUnmounted = (listener) => {
14
+ return useContext().onUnmounted(listener);
15
+ };
16
+ export const inject = (key) => {
17
+ return useContext().inject(key);
18
+ };
19
+ export const provide = (key, value) => {
20
+ return useContext().provide(key, value);
21
+ };
22
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../source/render/common/hooks.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,IAAI;CACd,CAAA;AAED,SAAS,UAAU;IACjB,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,OAAO,aAAa,CAAC,OAAO,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAsC,CAAC,QAAQ,EAAE,EAAE;IACvE,OAAO,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAwC,CAAC,QAAQ,EAAE,EAAE;IAC3E,OAAO,UAAU,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAmC,CAAC,GAAG,EAAE,EAAE;IAC5D,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAoC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACrE,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC,CAAA"}
@@ -1,15 +1,11 @@
1
- import { Ref } from '../../reactive';
2
1
  import { AirxComponentContext, AirxComponentMountedListener, AirxComponentRender, AirxComponentUnmountedListener, AirxElement } from '../../element';
3
- export declare const onMounted: AirxComponentContext['onMounted'];
4
- export declare const onUnmounted: AirxComponentContext['onUnmounted'];
5
- export declare const inject: AirxComponentContext['inject'];
6
- export declare const provide: AirxComponentContext['provide'];
2
+ import { PluginContext } from './plugins';
7
3
  export type Disposer = () => void;
8
- export declare class InnerAirxComponentContext<DOM = Element | string> implements AirxComponentContext {
9
- instance?: Instance<DOM>;
4
+ export declare class InnerAirxComponentContext implements AirxComponentContext {
5
+ instance: Instance;
10
6
  private disposers;
11
- private providedMap;
12
- private injectedMap;
7
+ providedMap: Map<unknown, unknown>;
8
+ injectedMap: Map<unknown, unknown>;
13
9
  private mountListeners;
14
10
  private unmountedListeners;
15
11
  triggerMounted(): void;
@@ -17,7 +13,7 @@ export declare class InnerAirxComponentContext<DOM = Element | string> implement
17
13
  onMounted(listener: AirxComponentMountedListener): void;
18
14
  onUnmounted(listener: AirxComponentUnmountedListener): void;
19
15
  provide<T = unknown>(key: any, value: any): (v: T) => void;
20
- inject<T = unknown>(key: any): Ref<T | null>;
16
+ inject<T = unknown>(key: any): T | undefined;
21
17
  addDisposer(...disposers: Disposer[]): void;
22
18
  dispose(): void;
23
19
  /**
@@ -34,18 +30,18 @@ export declare class InnerAirxComponentContext<DOM = Element | string> implement
34
30
  * ↓ | |
35
31
  * instance -sibling→ instance...
36
32
  */
37
- export interface Instance<DOM = Element | string> {
38
- domRef?: DOM;
39
- child?: Instance<DOM>;
40
- parent?: Instance<DOM>;
41
- sibling?: Instance<DOM>;
42
- deletions?: Set<Instance<DOM>>;
33
+ export interface Instance {
34
+ domRef?: Element;
35
+ child?: Instance;
36
+ parent?: Instance;
37
+ sibling?: Instance;
38
+ deletions?: Set<Instance>;
43
39
  element?: AirxElement;
44
40
  beforeElement?: AirxElement;
45
41
  render?: AirxComponentRender;
46
- requiredUpdate?: boolean;
42
+ needReRender?: boolean;
47
43
  elementNamespace?: string;
48
- context: InnerAirxComponentContext<DOM>;
44
+ context: InnerAirxComponentContext;
49
45
  memoProps?: any;
50
46
  }
51
47
  /**
@@ -53,12 +49,12 @@ export interface Instance<DOM = Element | string> {
53
49
  * @param parentInstance 当前正在处理的组件的实例
54
50
  * @param children 当前组件的子节点
55
51
  */
56
- export declare function reconcileChildren(parentInstance: Instance, childrenElementArray: AirxElement[]): void;
52
+ export declare function reconcileChildren(appContext: PluginContext, parentInstance: Instance, childrenElementArray: AirxElement[]): void;
57
53
  type OnUpdateRequire = (instance: Instance) => void;
58
54
  /**
59
55
  * 处理单个 instance
60
56
  * @param instance 当前处理的实例
61
57
  * @returns 返回下一个需要处理的 instance
62
58
  */
63
- export declare function performUnitOfWork(instance: Instance, onUpdateRequire?: OnUpdateRequire): Instance | null;
59
+ export declare function performUnitOfWork(pluginContext: PluginContext, instance: Instance, onUpdateRequire?: OnUpdateRequire): Instance | null;
64
60
  export {};