Skip to content

Commit

Permalink
refactor(component-meta): convert to ts
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed Apr 23, 2024
1 parent e0f2d43 commit cb1c335
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 43 deletions.
1 change: 1 addition & 0 deletions packages/component-meta/tsconfig.json
Expand Up @@ -3,6 +3,7 @@
"include": [ "*", "lib/**/*" ],
"exclude": [ "tests" ],
"references": [
{ "path": "../component-type-helpers/tsconfig.json" },
{ "path": "../language-core/tsconfig.json" },
],
}
27 changes: 0 additions & 27 deletions packages/component-type-helpers/index.d.ts

This file was deleted.

@@ -1,6 +1,28 @@
// @ts-check
export type ComponentType<T> =
T extends new (...angs: any) => {} ? 1 :
T extends (...args: any) => any ? 2 :
0;

export type ComponentProps<T> =
T extends new (...angs: any) => { $props: infer P; } ? NonNullable<P> :
T extends (props: infer P, ...args: any) => any ? P :
{};

export type ComponentSlots<T> =
T extends new (...angs: any) => { $slots: infer S; } ? NonNullable<S> :
T extends (props: any, ctx: { slots: infer S; attrs: any; emit: any; }, ...args: any) => any ? NonNullable<S> :
{};

export type ComponentEmit<T> =
T extends new (...angs: any) => { $emit: infer E; } ? NonNullable<E> :
{};

export type ComponentExposed<T> =
T extends new (...angs: any) => infer E ? E :
T extends (props: any, ctx: any, expose: (exposed: infer E) => any, ...args: any) => any ? NonNullable<E> :
{};

const code = `
export const code = `
export type ComponentType<T> =
T extends new (...angs: any) => {} ? 1 :
T extends (...args: any) => any ? 2 :
Expand All @@ -27,5 +49,4 @@ export type ComponentExposed<T> =
{};
`.trim();

exports.code = code;
exports.default = code;
export default code;
5 changes: 5 additions & 0 deletions packages/component-type-helpers/tsconfig.json
@@ -0,0 +1,5 @@
{
"extends": "../../tsconfig.base.json",
"include": [ "*", "lib/**/*" ],
"exclude": [ "tests" ],
}
8 changes: 0 additions & 8 deletions packages/component-type-helpers/vue2.js

This file was deleted.

10 changes: 6 additions & 4 deletions packages/component-type-helpers/vue2.ts
@@ -1,7 +1,3 @@
export declare const code: string;

export default code;

export {
ComponentType,
ComponentProps,
Expand All @@ -13,3 +9,9 @@ export type ComponentSlots<T> =
T extends new (...angs: any) => { $scopedSlots: infer S; } ? NonNullable<S> :
T extends (props: any, ctx: { slots: infer S; attrs: any; emit: any; }, ...args: any) => any ? NonNullable<S> :
{};

import { code as _code } from './index';

export const code = _code.replace('$slots', '$scopedSlots');

export default code;

0 comments on commit cb1c335

Please sign in to comment.