core.d.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /// <reference types="node" />
  2. import chokidar from 'chokidar';
  3. import { EventEmitter } from 'events';
  4. import * as generator from './generator';
  5. import Watcher, { WatchItem } from './watcher';
  6. import { BaseGenerator } from './generators/base';
  7. import * as utils from './utils';
  8. import { CompilerOptions } from 'typescript';
  9. declare global {
  10. interface PlainObject<T = any> {
  11. [key: string]: T;
  12. }
  13. }
  14. export interface TsHelperOption {
  15. cwd?: string;
  16. framework?: string;
  17. typings?: string;
  18. generatorConfig?: {
  19. [key: string]: WatchItem | boolean;
  20. };
  21. /** @deprecated alias of generatorConfig, has been deprecated */
  22. watchDirs?: {
  23. [key: string]: WatchItem | boolean;
  24. };
  25. caseStyle?: string | ((...args: any[]) => string);
  26. watch?: boolean;
  27. watchOptions?: chokidar.WatchOptions;
  28. autoRemoveJs?: boolean;
  29. throttle?: number;
  30. execAtInit?: boolean;
  31. customLoader?: any;
  32. configFile?: string | string[];
  33. silent?: boolean;
  34. }
  35. export declare type TsHelperConfig = typeof defaultConfig & {
  36. id: string;
  37. eggInfo: utils.EggInfoResult;
  38. customLoader: any;
  39. tsConfig: CompilerOptions;
  40. };
  41. export declare type TsGenConfig = {
  42. name: string;
  43. dir: string;
  44. dtsDir: string;
  45. fileList: string[];
  46. file?: string;
  47. } & WatchItem;
  48. export interface GeneratorResult {
  49. dist: string;
  50. content?: string;
  51. }
  52. declare type GeneratorAllResult = GeneratorResult | GeneratorResult[];
  53. declare type GeneratorCbResult<T> = T | Promise<T>;
  54. export declare type TsGenerator<T = GeneratorAllResult | void> = ((config: TsGenConfig, baseConfig: TsHelperConfig, tsHelper: TsHelper) => GeneratorCbResult<T>) & {
  55. defaultConfig?: WatchItem;
  56. };
  57. export declare const defaultConfig: {
  58. cwd: string;
  59. framework: string;
  60. typings: string;
  61. caseStyle: string;
  62. autoRemoveJs: boolean;
  63. throttle: number;
  64. watch: boolean;
  65. watchOptions: undefined;
  66. execAtInit: boolean;
  67. silent: boolean;
  68. generatorConfig: PlainObject<WatchItem>;
  69. configFile: string[];
  70. };
  71. export declare function getDefaultGeneratorConfig(opt?: TsHelperConfig): PlainObject<any>;
  72. export default class TsHelper extends EventEmitter {
  73. config: TsHelperConfig;
  74. watcherList: Watcher[];
  75. private cacheDist;
  76. private dtsFileList;
  77. utils: typeof utils;
  78. constructor(options: TsHelperOption);
  79. build(): this;
  80. destroy(): void;
  81. log(info: string, ignoreSilent?: boolean): void;
  82. warn(info: string): void;
  83. createOneForAll(dist?: string): void;
  84. private initWatcher;
  85. destroyWatcher(...refs: string[]): void;
  86. cleanFiles(): void;
  87. registerWatcher(name: string, watchConfig: WatchItem & {
  88. directory: string | string[];
  89. }, removeDuplicate?: boolean): Watcher[] | undefined;
  90. private loadWatcherConfig;
  91. private configure;
  92. private generateTs;
  93. private updateDistFiles;
  94. private isCached;
  95. private formatConfig;
  96. private mergeConfig;
  97. }
  98. export declare function createTsHelperInstance(options: TsHelperOption): TsHelper;
  99. export { TsHelper, WatchItem, BaseGenerator, generator };
  100. //# sourceMappingURL=core.d.ts.map