Skip to content

Commit c764c28

Browse files
authored
refactor(button): script setup (#2713)
1 parent 53f31ab commit c764c28

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+403
-268
lines changed

scripts/generate-nutui-taro-vue.cjs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@ declare module 'vue' {
1111
const packages = [];
1212
config.nav.map((item) => {
1313
item.packages.forEach((element) => {
14-
let { name, exclude, taro } = element;
14+
let { name, exclude, taro, setup } = element;
1515
if (taro == true) {
16-
dts += ` Nut${name}: typeof import('@/packages/__VUE/${name.toLowerCase()}/index.taro.vue')['default']\n`
17-
const filePath = path.join(`src/packages/__VUE/${name.toLowerCase()}/index.taro.vue`);
18-
if (name !== 'Icon') {
19-
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index${
20-
fs.existsSync(filePath) ? '.taro' : ''
21-
}.vue';\n`;
16+
if (setup === true) {
17+
dts += ` Nut${name}: typeof import('@/packages/__VUE/${name.toLowerCase()}/index.taro')['default']\n`
18+
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index.taro';\n`;
19+
importStr += `export * from './__VUE/${name.toLowerCase()}/index.taro';\n`;
20+
} else {
21+
dts += ` Nut${name}: typeof import('@/packages/__VUE/${name.toLowerCase()}/index.taro.vue')['default']\n`
22+
const filePath = path.join(`src/packages/__VUE/${name.toLowerCase()}/index.taro.vue`);
23+
if (name !== 'Icon') {
24+
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index${
25+
fs.existsSync(filePath) ? '.taro' : ''
26+
}.vue';\n`;
27+
}
2228
}
2329
importScssStr += `import './__VUE/${name.toLowerCase()}/index.scss';\n`;
2430
if (exclude != true) {

scripts/generate-nutui.cjs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,20 @@ const packages = [];
1212
const methods = [];
1313
config.nav.map((item) => {
1414
item.packages.forEach((element) => {
15-
let { name, type, exclude } = element;
16-
dts += ` Nut${name}: typeof import('./__VUE/${name.toLowerCase()}/index.vue')['default']\n`
17-
if (name !== 'Icon') {
18-
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index.vue';\n`;
19-
}
20-
if (type === 'methods') {
21-
importStr += `import { show${name} } from './__VUE/${name.toLowerCase()}/index';\n`;
22-
methods.push(`show${name}`);
15+
let { name, type, exclude, setup } = element;
16+
if (setup === true) {
17+
dts += ` Nut${name}: typeof import('./__VUE/${name.toLowerCase()}/index')['default']\n`
18+
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index';\n`;
19+
importStr += `export * from './__VUE/${name.toLowerCase()}/index';\n`;
20+
} else {
21+
dts += ` Nut${name}: typeof import('./__VUE/${name.toLowerCase()}/index.vue')['default']\n`
22+
if (name !== 'Icon') {
23+
importStr += `import ${name} from './__VUE/${name.toLowerCase()}/index.vue';\n`;
24+
}
25+
if (type === 'methods') {
26+
importStr += `import { show${name} } from './__VUE/${name.toLowerCase()}/index';\n`;
27+
methods.push(`show${name}`);
28+
}
2329
}
2430
importScssStr += `import './__VUE/${name.toLowerCase()}/index.scss';\n`;
2531
if (exclude != true) {

scripts/generate-types-taro.cjs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ const getCompName = (name) => {
4444
});
4545
}
4646
const packageName = packages.find((item) => item.name.toLowerCase() === name.toLowerCase());
47-
return packageName ? packageName.name : '';
47+
if (packageName) {
48+
if (packageName?.setup === true) {
49+
return [packageName.name, true]
50+
}
51+
return [packageName.name, false]
52+
}
53+
return ''
4854
};
4955

5056
const getLocale = () => {
@@ -101,16 +107,23 @@ fs.cp(sourceDir, toDir, { recursive: true }, (err) => {
101107
if (inputs && inputs.length) {
102108
let name = item.substring(0, item.lastIndexOf('/'));
103109
name = name.substring(name.lastIndexOf('/') + 1);
104-
const componentName = getCompName(name);
105-
if (componentName) {
110+
const _ComponentName = getCompName(name);
111+
if (_ComponentName) {
112+
const [componentName, setup] = _ComponentName;
106113
let remain = `
107114
declare module 'vue' {
108115
interface GlobalComponents {
109116
Nut${componentName}: typeof _default;
110117
}
111118
}`;
112-
let changeContent = content.replace(regex, `${preContent}${start} Install<${inputs[1]}>${end}${remain}`);
113-
fs.writeFileSync(item, changeContent);
119+
if (setup) {
120+
let changeContent = content.replace('export default _default;', `declare const _nut_default: WithInstall<typeof _default>;\nexport default _nut_default;\n${remain}`);
121+
changeContent = `import type { WithInstall } from '../../utils';\n` + changeContent
122+
fs.writeFileSync(item, changeContent);
123+
} else {
124+
let changeContent = content.replace(regex, `${preContent}${start} Install<${inputs[1]}>${end}${remain}`);
125+
fs.writeFileSync(item, changeContent);
126+
}
114127
}
115128
}
116129
});

scripts/generate-types.cjs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ const getCompName = (name) => {
4444
});
4545
}
4646
const packageName = packages.find((item) => item.name.toLowerCase() === name.toLowerCase());
47-
return packageName ? packageName.name : '';
47+
if (packageName) {
48+
if (packageName?.setup === true) {
49+
return [packageName.name, true]
50+
}
51+
return [packageName.name, false]
52+
}
53+
return ''
4854
};
4955

5056
const getLocale = () => {
@@ -101,16 +107,23 @@ fs.cp(sourceDir, toDir, { recursive: true }, (err) => {
101107
if (inputs && inputs.length) {
102108
let name = item.substring(0, item.lastIndexOf('/'));
103109
name = name.substring(name.lastIndexOf('/') + 1);
104-
const componentName = getCompName(name);
105-
if (componentName) {
110+
const _ComponentName = getCompName(name);
111+
if (_ComponentName) {
112+
const [componentName, setup] = _ComponentName;
106113
let remain = `
107114
declare module 'vue' {
108115
interface GlobalComponents {
109116
Nut${componentName}: typeof _default;
110117
}
111118
}`;
112-
let changeContent = content.replace(regex, `${preContent}${start} Install<${inputs[1]}>${end}${remain}`);
113-
fs.writeFileSync(item, changeContent);
119+
if (setup) {
120+
let changeContent = content.replace('export default _default;', `declare const _nut_default: WithInstall<typeof _default>;\nexport default _nut_default;\n${remain}`);
121+
changeContent = `import type { WithInstall } from '../../utils';\n` + changeContent
122+
fs.writeFileSync(item, changeContent);
123+
} else {
124+
let changeContent = content.replace(regex, `${preContent}${start} Install<${inputs[1]}>${end}${remain}`);
125+
fs.writeFileSync(item, changeContent);
126+
}
114127
}
115128
}
116129
});

src/config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
"cName": "按钮",
8787
"type": "component",
8888
"show": true,
89+
"setup": true,
8990
"desc": "按钮用于触发一个操作,如提交表单。",
9091
"author": "richard1015"
9192
},

src/packages/__VUE/addresslist/components/GeneralShell.taro.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import { ref, h } from 'vue';
4646
import { createComponent } from '@/packages/utils/create';
4747
const { create } = createComponent('address-list-general');
4848
import ItemContents from './ItemContents.taro.vue';
49-
import NutButton from '../../button/index.taro.vue';
49+
import NutButton from '../../button/index.taro';
5050
import NutSwipe from '../../swipe/index.taro.vue';
5151
5252
export default create({

src/packages/__VUE/addresslist/components/GeneralShell.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import { ref, h } from 'vue';
4646
import { createComponent } from '@/packages/utils/create';
4747
const { create } = createComponent('address-list-general');
4848
import ItemContents from './ItemContents.vue';
49-
import NutButton from '../../button/index.vue';
49+
import NutButton from '../../button';
5050
import NutSwipe from '../../swipe/index.vue';
5151
5252
export default create({

src/packages/__VUE/addresslist/index.taro.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import { createComponent } from '@/packages/utils/create';
4141
const { create } = createComponent('address-list');
4242
import GeneralShell from './components/GeneralShell.taro.vue';
4343
import { floatData } from '@/packages/utils/util';
44-
import NutButton from '../button/index.taro.vue';
44+
import NutButton from '../button/index.taro';
4545
import { useLocale } from '@/packages/utils/useLocale';
4646
4747
const cN = 'NutAddressList';

src/packages/__VUE/addresslist/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import { createComponent } from '@/packages/utils/create';
4141
const { create } = createComponent('address-list');
4242
import GeneralShell from './components/GeneralShell.vue';
4343
import { floatData } from '@/packages/utils/util';
44-
import NutButton from '../button/index.vue';
44+
import NutButton from '../button';
4545
import { useLocale } from '@/packages/utils/useLocale';
4646
4747
const cN = 'NutAddressList';

src/packages/__VUE/audiooperate/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<script lang="ts">
2626
import { toRefs, ref, useSlots, reactive, inject, type PropType } from 'vue';
2727
import { createComponent } from '@/packages/utils/create';
28-
import NutButton from '../button/index.vue';
28+
import NutButton from '../button';
2929
import { useLocale } from '@/packages/utils/useLocale';
3030
import type { AudioOperateType } from './types';
3131

0 commit comments

Comments
 (0)