1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const tslib_1 = require("tslib");
- const debug_1 = tslib_1.__importDefault(require("debug"));
- const fs_1 = tslib_1.__importDefault(require("fs"));
- const path_1 = tslib_1.__importDefault(require("path"));
- const utils = tslib_1.__importStar(require("../utils"));
- const config_1 = require("../config");
- const debug = (0, debug_1.default)('egg-ts-helper#generators_extend');
- function ExtendGenerator(config, baseConfig) {
- const fileList = config.file ? [config.file] : config.fileList;
- debug('file list : %o', fileList);
- if (!fileList.length) {
- // clean files
- return Object.keys(config.interface).map(key => ({
- dist: path_1.default.resolve(config.dtsDir, `${key}.d.ts`),
- }));
- }
- const tsList = [];
- fileList.forEach(f => {
- let basename = path_1.default.basename(f);
- basename = basename.substring(0, basename.lastIndexOf('.'));
- const moduleNames = basename.split('.');
- const interfaceNameKey = moduleNames[0];
- const interfaceEnvironment = moduleNames[1]
- ? moduleNames[1].replace(/^[a-z]/, r => r.toUpperCase())
- : '';
- const interfaceName = config.interface[interfaceNameKey];
- if (!interfaceName) {
- return;
- }
- const dist = path_1.default.resolve(config.dtsDir, `${basename}.d.ts`);
- f = path_1.default.resolve(config.dir, f);
- if (!fs_1.default.existsSync(f)) {
- return tsList.push({ dist });
- }
- // get import info
- const moduleName = `Extend${interfaceEnvironment}${interfaceName}`;
- const importContext = utils.getImportStr(config.dtsDir, f, moduleName);
- tsList.push({
- dist,
- content: `${importContext}\n` +
- `type ${moduleName}Type = typeof ${moduleName};\n` +
- `declare module \'${baseConfig.framework}\' {\n` +
- ` interface ${interfaceName} extends ${moduleName}Type { }\n` +
- '}',
- });
- });
- return tsList;
- }
- exports.default = ExtendGenerator;
- // default config
- ExtendGenerator.defaultConfig = {
- interface: utils.pickFields(config_1.declMapping, [
- 'context',
- 'application',
- 'agent',
- 'request',
- 'response',
- 'helper',
- ]),
- };
|