Fixed #1836 - Refactor on bundle for d.ts

pull/1846/head
mertsincan 2021-12-02 00:15:31 +03:00
parent 4ff39e208b
commit bc4afe9f5e
3 changed files with 48 additions and 15 deletions

View File

@ -1,14 +1,17 @@
const fs = require('fs-extra'); const fs = require('fs-extra');
const path = require('path'); const path = require('path');
fs.readdirSync(path.resolve(__dirname, './src/components/')).forEach(folder => { fs.readdirSync(path.resolve(__dirname, './src/components/'), { withFileTypes: true })
fs.readdirSync(path.resolve(__dirname, './src/components/' + folder)).forEach(file => { .filter(dir => dir.isDirectory())
.forEach(({ name: folderName }) => {
fs.readdirSync(path.resolve(__dirname, './src/components/' + folderName)).forEach(file => {
if (file ==='package.json' || file.endsWith('d.ts') || file.endsWith('vue')) { if (file ==='package.json' || file.endsWith('d.ts') || file.endsWith('vue')) {
fs.copySync(path.resolve(__dirname, './src/components/' + folder) + '/' + file, 'dist/' + folder + '/' + file); fs.copySync(path.resolve(__dirname, './src/components/' + folderName) + '/' + file, 'dist/' + folderName + '/' + file);
} }
}) })
}); });
fs.copySync(path.resolve(__dirname, './src/components/ts-helpers.d.ts'), 'dist/ts-helpers.d.ts');
fs.copySync(path.resolve(__dirname, './package-build.json'), 'dist/package.json'); fs.copySync(path.resolve(__dirname, './package-build.json'), 'dist/package.json');
fs.copySync(path.resolve(__dirname, './README.md'), 'dist/README.md'); fs.copySync(path.resolve(__dirname, './README.md'), 'dist/README.md');
fs.copySync(path.resolve(__dirname, './LICENSE.md'), 'dist/LICENSE.md'); fs.copySync(path.resolve(__dirname, './LICENSE.md'), 'dist/LICENSE.md');

View File

@ -140,11 +140,13 @@ function addCore() {
} }
function addSFC() { function addSFC() {
fs.readdirSync(path.resolve(__dirname, './src/components/')).forEach(folder => { fs.readdirSync(path.resolve(__dirname, './src/components/'), { withFileTypes: true })
fs.readdirSync(path.resolve(__dirname, './src/components/' + folder)).forEach(file => { .filter(dir => dir.isDirectory())
.forEach(({ name: folderName }) => {
fs.readdirSync(path.resolve(__dirname, './src/components/' + folderName)).forEach(file => {
let name = file.split(/(.vue)$|(.js)$/)[0].toLowerCase(); let name = file.split(/(.vue)$|(.js)$/)[0].toLowerCase();
if (/\.vue$/.test(file) && (name === folder)) { if (/\.vue$/.test(file) && (name === folderName)) {
addEntry(folder, file, name); addEntry(folderName, file, name);
} }
}); });
}); });

28
src/components/ts-helpers.d.ts vendored Normal file
View File

@ -0,0 +1,28 @@
import { ComponentCustomProps, VNodeProps, EmitsOptions, AllowedComponentProps, ObjectEmitsOptions } from 'vue';
declare type PublicProps = VNodeProps & AllowedComponentProps & ComponentCustomProps;
declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
declare type EmitFn<Options = ObjectEmitsOptions, Event extends keyof Options = keyof Options> = Options extends Array<infer V> ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{
[key in Event]: Options[key] extends ((...args: infer Args) => any) ? (event: key, ...args: Args) => void : (event: key, ...args: any[]) => void;
}[Event]>;
export class ClassComponent<Props, Slots, Emits extends EmitsOptions = {}> {
$props: Props & PublicProps;
$slots: Slots;
$emit: EmitFn<Emits>;
}
export type GlobalComponentConstructor<T> = {
new (): T;
}
/**
* Custom types
*/
export declare type Booleanish = boolean | 'true' | 'false';
export declare type Numberish = number | string;
export declare type Nullable<T = void> = T | null | undefined;