generate-types.js 987 B

123456789101112131415161718192021222324252627282930
  1. const config = require('../src/config.json');
  2. const package = require('../package.json');
  3. const path = require('path');
  4. const fs = require('fs-extra');
  5. let importStr = `import Locale from '../packages/locale';\n`;
  6. const packages = [];
  7. config.nav.map((item) => {
  8. item.packages.forEach((element) => {
  9. let { name, type } = element;
  10. importStr += `import ${name} from './__VUE/${name.toLowerCase()}${type === 'methods' ? '' : '/index.vue'}';\n`;
  11. packages.push(name);
  12. });
  13. });
  14. let installFunction = `
  15. export { Locale,${packages.join(',')} };`;
  16. let fileStr = importStr + installFunction;
  17. fs.outputFileSync(path.resolve(__dirname, '../dist/types/nutui.d.ts'), fileStr, 'utf8');
  18. fs.outputFileSync(
  19. path.resolve(__dirname, '../dist/types/index.d.ts'),
  20. `declare namespace _default {
  21. export { install };
  22. export { version };
  23. }
  24. export function install(app: any): void;
  25. export const version: '${package.version}';
  26. export default _default;
  27. export * from './nutui';`,
  28. 'utf8'
  29. );