nine-9 1.8.0 → 1.9.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 +64 -40
- package/dist/index.js +719 -1
- package/dist/index.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.js +625 -0
- package/dist/test.js.map +1 -0
- package/package.json +43 -42
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ type KebabToCamel<S extends string> = S extends `${infer First}-${infer Rest}` ?
|
|
|
17
17
|
type ObjectToEntryUnion<T> = {
|
|
18
18
|
[K in keyof T]: [K, T[K]];
|
|
19
19
|
}[keyof T];
|
|
20
|
+
declare function defineTemplate<T = void>(): T;
|
|
20
21
|
|
|
21
22
|
type Wrapper<T> = {
|
|
22
23
|
get(): T;
|
|
@@ -24,6 +25,7 @@ type Wrapper<T> = {
|
|
|
24
25
|
updateOnly(): void;
|
|
25
26
|
event: EventSubcriber<[T, T]>;
|
|
26
27
|
};
|
|
28
|
+
declare function normalizeWrap<T>(data: T | Wrapper<T>): Wrapper<T>;
|
|
27
29
|
declare function wrap<T>(initialData: T, wrapperOptions?: Partial<Wrapper<T>>): Wrapper<T>;
|
|
28
30
|
declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
|
|
29
31
|
declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
|
|
@@ -70,30 +72,13 @@ type HostTree<E extends SupportedHTMLElements = SupportedHTMLElements, T = HTMLE
|
|
|
70
72
|
};
|
|
71
73
|
declare function tree<E extends SupportedHTMLElements>(data: E | Node): HostTree<E, HTMLElementTagNameMap[E], SupportedHTMLRawAttributes[E]>;
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
type SlotOutput = () => Wrapper<SourceTree>;
|
|
76
|
-
declare function pipeExtract(input: SlotInput): SlotOutput;
|
|
75
|
+
declare function camelToHyphen<T extends string>(str: T): T;
|
|
76
|
+
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
interface EventOptions<T> {
|
|
82
|
-
bubbleable?: boolean;
|
|
83
|
-
template?: T;
|
|
84
|
-
}
|
|
85
|
-
declare function defineEvent<T, N extends string>(name: N, options?: EventOptions<T>): EventDescriptor<T, N>;
|
|
78
|
+
declare function typedIsArray<T>(arr: unknown[]): arr is T[];
|
|
79
|
+
declare function putIntoArray<T>(data: T): T extends (infer R)[] ? R[] : [T];
|
|
80
|
+
declare function createArray<T>(length: number, filler: () => T): T[];
|
|
86
81
|
|
|
87
|
-
interface ComponentRenderEntry<P extends ComponentPropertyStore, E extends ComponentEventStore> {
|
|
88
|
-
(props?: ComponentPropertyInputDict<P>, slot?: SlotInput): ComponentInstance<E>;
|
|
89
|
-
}
|
|
90
|
-
interface ComponentInternalRender<P extends ComponentPropertyStore, E extends ComponentEventStore> {
|
|
91
|
-
(options: ComponentPropertyOutputDict<P>, slot: SlotOutput, emit: <D extends E[number], K extends D["name"]>(key: K, data: D extends infer R extends EventDescriptor<unknown, string> ? R["name"] extends K ? R["template"] : never : never) => void): SourceTree;
|
|
92
|
-
}
|
|
93
|
-
type Component<P extends ComponentPropertyStore, E extends ComponentEventStore> = ComponentRenderEntry<P, E> & ComponentOption<P, E>;
|
|
94
|
-
interface PropertyTransformer<I, O> {
|
|
95
|
-
(data: I): O;
|
|
96
|
-
}
|
|
97
82
|
interface ComponentPropertyDescriptor<I = unknown, O = unknown, R extends boolean = boolean> {
|
|
98
83
|
validate?: (data: I) => boolean;
|
|
99
84
|
transform: PropertyTransformer<I, O>;
|
|
@@ -102,8 +87,6 @@ interface ComponentPropertyDescriptor<I = unknown, O = unknown, R extends boolea
|
|
|
102
87
|
downloadable?: boolean;
|
|
103
88
|
uploadable?: boolean;
|
|
104
89
|
}
|
|
105
|
-
type ComponentEventStore = EventDescriptor<unknown, string>[];
|
|
106
|
-
type ComponentPropertyStore = Record<string, ComponentPropertyDescriptor>;
|
|
107
90
|
type ComponentPropertyInputDict<P extends ComponentPropertyStore> = {
|
|
108
91
|
[K in keyof P as P[K]["required"] extends true ? K : never]: P[K] extends ComponentPropertyDescriptor<unknown, infer R> ? R | Wrapper<R> : never;
|
|
109
92
|
} & {
|
|
@@ -112,14 +95,67 @@ type ComponentPropertyInputDict<P extends ComponentPropertyStore> = {
|
|
|
112
95
|
type ComponentPropertyOutputDict<P extends ComponentPropertyStore> = {
|
|
113
96
|
[K in keyof P]: P[K] extends ComponentPropertyDescriptor<unknown, infer R> ? Wrapper<R> : never;
|
|
114
97
|
};
|
|
115
|
-
|
|
98
|
+
declare function rawProperty<T>(): PropertyTransformer<unknown, T>;
|
|
99
|
+
declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor: ComponentPropertyDescriptor<I, O, R>): Required<ComponentPropertyDescriptor<I, O, R>>;
|
|
100
|
+
declare function validateStore(store: ComponentPropertyStore): void;
|
|
101
|
+
declare function hostdown<T extends ComponentPropertyStore>(upstream?: ComponentPropertyInputDict<T>, store?: T): ComponentPropertyOutputDict<T>;
|
|
102
|
+
|
|
103
|
+
type SlotDescriptor<T = unknown, N extends string = string, R extends boolean = boolean> = {
|
|
104
|
+
name: N;
|
|
105
|
+
} & SlotOptions<T, R>;
|
|
106
|
+
interface SlotOptions<T, R extends boolean> {
|
|
107
|
+
template: T;
|
|
108
|
+
required?: R;
|
|
109
|
+
defaultValue?: SourceTree;
|
|
110
|
+
}
|
|
111
|
+
type SlotInput<T> = (data: Wrapper<T>) => SourceTree | Wrapper<SourceTree>;
|
|
112
|
+
type SlotOutput<T> = (data: T | Wrapper<T>) => Wrapper<SourceTree>;
|
|
113
|
+
type ComponentSlotInputDict<T extends ComponentSlotStore> = {
|
|
114
|
+
[K in T[number] as K["name"]]?: SlotInput<K["template"]>;
|
|
115
|
+
};
|
|
116
|
+
type ComponentSlotOutputDict<T extends ComponentSlotStore> = {
|
|
117
|
+
[K in T[number] as K["name"]]-?: SlotOutput<K["template"]>;
|
|
118
|
+
};
|
|
119
|
+
declare function extractInput<T>(render: SlotInput<T>): SlotOutput<T>;
|
|
120
|
+
declare function renderSlots<T extends ComponentSlotStore>(rawInput?: ComponentSlotInputDict<T>, store?: T): ComponentSlotOutputDict<T>;
|
|
121
|
+
declare function defineSlot<N extends string, R extends boolean, T>(name: N, options: SlotOptions<T, R>): {
|
|
122
|
+
template: T;
|
|
123
|
+
required?: R | undefined;
|
|
124
|
+
defaultValue?: SourceTree;
|
|
125
|
+
name: N;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
type EventDescriptor<T = unknown, N extends string = string> = {
|
|
129
|
+
name: N;
|
|
130
|
+
} & EventOptions<T>;
|
|
131
|
+
interface EventOptions<T> {
|
|
132
|
+
bubbleable?: boolean;
|
|
133
|
+
template?: T;
|
|
134
|
+
}
|
|
135
|
+
declare function defineEvent<T, N extends string>(name: N, options?: EventOptions<T>): EventDescriptor<T, N>;
|
|
136
|
+
|
|
137
|
+
interface ComponentRenderEntry<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
138
|
+
(props?: ComponentPropertyInputDict<P>, slot?: ComponentSlotInputDict<S>): ComponentInstance<E>;
|
|
139
|
+
}
|
|
140
|
+
interface ComponentInternalRender<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
141
|
+
(options: ComponentPropertyOutputDict<P>, slot: ComponentSlotOutputDict<S>, emit: <D extends E[number], K extends D["name"]>(key: K, data: D extends infer R extends EventDescriptor ? R["name"] extends K ? R["template"] : never : never) => void): SourceTree;
|
|
142
|
+
}
|
|
143
|
+
type Component<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> = ComponentRenderEntry<P, E, S> & ComponentOption<P, E, S>;
|
|
144
|
+
interface PropertyTransformer<I, O> {
|
|
145
|
+
(data: I): O;
|
|
146
|
+
}
|
|
147
|
+
type ComponentPropertyStore = Record<string, ComponentPropertyDescriptor>;
|
|
148
|
+
type ComponentEventStore = EventDescriptor[];
|
|
149
|
+
type ComponentSlotStore = SlotDescriptor[];
|
|
150
|
+
interface ComponentOption<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
116
151
|
props?: P;
|
|
117
152
|
events?: E;
|
|
118
153
|
styles?: StyleSet[];
|
|
154
|
+
slots?: S;
|
|
119
155
|
}
|
|
120
156
|
type ComponentInstance<E extends ComponentEventStore = ComponentEventStore> = {
|
|
121
157
|
mount(to: string | HTMLElement): void;
|
|
122
|
-
on<D extends E[number], K extends D["name"]>(key: K, data: (data: D extends infer R extends EventDescriptor
|
|
158
|
+
on<D extends E[number], K extends D["name"]>(key: K, data: (data: D extends infer R extends EventDescriptor ? R["name"] extends K ? R["template"] : never : never) => void): ComponentInstance<E>;
|
|
123
159
|
$: HostTree;
|
|
124
160
|
};
|
|
125
161
|
type RawSourceTree = [
|
|
@@ -136,19 +172,7 @@ declare function render(nodeTree: SourceTree): HostTree;
|
|
|
136
172
|
declare function $<T>(data: Wrapper<T>): Wrapper<SourceTree>;
|
|
137
173
|
declare function flagment<T extends string>(uuid: T): `nine_${string}`;
|
|
138
174
|
declare function attachUUID(root: Node, uuid: string): Node;
|
|
139
|
-
declare function createComponent<P extends ComponentPropertyStore, E extends EventDescriptor
|
|
140
|
-
|
|
141
|
-
declare function rawProperty<T>(): PropertyTransformer<unknown, T>;
|
|
142
|
-
declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor: ComponentPropertyDescriptor<I, O, R>): Required<ComponentPropertyDescriptor<I, O, R>>;
|
|
143
|
-
declare function validateStore(store: ComponentPropertyStore): void;
|
|
144
|
-
declare function hostdown<T extends ComponentPropertyStore>(upstream?: ComponentPropertyInputDict<T>, store?: T): ComponentPropertyOutputDict<T>;
|
|
145
|
-
|
|
146
|
-
declare function camelToHyphen<T extends string>(str: T): T;
|
|
147
|
-
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
148
|
-
|
|
149
|
-
declare function typedIsArray<T>(arr: unknown[]): arr is T[];
|
|
150
|
-
declare function putIntoArray<T>(data: T): T extends (infer R)[] ? R[] : [T];
|
|
151
|
-
declare function createArray<T>(length: number, filler: () => T): T[];
|
|
175
|
+
declare function createComponent<P extends ComponentPropertyStore, E extends EventDescriptor, S extends SlotDescriptor>(options: ComponentOption<P, E[], S[]>, internalRenderer: ComponentInternalRender<P, E[], S[]>): Component<P, E[], S[]>;
|
|
152
176
|
|
|
153
177
|
declare namespace logo {
|
|
154
178
|
export { };
|
|
@@ -189,4 +213,4 @@ declare const _default: {
|
|
|
189
213
|
}, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[]>;
|
|
190
214
|
};
|
|
191
215
|
|
|
192
|
-
export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyDescriptor, type ComponentPropertyInputDict, type ComponentPropertyOutputDict, type ComponentPropertyStore, type ComponentRenderEntry, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, type HostTree, type HostTreeHookStore, type HostTreeHooks, type KebabToCamel, type Normalize, type ObjectToEntryUnion, type PropertyTransformer, type
|
|
216
|
+
export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyDescriptor, type ComponentPropertyInputDict, type ComponentPropertyOutputDict, type ComponentPropertyStore, type ComponentRenderEntry, type ComponentSlotInputDict, type ComponentSlotOutputDict, type ComponentSlotStore, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, type HostTree, type HostTreeHookStore, type HostTreeHooks, type KebabToCamel, type Normalize, type ObjectToEntryUnion, type PropertyTransformer, type RawSourceTree, type SlotDescriptor, type SlotInput, type SlotOptions, type SlotOutput, type SourceTree, type StyleSet, type Valueof, type Wrapper, index as assets, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, _default as examples, extractInput, flagment, hostdown, hyphenToCamel, normalizePropertyDescriptor, normalizeWrap, putIntoArray, rawProperty, render, renderSlots, styleSet, sync, tree, typedIsArray, validateStore, when, wrap };
|