Skip to content

Commit 02d046d

Browse files
authored
feat: export isStore and isTask functions; update API documentation (#7716)
* feat: export isStore and isTask functions; update API documentation * feat: add _isTask function and update API documentation; remove isStore function * feat: export isStore function for public use * feat: add _isStore function and update API documentation * refactor: remove _isStore and _isTask functions from API documentation and internal exports * feat: expand internal vnode and mapArray utilities with new exports and documentation
1 parent aad9ef6 commit 02d046d

File tree

7 files changed

+85
-4
lines changed

7 files changed

+85
-4
lines changed

packages/qwik/src/core/client/util-mapArray.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { assertTrue } from '../shared/error/assert';
22

3+
/** @internal */
34
export const mapApp_findIndx = <T>(array: (T | null)[], key: string, start: number): number => {
45
assertTrue(start % 2 === 0, 'Expecting even number.');
56
let bottom = (start as number) >> 1;
@@ -19,6 +20,7 @@ export const mapApp_findIndx = <T>(array: (T | null)[], key: string, start: numb
1920
return (bottom << 1) ^ -1;
2021
};
2122

23+
/** @internal */
2224
export const mapArray_set = <T>(
2325
array: (T | null)[],
2426
key: string,
@@ -48,6 +50,7 @@ export const mapApp_remove = <T>(array: (T | null)[], key: string, start: number
4850
return value;
4951
};
5052

53+
/** @internal */
5154
export const mapArray_get = <T>(array: (T | null)[], key: string, start: number): T | null => {
5255
const indx = mapApp_findIndx(array, key, start);
5356
if (indx >= 0) {

packages/qwik/src/core/client/vnode.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ export const vnode_isElementOrVirtualVNode = (
317317
return (flag & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK) !== 0;
318318
};
319319

320+
/** @internal */
320321
export const vnode_isMaterialized = (vNode: VNode): boolean => {
321322
assertDefined(vNode, 'Missing vNode');
322323
const flag = (vNode as VNode)[VNodeProps.flags];
@@ -327,12 +328,14 @@ export const vnode_isMaterialized = (vNode: VNode): boolean => {
327328
);
328329
};
329330

331+
/** @internal */
330332
export const vnode_isTextVNode = (vNode: VNode): vNode is TextVNode => {
331333
assertDefined(vNode, 'Missing vNode');
332334
const flag = (vNode as VNode)[VNodeProps.flags];
333335
return (flag & VNodeFlags.Text) === VNodeFlags.Text;
334336
};
335337

338+
/** @internal */
336339
export const vnode_isVirtualVNode = (vNode: VNode): vNode is VirtualVNode => {
337340
assertDefined(vNode, 'Missing vNode');
338341
const flag = (vNode as VNode)[VNodeProps.flags];
@@ -384,6 +387,7 @@ export const vnode_getNodeTypeName = (vNode: VNode): string => {
384387
return '<unknown>';
385388
};
386389

390+
/** @internal */
387391
export const vnode_ensureElementInflated = (vnode: VNode) => {
388392
const flags = vnode[VNodeProps.flags];
389393
if ((flags & VNodeFlags.INFLATED_TYPE_MASK) === VNodeFlags.Element) {
@@ -1233,6 +1237,7 @@ export const vnode_setText = (journal: VNodeJournal, textVNode: TextVNode, text:
12331237
journal.push(VNodeJournalOpCode.SetText, textNode, (textVNode[TextVNodeProps.text] = text));
12341238
};
12351239

1240+
/** @internal */
12361241
export const vnode_getFirstChild = (vnode: VNode): VNode | null => {
12371242
if (vnode_isTextVNode(vnode)) {
12381243
return null;
@@ -1592,6 +1597,7 @@ const processVNodeData = (
15921597
}
15931598
};
15941599

1600+
/** @internal */
15951601
export const vnode_getNextSibling = (vnode: VNode): VNode | null => {
15961602
return vnode[VNodeProps.nextSibling];
15971603
};
@@ -1600,6 +1606,7 @@ export const vnode_getPreviousSibling = (vnode: VNode): VNode | null => {
16001606
return vnode[VNodeProps.previousSibling];
16011607
};
16021608

1609+
/** @internal */
16031610
export const vnode_getAttrKeys = (vnode: ElementVNode | VirtualVNode): string[] => {
16041611
const type = vnode[VNodeProps.flags];
16051612
if ((type & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK) !== 0) {
@@ -1651,6 +1658,7 @@ export const vnode_setAttr = (
16511658
}
16521659
};
16531660

1661+
/** @internal */
16541662
export const vnode_getAttr = (vnode: VNode, key: string): string | null => {
16551663
const type = vnode[VNodeProps.flags];
16561664
if ((type & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK) !== 0) {
@@ -1693,6 +1701,7 @@ export const vnode_setProp = (vnode: VirtualVNode | ElementVNode, key: string, v
16931701
}
16941702
};
16951703

1704+
/** @internal */
16961705
export const vnode_getPropStartIndex = (vnode: VNode): number => {
16971706
const type = vnode[VNodeProps.flags] & VNodeFlags.TYPE_MASK;
16981707
if (type === VNodeFlags.Element) {
@@ -1703,6 +1712,7 @@ export const vnode_getPropStartIndex = (vnode: VNode): number => {
17031712
throw qError(QError.invalidVNodeType, [type]);
17041713
};
17051714

1715+
/** @internal */
17061716
export const vnode_getProps = (vnode: VNode): unknown[] => {
17071717
return vnode[vnode_getPropStartIndex(vnode)] as unknown[];
17081718
};

packages/qwik/src/core/internal.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,25 @@ export type {
1515
VNode as _VNode,
1616
VNodeFlags as _VNodeFlags,
1717
} from './client/types';
18-
export { vnode_toString as _vnode_toString } from './client/vnode';
18+
export {
19+
vnode_toString as _vnode_toString,
20+
vnode_getPropStartIndex as _vnode_getPropStartIndex,
21+
vnode_getProps as _vnode_getProps,
22+
vnode_isTextVNode as _vnode_isTextVNode,
23+
vnode_isVirtualVNode as _vnode_isVirtualVNode,
24+
vnode_getFirstChild as _vnode_getFirstChild,
25+
vnode_isMaterialized as _vnode_isMaterialized,
26+
vnode_getNextSibling as _vnode_getNextSibling,
27+
vnode_ensureElementInflated as _vnode_ensureElementInflated,
28+
vnode_getAttrKeys as _vnode_getAttrKeys,
29+
vnode_getAttr as _vnode_getAttr,
30+
} from './client/vnode';
31+
export {
32+
mapApp_findIndx as _mapApp_findIndx,
33+
mapArray_get as _mapArray_get,
34+
mapArray_set as _mapArray_set,
35+
} from './client/util-mapArray';
36+
1937
export { _wrapProp, _wrapSignal } from './reactive-primitives/internal-api';
2038
export { SubscriptionData as _SubscriptionData } from './reactive-primitives/subscription-data';
2139
export { _EFFECT_BACK_REF } from './reactive-primitives/types';
@@ -52,5 +70,6 @@ export {
5270
_jsxBranch,
5371
_waitUntilRendered,
5472
} from './use/use-core';
55-
export { scheduleTask as _task } from './use/use-task';
73+
export { scheduleTask as _task, isTask as _isTask } from './use/use-task';
74+
export { isStore as _isStore } from './reactive-primitives/impl/store';
5675
export { _resolveContextWithoutSequentialScope } from './use/use-context';

packages/qwik/src/core/qwik.core.api.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,19 @@ export interface ISsrComponentFrame {
427427
scopedStyleIds: Set<string>;
428428
}
429429

430+
// Warning: (ae-forgotten-export) The symbol "StoreTarget" needs to be exported by the entry point index.d.ts
431+
//
432+
// @internal (undocumented)
433+
export const _isStore: (value: StoreTarget) => boolean;
434+
430435
// @internal (undocumented)
431436
export function _isStringifiable(value: unknown): value is _Stringifiable;
432437

438+
// Warning: (ae-forgotten-export) The symbol "Task" needs to be exported by the entry point index.d.ts
439+
//
440+
// @internal (undocumented)
441+
export const _isTask: (value: any) => value is Task;
442+
433443
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
434444
//
435445
// @public
@@ -501,6 +511,15 @@ export type JSXTagName = keyof HTMLElementTagNameMap | Omit<string, keyof HTMLEl
501511
// @public
502512
export type KnownEventNames = LiteralUnion<AllEventKeys, string>;
503513

514+
// @internal (undocumented)
515+
export const _mapApp_findIndx: <T>(array: (T | null)[], key: string, start: number) => number;
516+
517+
// @internal (undocumented)
518+
export const _mapArray_get: <T>(array: (T | null)[], key: string, start: number) => T | null;
519+
520+
// @internal (undocumented)
521+
export const _mapArray_set: <T>(array: (T | null)[], key: string, value: T | null, start: number) => void;
522+
504523
// @public @deprecated (undocumented)
505524
export type NativeAnimationEvent = AnimationEvent;
506525

@@ -1828,6 +1847,36 @@ export type VisibleTaskStrategy = 'intersection-observer' | 'document-ready' | '
18281847
// @internal (undocumented)
18291848
export type _VNode = _ElementVNode | _TextVNode | _VirtualVNode;
18301849

1850+
// @internal (undocumented)
1851+
export const _vnode_ensureElementInflated: (vnode: _VNode) => void;
1852+
1853+
// @internal (undocumented)
1854+
export const _vnode_getAttr: (vnode: _VNode, key: string) => string | null;
1855+
1856+
// @internal (undocumented)
1857+
export const _vnode_getAttrKeys: (vnode: _ElementVNode | _VirtualVNode) => string[];
1858+
1859+
// @internal (undocumented)
1860+
export const _vnode_getFirstChild: (vnode: _VNode) => _VNode | null;
1861+
1862+
// @internal (undocumented)
1863+
export const _vnode_getNextSibling: (vnode: _VNode) => _VNode | null;
1864+
1865+
// @internal (undocumented)
1866+
export const _vnode_getProps: (vnode: _VNode) => unknown[];
1867+
1868+
// @internal (undocumented)
1869+
export const _vnode_getPropStartIndex: (vnode: _VNode) => number;
1870+
1871+
// @internal (undocumented)
1872+
export const _vnode_isMaterialized: (vNode: _VNode) => boolean;
1873+
1874+
// @internal (undocumented)
1875+
export const _vnode_isTextVNode: (vNode: _VNode) => vNode is _TextVNode;
1876+
1877+
// @internal (undocumented)
1878+
export const _vnode_isVirtualVNode: (vNode: _VNode) => vNode is _VirtualVNode;
1879+
18311880
// @internal (undocumented)
18321881
export function _vnode_toString(this: _VNode | null, depth?: number, offset?: string, materialize?: boolean, siblings?: boolean, colorize?: boolean): string;
18331882

packages/qwik/src/core/reactive-primitives/impl/store.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const unwrapStore = <T>(value: T): T => {
4141
return getStoreTarget<any>(value) || value;
4242
};
4343

44+
/** @internal */
4445
export const isStore = (value: StoreTarget): boolean => {
4546
return STORE_TARGET in value;
4647
};

packages/qwik/src/core/reactive-primitives/signal.public.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
} from './signal-api';
99
import type { ComputedReturnType } from '../use/use-computed';
1010
import type { AsyncComputedReturnType } from '../use/use-async-computed';
11-
1211
export { isSignal } from './utils';
1312

1413
/** @public */

packages/qwik/src/core/use/use-task.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ export class Task<T = unknown, B = T>
220220
super();
221221
}
222222
}
223-
223+
/** @internal */
224224
export const isTask = (value: any): value is Task => {
225225
return value instanceof Task;
226226
};

0 commit comments

Comments
 (0)