@viewfly/core 2.1.0 → 3.0.0-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/README.md +67 -4
- package/dist/_utils/make-error.d.ts +1 -0
- package/dist/base/_api.d.ts +12 -0
- package/dist/base/_utils.d.ts +46 -0
- package/dist/base/component.d.ts +77 -0
- package/dist/base/context.d.ts +112 -0
- package/dist/base/dep.d.ts +9 -0
- package/dist/base/injection-tokens.d.ts +20 -0
- package/dist/base/jsx-element.d.ts +64 -0
- package/dist/base/lifecycle.d.ts +54 -0
- package/dist/base/ref.d.ts +50 -0
- package/dist/base/renderer.d.ts +4 -0
- package/dist/base/root.component.d.ts +9 -0
- package/dist/base/types.d.ts +29 -0
- package/dist/di/_api.d.ts +10 -0
- package/dist/di/forward-ref.d.ts +10 -0
- package/dist/di/injectable.d.ts +20 -0
- package/dist/di/injection-token.d.ts +8 -0
- package/dist/di/injector.d.ts +26 -0
- package/dist/di/metadata.d.ts +43 -0
- package/dist/di/null-injector.d.ts +6 -0
- package/dist/di/provider.d.ts +30 -0
- package/dist/di/reflective-injector.d.ts +30 -0
- package/dist/di/reflective-provider.d.ts +20 -0
- package/dist/di/type.d.ts +7 -0
- package/dist/di/utils/_api.d.ts +3 -0
- package/dist/di/utils/annotations.d.ts +33 -0
- package/dist/di/utils/decorators.d.ts +17 -0
- package/dist/di/utils/stringify.d.ts +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.esm.js +2302 -0
- package/dist/index.js +2940 -0
- package/dist/jsx-runtime/index.d.ts +7 -0
- package/dist/jsx-runtime/index.esm.js +2 -0
- package/dist/jsx-runtime/index.js +26 -0
- package/dist/jsx-runtime.d.ts +7 -0
- package/dist/reactive/_api.d.ts +7 -0
- package/dist/reactive/_help.d.ts +15 -0
- package/dist/reactive/array-handlers.d.ts +30 -0
- package/dist/reactive/computed.d.ts +10 -0
- package/dist/reactive/effect.d.ts +13 -0
- package/dist/reactive/iterable-iterator.d.ts +5 -0
- package/dist/reactive/map-handlers.d.ts +12 -0
- package/dist/reactive/reactive.d.ts +141 -0
- package/dist/reactive/set-handlers.d.ts +11 -0
- package/dist/reactive/shallow-reactive.d.ts +6 -0
- package/dist/reactive/signal.d.ts +38 -0
- package/dist/reactive/watch-effect.d.ts +7 -0
- package/dist/reactive/watch.d.ts +8 -0
- package/dist/viewfly.d.ts +30 -0
- package/package.json +29 -29
- package/bundles/index.d.ts +0 -768
- package/bundles/index.esm.js +0 -2700
- package/bundles/index.js +0 -2777
- package/jsx-runtime/index.d.ts +0 -25
- package/jsx-runtime/index.esm.js +0 -11
- package/jsx-runtime/index.js +0 -14
- package/jsx-runtime/package.json +0 -29
- package/rollup-d.config.ts +0 -14
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 供 `jsx: "react-jsx"` + `jsxImportSource: "@viewfly/core"` 使用。
|
|
3
|
+
* 运行时再导出主包入口,避免把 core 打进本 chunk;`JSX` 与主入口类型一致。
|
|
4
|
+
* @see https://www.typescriptlang.org/tsconfig#jsxImportSource
|
|
5
|
+
*/
|
|
6
|
+
export { jsx, jsxs, Fragment, jsx as jsxDEV } from '../index';
|
|
7
|
+
export type { JSX } from '../index';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _viewfly_core = require("@viewfly/core");
|
|
3
|
+
Object.defineProperty(exports, "Fragment", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: function() {
|
|
6
|
+
return _viewfly_core.Fragment;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(exports, "jsx", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return _viewfly_core.jsx;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "jsxDEV", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function() {
|
|
18
|
+
return _viewfly_core.jsx;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "jsxs", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function() {
|
|
24
|
+
return _viewfly_core.jsxs;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 供 `jsx: "react-jsx"` + `jsxImportSource: "@viewfly/core"` 使用。
|
|
3
|
+
* 运行时再导出主包入口,避免把 core 打进本 chunk;`JSX` 与主入口类型一致。
|
|
4
|
+
* @see https://www.typescriptlang.org/tsconfig#jsxImportSource
|
|
5
|
+
*/
|
|
6
|
+
export { jsx, jsxs, Fragment, jsx as jsxDEV } from './index.ts';
|
|
7
|
+
export type { JSX } from './index.ts';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function getStringType(v: any): string;
|
|
2
|
+
export declare function isType(v: any, type: string): boolean;
|
|
3
|
+
export declare function isObject(v: any): v is object;
|
|
4
|
+
export declare function isArray(v: any): v is any[];
|
|
5
|
+
export declare function isMap(v: any): v is Map<any, any>;
|
|
6
|
+
export declare function isWeakMap(v: any): v is WeakMap<any, any>;
|
|
7
|
+
export declare function isSet(v: any): v is Set<any>;
|
|
8
|
+
export declare function isWeakSet(v: any): v is WeakSet<any>;
|
|
9
|
+
export declare function isString(v: any): v is string;
|
|
10
|
+
export declare function isNumber(v: any): v is number;
|
|
11
|
+
export declare function isBoolean(v: any): v is boolean;
|
|
12
|
+
export declare function isNullOrUndefined(v: any): v is (null | undefined);
|
|
13
|
+
export declare function isSymbol(v: any): v is Symbol;
|
|
14
|
+
export declare function isLiteral(v: any): v is string | number | boolean | Symbol | null | undefined;
|
|
15
|
+
export declare function hasOwn(target: any, key: any): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare function createArrayHandlers(wrapper: (v: unknown) => unknown): {
|
|
2
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
3
|
+
keys(): Generator<unknown, void, unknown>;
|
|
4
|
+
values(): Generator<unknown, void, unknown>;
|
|
5
|
+
concat(this: any, ...items: any[]): any[];
|
|
6
|
+
every(this: any, predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: unknown): any;
|
|
7
|
+
filter(this: any, predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): any;
|
|
8
|
+
find(predicate: (value: unknown, index: number, obj: unknown[]) => unknown, thisArg?: any): any;
|
|
9
|
+
findIndex(predicate: (value: unknown, index: number, obj: unknown[]) => unknown, thisArg?: any): number;
|
|
10
|
+
findLast(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): any;
|
|
11
|
+
findLastIndex(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): number;
|
|
12
|
+
forEach(callbackfn: (value: unknown, index: number, array: unknown[]) => void, thisArg?: any): any;
|
|
13
|
+
includes(...args: unknown[]): boolean;
|
|
14
|
+
indexOf(...args: unknown[]): number;
|
|
15
|
+
join(separator?: string): string;
|
|
16
|
+
lastIndexOf(...args: unknown[]): number;
|
|
17
|
+
map<U>(callbackFn: (value: unknown, index: number, array: unknown[]) => U, thisArg?: any): U[];
|
|
18
|
+
pop(): any;
|
|
19
|
+
push(this: any, ...items: any[]): any;
|
|
20
|
+
reduce(callbackFn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, ...args: any[]): any;
|
|
21
|
+
reduceRight(callbackFn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, ...args: any[]): any;
|
|
22
|
+
shift(): any;
|
|
23
|
+
some(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): boolean;
|
|
24
|
+
splice(start: number, deleteCount?: number): unknown[];
|
|
25
|
+
toReversed(): any;
|
|
26
|
+
toSorted(compareFn?: (a: unknown, b: unknown) => number): any;
|
|
27
|
+
toSpliced(start: number, deleteCount: number, ...items: any[]): any;
|
|
28
|
+
unshift(...items: any[]): number;
|
|
29
|
+
[Symbol.iterator](): Generator<unknown, void, unknown>;
|
|
30
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Computed<T> {
|
|
2
|
+
readonly value: T;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* 创建一个 computed,当依赖的值发生变化时,会重新计算值。
|
|
6
|
+
* computed 会返回一个对象,对象的 value 属性是计算的值。
|
|
7
|
+
* @param getter 计算函数,用于计算值
|
|
8
|
+
* @returns 一个对象,对象的 value 属性是计算的值
|
|
9
|
+
*/
|
|
10
|
+
export declare function computed<T>(getter: () => T): Computed<T>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum TrackOpTypes {
|
|
2
|
+
Get = "Get",
|
|
3
|
+
Has = "Has",
|
|
4
|
+
Iterate = "Iterate"
|
|
5
|
+
}
|
|
6
|
+
export declare enum TriggerOpTypes {
|
|
7
|
+
Set = "Set",
|
|
8
|
+
Add = "Add",
|
|
9
|
+
Delete = "Delete",
|
|
10
|
+
Clear = "Clear"
|
|
11
|
+
}
|
|
12
|
+
export declare function track(target: object, type: TrackOpTypes, key?: unknown): void;
|
|
13
|
+
export declare function trigger(target: object, type: TriggerOpTypes, key?: unknown): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function createMapHandlers(wrapper: (v: unknown) => unknown): {
|
|
2
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
3
|
+
keys(): Generator<unknown, void, unknown>;
|
|
4
|
+
values(): Generator<unknown, void, unknown>;
|
|
5
|
+
get(this: any, key: any): unknown;
|
|
6
|
+
set(this: any, key: any, value: any): Map<any, any>;
|
|
7
|
+
has(this: any, key: any): any;
|
|
8
|
+
delete(this: any, key: any): any;
|
|
9
|
+
forEach(this: any, callbackFn: (value: any, key: any, map: Map<any, any>) => void, thisArg?: any): void;
|
|
10
|
+
clear(this: any): void;
|
|
11
|
+
[Symbol.iterator](): Generator<unknown[], void, unknown>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
export declare const rawToProxyCache: WeakMap<object, any>;
|
|
2
|
+
export declare const proxyToRawCache: WeakMap<object, any>;
|
|
3
|
+
/**
|
|
4
|
+
* 将响应式对象转换为原始对象
|
|
5
|
+
* @param value 响应式对象
|
|
6
|
+
* @returns 原始对象
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const obj = reactive({
|
|
10
|
+
* name: 'John',
|
|
11
|
+
* age: 18
|
|
12
|
+
* })
|
|
13
|
+
* console.log(toRaw(obj))
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function toRaw<T>(value: T): T;
|
|
17
|
+
/**
|
|
18
|
+
* 检查对象是否是响应式对象
|
|
19
|
+
* @param value 要检查的对象
|
|
20
|
+
* @returns 是否是响应式对象
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* const obj = reactive({
|
|
24
|
+
* name: 'John',
|
|
25
|
+
* age: 18
|
|
26
|
+
* })
|
|
27
|
+
* console.log(isReactive(obj))
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function isReactive(value: any): boolean;
|
|
31
|
+
export interface ReactiveConfig {
|
|
32
|
+
readonly: boolean;
|
|
33
|
+
shallow: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 内部写入,用于避免类型为只读的响应式对象写入报错
|
|
37
|
+
* @param fn 要执行的函数
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export declare function internalWrite(fn: () => void): void;
|
|
41
|
+
export declare class ObjectReactiveHandler<T extends object> implements ProxyHandler<T> {
|
|
42
|
+
protected isShallow: boolean;
|
|
43
|
+
protected isReadonly: boolean;
|
|
44
|
+
constructor(config: ReactiveConfig);
|
|
45
|
+
set(target: T, p: string | symbol, newValue: any, receiver: any): boolean;
|
|
46
|
+
get(target: T, p: string | symbol, receiver: any): any;
|
|
47
|
+
deleteProperty(target: T, p: string | symbol): boolean;
|
|
48
|
+
ownKeys(target: T): ArrayLike<string | symbol>;
|
|
49
|
+
}
|
|
50
|
+
export declare class ArrayReactiveHandler extends ObjectReactiveHandler<any[]> {
|
|
51
|
+
interceptors: {
|
|
52
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
53
|
+
keys(): Generator<unknown, void, unknown>;
|
|
54
|
+
values(): Generator<unknown, void, unknown>;
|
|
55
|
+
concat(this: any, ...items: any[]): any[];
|
|
56
|
+
every(this: any, predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: unknown): any;
|
|
57
|
+
filter(this: any, predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): any;
|
|
58
|
+
find(predicate: (value: unknown, index: number, obj: unknown[]) => unknown, thisArg?: any): any;
|
|
59
|
+
findIndex(predicate: (value: unknown, index: number, obj: unknown[]) => unknown, thisArg?: any): number;
|
|
60
|
+
findLast(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): any;
|
|
61
|
+
findLastIndex(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): number;
|
|
62
|
+
forEach(callbackfn: (value: unknown, index: number, array: unknown[]) => void, thisArg?: any): any;
|
|
63
|
+
includes(...args: unknown[]): boolean;
|
|
64
|
+
indexOf(...args: unknown[]): number;
|
|
65
|
+
join(separator?: string): string;
|
|
66
|
+
lastIndexOf(...args: unknown[]): number;
|
|
67
|
+
map<U>(callbackFn: (value: unknown, index: number, array: unknown[]) => U, thisArg?: any): U[];
|
|
68
|
+
pop(): any;
|
|
69
|
+
push(this: any, ...items: any[]): any;
|
|
70
|
+
reduce(callbackFn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, ...args: any[]): any;
|
|
71
|
+
reduceRight(callbackFn: (previousValue: unknown, currentValue: unknown, currentIndex: number, array: unknown[]) => unknown, ...args: any[]): any;
|
|
72
|
+
shift(): any;
|
|
73
|
+
some(predicate: (value: unknown, index: number, array: unknown[]) => unknown, thisArg?: any): boolean;
|
|
74
|
+
splice(start: number, deleteCount?: number): unknown[];
|
|
75
|
+
toReversed(): any;
|
|
76
|
+
toSorted(compareFn?: (a: unknown, b: unknown) => number): any;
|
|
77
|
+
toSpliced(start: number, deleteCount: number, ...items: any[]): any;
|
|
78
|
+
unshift(...items: any[]): number;
|
|
79
|
+
[Symbol.iterator](): Generator<unknown, void, unknown>;
|
|
80
|
+
};
|
|
81
|
+
constructor(config: ReactiveConfig);
|
|
82
|
+
get(target: any[], p: string | symbol, receiver: any): any;
|
|
83
|
+
}
|
|
84
|
+
export declare class MapReactiveHandler extends ObjectReactiveHandler<Map<any, any> | WeakMap<object, any>> {
|
|
85
|
+
interceptors: {
|
|
86
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
87
|
+
keys(): Generator<unknown, void, unknown>;
|
|
88
|
+
values(): Generator<unknown, void, unknown>;
|
|
89
|
+
get(this: any, key: any): unknown;
|
|
90
|
+
set(this: any, key: any, value: any): Map<any, any>;
|
|
91
|
+
has(this: any, key: any): any;
|
|
92
|
+
delete(this: any, key: any): any;
|
|
93
|
+
forEach(this: any, callbackFn: (value: any, key: any, map: Map<any, any>) => void, thisArg?: any): void;
|
|
94
|
+
clear(this: any): void;
|
|
95
|
+
[Symbol.iterator](): Generator<unknown[], void, unknown>;
|
|
96
|
+
};
|
|
97
|
+
constructor(config: ReactiveConfig);
|
|
98
|
+
get(target: Map<any, any> | WeakMap<object, any>, p: string | symbol, receiver: any): any;
|
|
99
|
+
}
|
|
100
|
+
export declare class SetReactiveHandler extends ObjectReactiveHandler<Set<any> | WeakSet<object>> {
|
|
101
|
+
interceptors: {
|
|
102
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
103
|
+
keys(): Generator<unknown, void, unknown>;
|
|
104
|
+
values(): Generator<unknown, void, unknown>;
|
|
105
|
+
add(this: any, value: any): any;
|
|
106
|
+
delete(this: any, value: any): any;
|
|
107
|
+
has(this: any, key: any): any;
|
|
108
|
+
forEach(this: any, callbackFn: (value: any, value2: any, set: Set<any>) => void, thisArg?: any): void;
|
|
109
|
+
clear(this: any): void;
|
|
110
|
+
[Symbol.iterator](): Generator<unknown, void, unknown>;
|
|
111
|
+
};
|
|
112
|
+
constructor(config: ReactiveConfig);
|
|
113
|
+
get(target: Set<any> | WeakSet<object>, p: string | symbol, receiver: any): any;
|
|
114
|
+
}
|
|
115
|
+
export declare const defaultObjectReactiveHandler: ObjectReactiveHandler<object>;
|
|
116
|
+
export declare const defaultArrayReactiveHandler: ArrayReactiveHandler;
|
|
117
|
+
export declare const defaultMapReactiveHandler: MapReactiveHandler;
|
|
118
|
+
export declare const defaultSetReactiveHandler: SetReactiveHandler;
|
|
119
|
+
export declare const readonlyProxyHandler: ObjectReactiveHandler<object>;
|
|
120
|
+
export declare function createShallowReadonlyProxy<T extends object>(value: T): Readonly<T>;
|
|
121
|
+
/**
|
|
122
|
+
* 创建一个响应式对象
|
|
123
|
+
* @param raw 原始对象
|
|
124
|
+
* @returns 响应式对象
|
|
125
|
+
* @example
|
|
126
|
+
* ```tsx
|
|
127
|
+
* const obj = reactive({
|
|
128
|
+
* name: 'John',
|
|
129
|
+
* age: 18,
|
|
130
|
+
* children: [
|
|
131
|
+
* {
|
|
132
|
+
* name: 'Jane',
|
|
133
|
+
* age: 16
|
|
134
|
+
* }
|
|
135
|
+
* ]
|
|
136
|
+
* })
|
|
137
|
+
* console.log(obj.name)
|
|
138
|
+
* console.log(obj.children[0].name)
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export declare function reactive<T>(raw: T): T;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function createSetHandlers(wrapper: (v: unknown) => unknown): {
|
|
2
|
+
entries(): Generator<unknown[], void, unknown>;
|
|
3
|
+
keys(): Generator<unknown, void, unknown>;
|
|
4
|
+
values(): Generator<unknown, void, unknown>;
|
|
5
|
+
add(this: any, value: any): any;
|
|
6
|
+
delete(this: any, value: any): any;
|
|
7
|
+
has(this: any, key: any): any;
|
|
8
|
+
forEach(this: any, callbackFn: (value: any, value2: any, set: Set<any>) => void, thisArg?: any): void;
|
|
9
|
+
clear(this: any): void;
|
|
10
|
+
[Symbol.iterator](): Generator<unknown, void, unknown>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ArrayReactiveHandler, MapReactiveHandler, ObjectReactiveHandler, SetReactiveHandler } from './reactive';
|
|
2
|
+
export declare const defaultShallowObjectReactiveHandler: ObjectReactiveHandler<object>;
|
|
3
|
+
export declare const defaultShallowArrayReactiveHandler: ArrayReactiveHandler;
|
|
4
|
+
export declare const defaultShallowMapReactiveHandler: MapReactiveHandler;
|
|
5
|
+
export declare const defaultShallowSetReactiveHandler: SetReactiveHandler;
|
|
6
|
+
export declare function shallowReactive<T>(raw: T): T;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 组件状态实例,直接调用可以获取最新的状态,通过 set 方法可以更新状态
|
|
3
|
+
*/
|
|
4
|
+
export interface Signal<T> {
|
|
5
|
+
/**
|
|
6
|
+
* 直接调用一个 Signal 实例,可以获取最新状态
|
|
7
|
+
*/
|
|
8
|
+
(): T;
|
|
9
|
+
/**
|
|
10
|
+
* 更新组件状态的方法,可以传入最新的值
|
|
11
|
+
* @param newState
|
|
12
|
+
*/
|
|
13
|
+
set(newState: T): void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 组件状态管理器
|
|
17
|
+
* @param state 初始状态
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* function App() {
|
|
21
|
+
* // 初始化状态
|
|
22
|
+
* const state = createSignal(1)
|
|
23
|
+
*
|
|
24
|
+
* return () => {
|
|
25
|
+
* <div>
|
|
26
|
+
* <div>当前值为:{state()}</div>
|
|
27
|
+
* <div>
|
|
28
|
+
* <button type="button" onClick={() => {
|
|
29
|
+
* // 当点击时更新状态
|
|
30
|
+
* state.set(state() + 1)
|
|
31
|
+
* }
|
|
32
|
+
* }>updateState</button>
|
|
33
|
+
* </div>
|
|
34
|
+
* </div>
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
*/
|
|
38
|
+
export declare function createSignal<T>(state: T): Signal<T>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 创建一个 watch,当依赖的值发生变化时,会执行 callback 函数。
|
|
3
|
+
* watch 会返回一个函数,用于停止监听。
|
|
4
|
+
* @param trigger 触发函数,用于获取依赖的值
|
|
5
|
+
* @param callback 回调函数,当依赖的值发生变化时,会执行 callback 函数
|
|
6
|
+
* @returns 一个函数,用于停止监听
|
|
7
|
+
*/
|
|
8
|
+
export declare function watch<T>(trigger: () => T, callback: (newValue: T, oldValue: T) => void): () => void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Provider, Injector } from './di/_api';
|
|
2
|
+
import { ElementNamespace, JSXNode, NativeNode, NativeRenderer } from './base/_api';
|
|
3
|
+
/**
|
|
4
|
+
* Viewfly 配置项
|
|
5
|
+
*/
|
|
6
|
+
export interface Config {
|
|
7
|
+
/** 根节点 */
|
|
8
|
+
root: JSXNode;
|
|
9
|
+
/** 平台渲染器 */
|
|
10
|
+
nativeRenderer: NativeRenderer;
|
|
11
|
+
/** 应用的上下文 */
|
|
12
|
+
context?: Injector;
|
|
13
|
+
/** 是否自动更新视图 */
|
|
14
|
+
autoUpdate?: boolean;
|
|
15
|
+
/** 根节点命名空间 */
|
|
16
|
+
elementNamespace?: ElementNamespace;
|
|
17
|
+
}
|
|
18
|
+
export interface Application<T extends NativeNode = NativeNode> {
|
|
19
|
+
provide(providers: Provider | Provider[]): Application<T>;
|
|
20
|
+
mount(host: T): Application<T>;
|
|
21
|
+
use(module: Module | Module[]): Application<T>;
|
|
22
|
+
render(): Application<T>;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
export interface Module {
|
|
26
|
+
setup?(app: Application): void;
|
|
27
|
+
onAfterStartup?(app: Application): void;
|
|
28
|
+
onDestroy?(): void;
|
|
29
|
+
}
|
|
30
|
+
export declare function viewfly<T extends NativeNode>(config: Config): Application<T>;
|
package/package.json
CHANGED
|
@@ -1,43 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewfly/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.0",
|
|
4
4
|
"description": "Viewfly is a simple and easy-to-use JavaScript framework with an intuitive development experience.",
|
|
5
|
-
"main": "./
|
|
6
|
-
"module": "./
|
|
7
|
-
"typings": "./
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.esm.js",
|
|
7
|
+
"typings": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"types": "./
|
|
11
|
-
"import": "./
|
|
12
|
-
"require": "./
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.esm.js",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
13
|
},
|
|
14
14
|
"./jsx-runtime": {
|
|
15
|
-
"types": "./jsx-runtime/index.d.ts",
|
|
16
|
-
"import": "./jsx-runtime/index.esm.js",
|
|
17
|
-
"require": "./jsx-runtime/index.js"
|
|
15
|
+
"types": "./dist/jsx-runtime/index.d.ts",
|
|
16
|
+
"import": "./dist/jsx-runtime/index.esm.js",
|
|
17
|
+
"require": "./dist/jsx-runtime/index.js"
|
|
18
18
|
},
|
|
19
19
|
"./jsx-dev-runtime": {
|
|
20
|
-
"types": "./jsx-runtime/index.d.ts",
|
|
21
|
-
"import": "./jsx-runtime/index.esm.js",
|
|
22
|
-
"require": "./jsx-runtime/index.js"
|
|
20
|
+
"types": "./dist/jsx-runtime/index.d.ts",
|
|
21
|
+
"import": "./dist/jsx-runtime/index.esm.js",
|
|
22
|
+
"require": "./dist/jsx-runtime/index.js"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"build-d": "rollup --config rollup-d.config.ts --configPlugin @rollup/plugin-typescript",
|
|
29
|
-
"publish:lib": "npm run build:lib && npm publish --access=public"
|
|
30
|
-
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist/**/*"
|
|
27
|
+
],
|
|
31
28
|
"license": "MIT",
|
|
32
29
|
"keywords": [],
|
|
33
30
|
"devDependencies": {
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"rollup-plugin-dts": "^6.1.1",
|
|
40
|
-
"tslib": "^2.6.0"
|
|
31
|
+
"rimraf": "^6.0.1",
|
|
32
|
+
"tslib": "^2.8.1",
|
|
33
|
+
"typescript": "~5.8.3",
|
|
34
|
+
"vite": "^8.0.9",
|
|
35
|
+
"vite-plugin-dts": "^4.5.4"
|
|
41
36
|
},
|
|
42
37
|
"author": {
|
|
43
38
|
"name": "Tanbo",
|
|
@@ -48,10 +43,15 @@
|
|
|
48
43
|
"url": "git+https://github.com/viewfly/viewfly.git"
|
|
49
44
|
},
|
|
50
45
|
"bugs": {
|
|
51
|
-
"url": "https://github.com/viewfly/viewfly
|
|
46
|
+
"url": "https://github.com/viewfly/viewfly/issues"
|
|
52
47
|
},
|
|
53
|
-
"gitHead": "b66ca589f7662cd518fc2e5955b3e3ff9de83f94",
|
|
54
48
|
"dependencies": {
|
|
55
49
|
"reflect-metadata": "^0.2.2"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build:lib": "rimraf dist && pnpm run build && pnpm run build:jsx-runtime",
|
|
53
|
+
"build": "vite build --config vite.config.ts",
|
|
54
|
+
"build:jsx-runtime": "vite build --config vite.jsx-runtime.config.ts",
|
|
55
|
+
"publish:lib": "npm run build:lib && npm publish --access=public"
|
|
56
56
|
}
|
|
57
|
-
}
|
|
57
|
+
}
|