util.d.ts 1.2 KB

123456789101112131415161718192021
  1. import { Component, ConcreteComponent, transformVNodeArgs } from 'vue';
  2. type VNodeArgsTransformerFn = NonNullable<Parameters<typeof transformVNodeArgs>[0]>;
  3. type TransformVNodeArgs = Parameters<VNodeArgsTransformerFn>;
  4. type VNodeTransformerArgsType = TransformVNodeArgs[0];
  5. type InstanceArgsType = TransformVNodeArgs[1];
  6. type VNodeTransformerInputType = VNodeTransformerArgsType[0];
  7. type ExtractComponentTypes<T> = T extends ConcreteComponent ? T : never;
  8. type VNodeTransformerInputComponentType = ExtractComponentTypes<VNodeTransformerInputType>;
  9. export type VTUVNodeTypeTransformer = (inputType: VNodeTransformerInputComponentType, instance: InstanceArgsType) => VNodeTransformerInputComponentType;
  10. export declare const isTeleport: (type: any) => boolean;
  11. export declare const isKeepAlive: (type: any) => boolean;
  12. export interface RootComponents {
  13. component?: Component;
  14. functional?: Component;
  15. }
  16. export declare const isRootComponent: (rootComponents: RootComponents, type: VNodeTransformerInputComponentType, instance: InstanceArgsType) => boolean;
  17. export declare const createVNodeTransformer: ({ rootComponents, transformers }: {
  18. rootComponents: RootComponents;
  19. transformers: VTUVNodeTypeTransformer[];
  20. }) => VNodeArgsTransformerFn;
  21. export {};