| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", { value: true });
 
- const tslib_1 = require("tslib");
 
- const config_1 = require("../config");
 
- const utils = tslib_1.__importStar(require("../utils"));
 
- const path_1 = tslib_1.__importDefault(require("path"));
 
- const customWatcherName = 'custom';
 
- const customSpecRef = `${customWatcherName}_spec_ref`;
 
- const DeclareMapping = utils.pickFields(config_1.declMapping, ['ctx', 'app']);
 
- function CustomGenerator(config, baseConfig, tsHelper) {
 
-     const createCustomLoader = (eggInfo) => {
 
-         const eggConfig = eggInfo.config || {};
 
-         const newCustomWatcherList = [];
 
-         if (eggConfig.customLoader) {
 
-             Object.keys(eggConfig.customLoader).forEach(key => {
 
-                 const loaderConfig = eggConfig.customLoader[key];
 
-                 if (!loaderConfig || !loaderConfig.directory) {
 
-                     return;
 
-                 }
 
-                 loaderConfig.inject = loaderConfig.inject || 'app';
 
-                 if (!DeclareMapping[loaderConfig.inject] || loaderConfig.tsd === false)
 
-                     return;
 
-                 // custom d.ts name
 
-                 const name = `${customWatcherName}-${key}`;
 
-                 newCustomWatcherList.push(name);
 
-                 // create a custom watcher
 
-                 tsHelper.registerWatcher(name, {
 
-                     ref: customSpecRef,
 
-                     distName: `${name}.d.ts`,
 
-                     directory: loaderConfig.directory,
 
-                     pattern: loaderConfig.match,
 
-                     ignore: loaderConfig.ignore,
 
-                     caseStyle: loaderConfig.caseStyle || 'lower',
 
-                     interface: loaderConfig.interface || config_1.declMapping[key],
 
-                     declareTo: `${DeclareMapping[loaderConfig.inject]}.${key}`,
 
-                     generator: 'auto',
 
-                     execAtInit: true,
 
-                 });
 
-             });
 
-         }
 
-         // collect watcher which is need to remove.
 
-         const removeList = tsHelper.watcherList.filter(w => (w.ref === customSpecRef && !newCustomWatcherList.includes(w.name)));
 
-         // remove watcher and old d.ts
 
-         tsHelper.destroyWatcher.apply(tsHelper, removeList.map(w => w.name));
 
-         return removeList.map(w => ({
 
-             dist: path_1.default.resolve(w.dtsDir, `${w.name}.d.ts`),
 
-         }));
 
-     };
 
-     // reload egg info by file
 
-     return utils.getEggInfo({
 
-         cwd: baseConfig.cwd,
 
-         customLoader: baseConfig.customLoader,
 
-         cacheIndex: baseConfig.id,
 
-         async: !!config.file,
 
-         callback: createCustomLoader,
 
-     });
 
- }
 
- exports.default = CustomGenerator;
 
- CustomGenerator.isPrivate = true;
 
- CustomGenerator.defaultConfig = {
 
-     directory: 'config',
 
-     execAtInit: true,
 
-     pattern: [
 
-         'config*(.local|.default).+(ts|js)',
 
-         'plugin*(.local|.default).+(ts|js)',
 
-     ],
 
- };
 
 
  |