airx 0.1.8 → 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.
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}
@@ -19,8 +19,9 @@ export type AirxChildren = null | string | number | boolean | undefined | AirxEl
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
  */
@@ -41,4 +42,5 @@ export type AirxComponentContext = AirxComponentLifecycle & {
41
42
  provide: <T = unknown>(key: unknown, value: T) => (newValue: T) => void;
42
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;AAmClC;;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
@@ -2,8 +2,8 @@ import { AirxElement } from './element';
2
2
  import { Plugin } from './render';
3
3
  export * from './types';
4
4
  export { Plugin } from './render';
5
- export { createRef, Ref, watch } from './reactive';
6
- export { Fragment, createElement, AirxComponent, AirxElement, AirxChildren, AirxComponentContext } from './element';
5
+ export { createSignal, Signal, watchSignal } from './reactive';
6
+ export { Fragment, component, createElement, AirxComponent, AirxElement, AirxChildren, AirxComponentContext } from './element';
7
7
  export { inject, provide, onMounted, onUnmounted } from './render';
8
8
  export interface AirxApp {
9
9
  plugin: (...plugins: Plugin[]) => AirxApp;
package/output/index.js CHANGED
@@ -1,7 +1,7 @@
1
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) {
@@ -1 +1 @@
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,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,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
+ {"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,5 +1,5 @@
1
1
  import { createLogger } from '../../logger';
2
- import { watch, createCollector } from '../../reactive';
2
+ import { watchSignal, createCollector } from '../../reactive';
3
3
  import { createElement, isValidElement } from '../../element';
4
4
  import { globalContext } from './hooks';
5
5
  export class InnerAirxComponentContext {
@@ -321,8 +321,12 @@ export function performUnitOfWork(pluginContext, instance, onUpdateRequire) {
321
321
  const component = element.type;
322
322
  const beforeContext = globalContext.current;
323
323
  globalContext.current = instance.context.getSafeContext();
324
- instance.render = collector.collect(() => component(instance.memoProps));
324
+ const componentReturnValue = collector.collect(() => component(instance.memoProps));
325
+ if (typeof componentReturnValue !== 'function') {
326
+ throw new Error('Component must return a render function');
327
+ }
325
328
  globalContext.current = beforeContext;
329
+ instance.render = componentReturnValue;
326
330
  const children = collector.collect(() => instance.render?.());
327
331
  reconcileChildren(pluginContext, instance, childrenAsElements(children));
328
332
  }
@@ -333,7 +337,7 @@ export function performUnitOfWork(pluginContext, instance, onUpdateRequire) {
333
337
  }
334
338
  // 处理依赖触发的更新
335
339
  collector.complete().forEach(ref => {
336
- instance.context.addDisposer(watch(ref, () => {
340
+ instance.context.addDisposer(watchSignal(ref, () => {
337
341
  instance.needReRender = true;
338
342
  onUpdateRequire?.(instance);
339
343
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/render/common/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/render/common/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { BasicLogic } from './internal/basic';
2
2
  import { InjectSystem } from './internal/inject';
3
3
  export class PluginContext {
4
- plugins = [new BasicLogic(), new InjectSystem()];
4
+ plugins = [
5
+ new BasicLogic(),
6
+ new InjectSystem()
7
+ ];
5
8
  registerPlugin(...plugins) {
6
9
  this.plugins.push(...plugins);
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,OAAO,aAAa;IACxB,OAAO,GAAa,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA;IAE1D,cAAc,CAAC,GAAG,OAAiB;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,OAAO,aAAa;IACxB,OAAO,GAAa;QAClB,IAAI,UAAU,EAAE;QAChB,IAAI,YAAY,EAAE;KACnB,CAAA;IAED,cAAc,CAAC,GAAG,OAAiB;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import type { Instance } from '..';
2
1
  import { AirxElement, Props } from '../../../element';
2
+ import type { Instance } from '../index';
3
3
  export { PluginContext } from './context';
4
4
  export interface Plugin {
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../source/render/common/plugins/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airx",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "a front framework with jsx",
5
5
  "types": "./output/index.d.ts",
6
6
  "exports": {
@@ -1,2 +0,0 @@
1
- export interface Plugin {
2
- }
package/output/plugin.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../source/plugin.ts"],"names":[],"mappings":""}
@@ -1,24 +0,0 @@
1
- import { CSSProperties } from '..';
2
- import { AirxElement } from '../element';
3
- declare class SsrHTMLElement {
4
- nodeName: string;
5
- static createTextNode(content: string): SsrHTMLElement;
6
- static createComment(content: string): SsrHTMLElement;
7
- static createElement(tag: string): SsrHTMLElement;
8
- constructor(nodeName: string);
9
- readonly firstChild?: SsrHTMLElement;
10
- readonly nextSibling?: SsrHTMLElement;
11
- readonly parentNode?: SsrHTMLElement;
12
- readonly className: string;
13
- readonly style: CSSProperties;
14
- private content;
15
- private children;
16
- private attributes;
17
- removeChild(dom: SsrHTMLElement): void;
18
- appendChild(dom: SsrHTMLElement): void;
19
- setAttribute(name: string, value: any): any;
20
- removeAttribute(name: string): void;
21
- toString(): string;
22
- }
23
- export declare function render(element: AirxElement, domRef?: SsrHTMLElement): string | undefined;
24
- export {};
@@ -1,345 +0,0 @@
1
- import { createLogger } from '../logger';
2
- import { InnerAirxComponentContext, performUnitOfWork } from './common';
3
- function camelToKebab(str) {
4
- return str.replace(/([A-Z])/g, (match, p1, offset) => {
5
- if (offset === 0) {
6
- return p1.toLowerCase();
7
- }
8
- else {
9
- return '-' + p1.toLowerCase();
10
- }
11
- });
12
- }
13
- class SsrHTMLElement {
14
- nodeName;
15
- static createTextNode(content) {
16
- const dom = new SsrHTMLElement('#text');
17
- dom.content = content;
18
- return dom;
19
- }
20
- static createComment(content) {
21
- const dom = new SsrHTMLElement('#comment');
22
- dom.content = content;
23
- return dom;
24
- }
25
- static createElement(tag) {
26
- return new SsrHTMLElement(tag);
27
- }
28
- constructor(nodeName) {
29
- this.nodeName = nodeName;
30
- this.style = {};
31
- this.content = '';
32
- this.children = [];
33
- this.className = '';
34
- this.attributes = new Map();
35
- }
36
- firstChild;
37
- nextSibling;
38
- parentNode;
39
- className;
40
- style;
41
- content;
42
- children;
43
- attributes;
44
- removeChild(dom) {
45
- /* eslint-disable @typescript-eslint/ban-ts-comment */
46
- const index = this.children.findIndex(v => v === dom);
47
- if (index != -1)
48
- this.children.splice(index, 1);
49
- // @ts-ignore
50
- this.firstChild = undefined;
51
- // @ts-ignore
52
- this.nextSibling = undefined;
53
- // @ts-ignore
54
- this.parentNode = undefined;
55
- /* eslint-enable @typescript-eslint/ban-ts-comment */
56
- }
57
- appendChild(dom) {
58
- /* eslint-disable @typescript-eslint/ban-ts-comment */
59
- // @ts-ignore
60
- dom.parentNode = this;
61
- if (this.children.length > 0) {
62
- // @ts-ignore
63
- this.children[this.children.length - 1].nextSibling = dom;
64
- }
65
- // @ts-ignore
66
- this.firstChild = this.children[0];
67
- this.children.push(dom);
68
- /* eslint-enable @typescript-eslint/ban-ts-comment */
69
- }
70
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
- setAttribute(name, value) {
72
- if (value === '')
73
- return this.attributes.delete(name);
74
- /* eslint-disable @typescript-eslint/ban-ts-comment */
75
- // @ts-ignore
76
- if (name === 'class')
77
- return this.className = value;
78
- // @ts-ignore
79
- if (name === 'style')
80
- return this.style = value;
81
- /* eslint-enable @typescript-eslint/ban-ts-comment */
82
- this.attributes.set(name, value);
83
- }
84
- removeAttribute(name) {
85
- this.attributes.delete(name);
86
- }
87
- toString() {
88
- if (this.nodeName === '#text')
89
- return this.content;
90
- if (this.nodeName === '#comment')
91
- return this.content;
92
- const className = this.className.length > 0 ? `class="${this.className}"` : '';
93
- const styleString = Object.entries(this.style).map(([key, value]) => `${camelToKebab(key)}:${value}`).join(';');
94
- const style = styleString.length > 0 ? `style="${styleString}"` : '';
95
- const attributes = Array.from(this.attributes.entries()).map(([name, value]) => `${name}="${value}"`).join(' ');
96
- return `<${this.nodeName} ${className} ${style} ${attributes}>${this.children.map(child => child.toString()).join('')}</${this.nodeName}>`;
97
- }
98
- }
99
- export function render(element, domRef) {
100
- const rootInstance = {
101
- domRef: SsrHTMLElement.createElement('div') || domRef,
102
- context: new InnerAirxComponentContext()
103
- };
104
- rootInstance.context.instance = rootInstance;
105
- const context = {
106
- rootInstance,
107
- nextUnitOfWork: null,
108
- needCommitDom: false
109
- };
110
- const appInstance = {
111
- element,
112
- parent: context.rootInstance,
113
- memoProps: { ...element.props },
114
- context: new InnerAirxComponentContext()
115
- };
116
- appInstance.context.instance = appInstance;
117
- context.rootInstance.child = appInstance;
118
- context.nextUnitOfWork = appInstance;
119
- /**
120
- * 提交 Dom 变化
121
- */
122
- function commitDom(rootInstance, rootNode) {
123
- const logger = createLogger('commitDom');
124
- logger.debug('commitDom', rootInstance);
125
- function updateDomProperties(dom, nextProps, prevProps = {}) {
126
- const isKey = (key) => key === 'key';
127
- const isRef = (key) => key === 'ref';
128
- const isStyle = (key) => key === 'style';
129
- const isClass = (key) => key === 'class';
130
- const isEvent = (key) => key.startsWith("on");
131
- const isChildren = (key) => key === 'children';
132
- const isGone = (_prev, next) => (key) => !(key in next);
133
- const isNew = (prev, next) => (key) => prev[key] !== next[key];
134
- const isProperty = (key) => !isChildren(key) && !isEvent(key) && !isStyle(key) && !isClass(key) && !isKey(key) && !isRef(key);
135
- // https://developer.mozilla.org/zh-CN/docs/Web/API/Node
136
- if (dom.nodeName === '#text' || dom.nodeName === '#comment') {
137
- const textNode = dom;
138
- if (textNode.nodeValue !== nextProps.textContent) {
139
- textNode.nodeValue = String(nextProps.textContent);
140
- }
141
- return;
142
- }
143
- // remove old style
144
- const oldStyle = prevProps?.style;
145
- if (typeof oldStyle === 'object' && oldStyle != null) {
146
- Object.keys(oldStyle).forEach(key => {
147
- /* eslint-disable @typescript-eslint/no-explicit-any */
148
- delete dom.style[key];
149
- /* eslint-enable @typescript-eslint/no-explicit-any */
150
- });
151
- }
152
- // add new style
153
- const newStyle = nextProps?.style;
154
- if (typeof newStyle === 'object' && newStyle != null) {
155
- Object.keys(newStyle).forEach((key) => {
156
- /* eslint-disable @typescript-eslint/no-explicit-any */
157
- const value = newStyle?.[key];
158
- dom.style[key] = value == null ? '' : value;
159
- /* eslint-enable @typescript-eslint/no-explicit-any */
160
- });
161
- }
162
- if (dom.className !== nextProps?.class) {
163
- if (!nextProps?.class) {
164
- dom.removeAttribute('class');
165
- }
166
- else if (typeof nextProps?.class === 'string') {
167
- dom.setAttribute('class', nextProps?.class);
168
- }
169
- }
170
- // //Remove old or changed event listeners
171
- // Object.keys(prevProps)
172
- // .filter(isEvent)
173
- // .filter(
174
- // key =>
175
- // !(key in nextProps) ||
176
- // isNew(prevProps, nextProps)(key)
177
- // )
178
- // .forEach(name => {
179
- // const eventType = name
180
- // .toLowerCase()
181
- // .substring(2)
182
- // if (prevProps[name] == null) return
183
- // if (typeof prevProps[name] !== 'function') {
184
- // console.error('EventListener is not a function')
185
- // } else {
186
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
- // dom.removeEventListener(eventType as any, prevProps[name] as any)
188
- // }
189
- // })
190
- // // Add event listeners
191
- // Object.keys(nextProps)
192
- // .filter(isEvent)
193
- // .filter(isNew(prevProps, nextProps))
194
- // .forEach(name => {
195
- // const eventType = name
196
- // .toLowerCase()
197
- // .substring(2)
198
- // if (nextProps[name] == null) return
199
- // if (typeof nextProps[name] !== 'function') {
200
- // console.error('EventListener is not a function')
201
- // } else {
202
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
- // dom.addEventListener(eventType as any, nextProps[name] as any)
204
- // }
205
- // })
206
- // Remove old properties
207
- Object.keys(prevProps)
208
- .filter(isProperty)
209
- .filter(isGone(prevProps, nextProps))
210
- .forEach(name => dom.setAttribute(name, ''));
211
- // Set new or changed properties
212
- Object.keys(nextProps)
213
- .filter(isProperty)
214
- .filter(isNew(prevProps, nextProps))
215
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
216
- .forEach(name => dom.setAttribute(name, nextProps[name]));
217
- }
218
- function getParentDom(instance) {
219
- if (instance.parent?.domRef != null) {
220
- return instance.parent.domRef;
221
- }
222
- if (instance.parent) {
223
- return getParentDom(instance.parent);
224
- }
225
- throw new Error('Cant find dom');
226
- }
227
- /**
228
- * 查找 instance 下所有的一级 dom
229
- * @param instance
230
- * @returns
231
- */
232
- function getChildDoms(instance) {
233
- const domList = [];
234
- const todoList = [instance];
235
- while (todoList.length > 0) {
236
- const current = todoList.pop();
237
- // 找到真实 dom 直接提交
238
- if (current?.domRef != null) {
239
- domList.push(current.domRef);
240
- }
241
- // 有子节点但是无真实 dom,向下继续查找
242
- if (current?.domRef == null) {
243
- if (current?.child != null) {
244
- todoList.push(current.child);
245
- }
246
- }
247
- // 可能有兄弟节点,则需要继续查找
248
- if (current?.sibling != null) {
249
- todoList.push(current.sibling);
250
- }
251
- }
252
- return domList;
253
- }
254
- function commitInstanceDom(nextInstance, oldNode) {
255
- // 移除标删元素
256
- if (nextInstance.deletions) {
257
- for (const deletion of nextInstance.deletions) {
258
- const domList = getChildDoms(deletion);
259
- for (let index = 0; index < domList.length; index++) {
260
- const dom = domList[index];
261
- if (dom && dom.parentNode)
262
- dom.parentNode.removeChild(dom);
263
- }
264
- deletion.context.triggerUnmounted();
265
- }
266
- nextInstance.deletions.clear();
267
- }
268
- // 创建 dom
269
- if (nextInstance.domRef == null) {
270
- if (nextInstance.element == null)
271
- throw new Error('???');
272
- if (typeof nextInstance.element.type === 'string') {
273
- if (nextInstance.element.type === 'text') {
274
- const textContent = nextInstance.element.props.textContent;
275
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
276
- nextInstance.domRef = SsrHTMLElement.createTextNode(textContent);
277
- }
278
- else if (nextInstance.element.type === 'comment') {
279
- const textContent = nextInstance.element.props.textContent;
280
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
281
- nextInstance.domRef = SsrHTMLElement.createComment(textContent);
282
- }
283
- else {
284
- nextInstance.domRef = SsrHTMLElement.createElement(nextInstance.element.type);
285
- }
286
- }
287
- }
288
- // 更新属性
289
- if (nextInstance.domRef != null && nextInstance.element != null) {
290
- updateDomProperties(nextInstance.domRef, nextInstance.element.props, nextInstance.beforeElement?.props);
291
- }
292
- // 插入 parent
293
- // TODO: 针对仅移动时优化
294
- if (nextInstance.domRef != null) {
295
- if (oldNode !== nextInstance.domRef) {
296
- if (nextInstance.domRef.parentNode) {
297
- nextInstance.domRef.parentNode.removeChild(nextInstance.domRef);
298
- }
299
- const parentDom = getParentDom(nextInstance);
300
- parentDom.appendChild(nextInstance.domRef);
301
- }
302
- }
303
- }
304
- function commitWalkV2(initInstance, initNode) {
305
- // 创建一个栈,将根节点压入栈中
306
- const stack = [[initInstance, initNode]];
307
- while (stack.length > 0) {
308
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
309
- const stackLayer = stack.pop();
310
- if (typeof stackLayer === 'function') {
311
- stackLayer();
312
- continue;
313
- }
314
- const [instance, node] = stackLayer;
315
- commitInstanceDom(instance, node);
316
- // stack 是先入后出
317
- // 实际上是先渲染 child
318
- // 这里然后再渲染 sibling
319
- // 执行生命周期的 Mount
320
- stack.push(() => instance.context.triggerMounted());
321
- // 更新下一个兄弟节点
322
- if (instance.sibling != null) {
323
- const siblingNode = instance.domRef
324
- ? instance.domRef.nextSibling
325
- : node?.nextSibling;
326
- stack.push([instance.sibling, siblingNode || undefined]);
327
- }
328
- // 更新下一个子节点
329
- if (instance.child != null) {
330
- const childNode = instance.domRef
331
- ? instance.domRef.firstChild
332
- : node;
333
- stack.push([instance.child, childNode || undefined]);
334
- }
335
- }
336
- }
337
- commitWalkV2(rootInstance, rootNode);
338
- }
339
- while (context.nextUnitOfWork) {
340
- context.nextUnitOfWork = performUnitOfWork(context.nextUnitOfWork);
341
- }
342
- commitDom(context.rootInstance.child, context.rootInstance.domRef?.firstChild || undefined);
343
- return context.rootInstance.domRef?.toString();
344
- }
345
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../source/render/server.ts"],"names":[],"mappings":"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"}