@tempots/dom 26.7.5 → 26.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/README.md +133 -2
- package/dom/browser-context.d.ts +4 -3
- package/dom/dom-context.d.ts +1 -1
- package/dom/headless-context.d.ts +3 -3
- package/index.cjs +1 -1
- package/index.js +359 -354
- package/package.json +1 -1
- package/renderable/portal.d.ts +1 -1
- package/renderable/render.d.ts +25 -8
package/package.json
CHANGED
package/renderable/portal.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ import { Renderable, TNode } from '../types/domain';
|
|
|
9
9
|
* @returns The result of rendering the `node` into the selected DOM element.
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export declare const Portal: (selector: string, node: TNode) => Renderable;
|
|
12
|
+
export declare const Portal: (selector: string | HTMLElement, node: TNode) => Renderable;
|
package/renderable/render.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Renderable } from '../types/domain';
|
|
1
|
+
import { Providers, Renderable } from '../types/domain';
|
|
2
2
|
import { DOMContext } from '../dom/dom-context';
|
|
3
3
|
import { HeadlessPortal } from '../dom/headless-context';
|
|
4
4
|
import { Value } from '../std/value';
|
|
@@ -28,6 +28,10 @@ export type RenderOptions = {
|
|
|
28
28
|
* Whether to dispose the renderable when the parent element is removed from the DOM.
|
|
29
29
|
*/
|
|
30
30
|
disposeWithParent?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* The providers to use for the renderable.
|
|
33
|
+
*/
|
|
34
|
+
providers?: Providers;
|
|
31
35
|
};
|
|
32
36
|
/**
|
|
33
37
|
* Renders a `Renderable` node into a specified parent element or selector.
|
|
@@ -39,7 +43,25 @@ export type RenderOptions = {
|
|
|
39
43
|
* @throws Throws a `RenderingError` if the parent element cannot be found by the provided selector.
|
|
40
44
|
* @public
|
|
41
45
|
*/
|
|
42
|
-
export declare const render: (node: Renderable, parent: Node | string, { doc, clear, disposeWithParent }?: RenderOptions) => () => void;
|
|
46
|
+
export declare const render: (node: Renderable, parent: Node | string, { doc, clear, disposeWithParent, providers }?: RenderOptions) => () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Options for running a headless environment.
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
export type HeadlessOptions = {
|
|
52
|
+
/**
|
|
53
|
+
* The initial URL for the headless environment.
|
|
54
|
+
*/
|
|
55
|
+
startUrl?: Value<string>;
|
|
56
|
+
/**
|
|
57
|
+
* The selector used to find the root element in the headless environment.
|
|
58
|
+
*/
|
|
59
|
+
selector: string;
|
|
60
|
+
/**
|
|
61
|
+
* The providers to use for the renderable.
|
|
62
|
+
*/
|
|
63
|
+
providers?: Providers;
|
|
64
|
+
};
|
|
43
65
|
/**
|
|
44
66
|
* Runs a renderable function in a headless environment.
|
|
45
67
|
*
|
|
@@ -50,10 +72,7 @@ export declare const render: (node: Renderable, parent: Node | string, { doc, cl
|
|
|
50
72
|
* @returns An object containing the clear function, root element, and current URL Signal of the headless environment.
|
|
51
73
|
* @public
|
|
52
74
|
*/
|
|
53
|
-
export declare const runHeadless: (makeRenderable: () => Renderable, { startUrl, selector, }?: {
|
|
54
|
-
startUrl?: Value<string>;
|
|
55
|
-
selector?: string;
|
|
56
|
-
}) => {
|
|
75
|
+
export declare const runHeadless: (makeRenderable: () => Renderable, { startUrl, selector, providers, }?: HeadlessOptions) => {
|
|
57
76
|
clear: (removeTree?: boolean) => void;
|
|
58
77
|
root: HeadlessPortal;
|
|
59
78
|
currentURL: import('..').Prop<string>;
|
|
@@ -83,9 +102,7 @@ export declare const CLASS_PLACEHOLDER_ATTR = "data-tts-class";
|
|
|
83
102
|
* const renderWithCheerio = (html: string, root: HeadlessPortal) => {
|
|
84
103
|
* const $ = cheerio.load(html)
|
|
85
104
|
*
|
|
86
|
-
* // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
105
|
* const adapter = new HeadlessAdapter<cheerio.Cheerio<any>>({
|
|
88
|
-
* // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
106
|
* select: (selector: string): cheerio.Cheerio<any>[] => [$(selector)],
|
|
90
107
|
* getAttribute: (el, name: string) => el.attr(name) ?? null,
|
|
91
108
|
* setAttribute: (el, name: string, value: string | null) => {
|