egg-ts-helper
Version:
egg typescript helper
98 lines • 6.8 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = ExtendGenerator;
const node_util_1 = require("node:util");
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const utils = __importStar(require("../utils"));
const config_1 = require("../config");
const debug = (0, node_util_1.debuglog)('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: node_path_1.default.resolve(config.dtsDir, `${key}.d.ts`),
}));
}
const tsList = [];
fileList.forEach(f => {
let basename = node_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 = node_path_1.default.resolve(config.dtsDir, `${basename}.d.ts`);
f = node_path_1.default.resolve(config.dir, f);
if (!node_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;
}
// default config
ExtendGenerator.defaultConfig = {
interface: utils.pickFields(config_1.declMapping, [
'context',
'application',
'agent',
'request',
'response',
'helper',
]),
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRvcnMvZXh0ZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0Esa0NBK0NDO0FBeERELHlDQUFxQztBQUNyQyxzREFBeUI7QUFDekIsMERBQTZCO0FBQzdCLGdEQUFrQztBQUNsQyxzQ0FBd0M7QUFHeEMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFFMUQsU0FBd0IsZUFBZSxDQUFDLE1BQW1CLEVBQUUsVUFBMEI7SUFDckYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxNQUFNLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFFakUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsY0FBYztRQUNkLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvQyxJQUFJLEVBQUUsbUJBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDO1NBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFzQixFQUFFLENBQUM7SUFDckMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNuQixJQUFJLFFBQVEsR0FBRyxtQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLG1CQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLE9BQU8sQ0FBQyxDQUFDO1FBQzdELENBQUMsR0FBRyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELGtCQUFrQjtRQUNsQixNQUFNLFVBQVUsR0FBRyxTQUFTLG9CQUFvQixHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQ25FLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLElBQUk7WUFDSixPQUFPLEVBQ0wsR0FBRyxhQUFhLElBQUk7Z0JBQ3BCLFFBQVEsVUFBVSxpQkFBaUIsVUFBVSxLQUFLO2dCQUNsRCxvQkFBb0IsVUFBVSxDQUFDLFNBQVMsUUFBUTtnQkFDaEQsZUFBZSxhQUFhLFlBQVksVUFBVSxZQUFZO2dCQUM5RCxHQUFHO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsaUJBQWlCO0FBQ2pCLGVBQWUsQ0FBQyxhQUFhLEdBQUc7SUFDOUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQTJCLG9CQUFXLEVBQUU7UUFDakUsU0FBUztRQUNULGFBQWE7UUFDYixPQUFPO1FBQ1AsU0FBUztRQUNULFVBQVU7UUFDVixRQUFRO0tBQ1QsQ0FBQztDQUNILENBQUMifQ==