element-vir 9.1.1 → 9.1.3

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.
@@ -1,6 +1,7 @@
1
1
  import { UnPromise } from '@augment-vir/common';
2
2
  import { AsyncState } from '../properties/async-state';
3
- export declare function renderAsyncState<T>(asyncState: AsyncState<T>,
4
- /** This value will be rendered if the async state has not settled yet. */
5
- fallback: unknown, resolutionRender?: ((resolved: UnPromise<T>) => unknown) | undefined, errorRender?: ((error: Error) => unknown) | undefined): unknown;
3
+ export declare function renderAsyncState<T, FallbackResult, ResolutionRenderResult = never, ErrorRenderResult = never>(asyncState: AsyncState<T>, fallback: FallbackResult, resolutionRender: (resolved: UnPromise<T>) => ResolutionRenderResult, errorRender: (error: Error) => ErrorRenderResult): FallbackResult | ResolutionRenderResult | ErrorRenderResult;
4
+ export declare function renderAsyncState<T, FallbackResult, ResolutionRenderResult = never, ErrorRenderResult = never>(asyncState: AsyncState<T>, fallback: FallbackResult, resolutionRender: (resolved: UnPromise<T>) => ResolutionRenderResult, errorRender?: undefined): FallbackResult | ResolutionRenderResult | string;
5
+ export declare function renderAsyncState<T, FallbackResult, ResolutionRenderResult = never, ErrorRenderResult = never>(asyncState: AsyncState<T>, fallback: FallbackResult, resolutionRender: undefined, errorRender: (error: Error) => ErrorRenderResult): FallbackResult | UnPromise<T> | ErrorRenderResult;
6
+ export declare function renderAsyncState<T, FallbackResult, ResolutionRenderResult = never, ErrorRenderResult = never>(asyncState: AsyncState<T>, fallback: FallbackResult, resolutionRender?: undefined, errorRender?: undefined): FallbackResult | UnPromise<T> | string;
6
7
  //# sourceMappingURL=render-async-state.directive.d.ts.map
@@ -1,14 +1,22 @@
1
1
  import { extractErrorMessage, isPromiseLike } from '@augment-vir/common';
2
+ // full function type
2
3
  export function renderAsyncState(asyncState,
3
4
  /** This value will be rendered if the async state has not settled yet. */
4
5
  fallback, resolutionRender, errorRender) {
5
6
  if (asyncState instanceof Error) {
6
- return errorRender ? errorRender(asyncState) : extractErrorMessage(asyncState);
7
+ const errorResult = errorRender
8
+ ? errorRender(asyncState)
9
+ : extractErrorMessage(asyncState);
10
+ return errorResult;
7
11
  }
8
12
  else if (isPromiseLike(asyncState)) {
9
- return fallback;
13
+ const fallbackResult = fallback;
14
+ return fallbackResult;
10
15
  }
11
16
  else {
12
- return resolutionRender ? resolutionRender(asyncState) : asyncState;
17
+ const resolutionResult = resolutionRender
18
+ ? resolutionRender(asyncState)
19
+ : asyncState;
20
+ return resolutionResult;
13
21
  }
14
22
  }
@@ -3,6 +3,7 @@ import { JsonValue, Promisable } from 'type-fest';
3
3
  import { PickAndBlockOthers } from '../../augments/type';
4
4
  import { PropertyInitMapBase } from './element-properties';
5
5
  export type AsyncState<ValueGeneric> = Error | Promisable<UnPromise<ValueGeneric>>;
6
+ type ActualJsonValue = JsonValue | Partial<Record<string, JsonValue | undefined>>;
6
7
  type AllSetValueProperties<ValueGeneric> = {
7
8
  /** Set a new value directly without using any promises. */
8
9
  resolvedValue: UnPromise<ValueGeneric>;
@@ -15,7 +16,7 @@ type AllSetValueProperties<ValueGeneric> = {
15
16
  * Set this to undefined to disabled automatic updating. Meaning, createPromise will only be
16
17
  * called the first time.
17
18
  */
18
- trigger: JsonValue | Readonly<JsonValue> | undefined;
19
+ trigger: ActualJsonValue | Readonly<ActualJsonValue> | undefined;
19
20
  newPromise: Promise<UnPromise<ValueGeneric>>;
20
21
  /** Clear the current value and trigger createPromise to get called again on the next render. */
21
22
  forceUpdate: true;
@@ -1,11 +1,12 @@
1
1
  import { TemplateResult } from 'lit';
2
+ import { Primitive } from 'type-fest';
2
3
  import { TypedEvent } from '../typed-event/typed-event';
3
4
  import { DeclarativeElement, HostInstanceType } from './declarative-element';
4
5
  import { CustomElementTagName } from './declarative-element-init';
5
6
  import { AsyncStateInputs, MaybeAsyncStateToSync } from './properties/async-state';
6
7
  import { EventDescriptorMap, EventInitMapEventDetailExtractor, EventsInitMap } from './properties/element-events';
7
8
  import { PropertyInitMapBase } from './properties/element-properties';
8
- export type RenderOutput = TemplateResult | string | ReadonlyArray<TemplateResult> | ReadonlyArray<string>;
9
+ export type RenderOutput = TemplateResult | Primitive | ReadonlyArray<TemplateResult> | ReadonlyArray<Primitive>;
9
10
  export type RenderCallback<TagNameGeneric extends CustomElementTagName = any, InputsGeneric extends PropertyInitMapBase = any, StateGeneric extends PropertyInitMapBase = any, EventsInitGeneric extends EventsInitMap = any, HostClassKeys extends string = any, CssVarKeys extends string = any> = (params: RenderParams<TagNameGeneric, InputsGeneric, StateGeneric, EventsInitGeneric, HostClassKeys, CssVarKeys>) => RenderOutput;
10
11
  export type InitCallback<TagNameGeneric extends CustomElementTagName, InputsGeneric extends PropertyInitMapBase, StateGeneric extends PropertyInitMapBase, EventsInitGeneric extends EventsInitMap, HostClassKeys extends string, CssVarKeys extends string> = (params: RenderParams<TagNameGeneric, InputsGeneric, StateGeneric, EventsInitGeneric, HostClassKeys, CssVarKeys>) => void;
11
12
  export type UpdateStateCallback<StateGeneric extends PropertyInitMapBase> = (newState: Partial<AsyncStateInputs<StateGeneric>>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "element-vir",
3
- "version": "9.1.1",
3
+ "version": "9.1.3",
4
4
  "keywords": [
5
5
  "custom",
6
6
  "web",
@@ -39,13 +39,13 @@
39
39
  "test:types": "tsc --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@augment-vir/browser": "^11.1.2",
43
- "@augment-vir/common": "^11.1.2",
42
+ "@augment-vir/browser": "^12.0.1",
43
+ "@augment-vir/common": "^12.0.1",
44
44
  "lit": "2.6.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@augment-vir/browser-testing": "^11.1.2",
48
- "@augment-vir/node-js": "^11.1.2",
47
+ "@augment-vir/browser-testing": "^12.0.1",
48
+ "@augment-vir/node-js": "^12.0.1",
49
49
  "@istanbuljs/nyc-config-typescript": "^1.0.2",
50
50
  "@open-wc/testing": "^3.1.7",
51
51
  "@types/mocha": "^10.0.1",