UNPKG

@mhy/config

Version:

> This documentation is not complete. It's in progress and it's a BETA version. Use the tool at your own risk.

74 lines (56 loc) 2.38 kB
"use strict"; var _path = _interopRequireDefault(require("path")); var _globalModules = _interopRequireDefault(require("global-modules")); var _fs = _interopRequireDefault(require("fs")); var _ = require("../"); var _copyDir = _interopRequireDefault(require("copy-dir")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const _1 = _path.default.resolve(_globalModules.default, '@mhy/mhy', 'node_modules', '@types'); const _2 = _path.default.resolve('/home/node/.npm-global/lib/node_modules/@mhy/mhy/node_modules/@types'); const _3 = _path.default.resolve(process.cwd(), 'node_modules', '@types'); const globalTypesPath = _fs.default.existsSync(_1) ? _1 : _2; // Get aliases let aliases; try { aliases = require('../webpack').default.resolve.alias; } catch (e) { aliases = {}; } aliases = Object.entries(aliases); // Copy types if (_fs.default.existsSync(_3)) { const isDirectory = source => _fs.default.lstatSync(_path.default.join(_3, source)).isDirectory(); const getDirectories = source => _fs.default.readdirSync(source).filter(isDirectory); getDirectories(_3).forEach(dir => { // If dir not exists in mhy if (!_fs.default.existsSync(_path.default.resolve(globalTypesPath, dir))) { _copyDir.default.sync(_path.default.resolve(_3, dir), _path.default.resolve(globalTypesPath, dir)); } }); } const tsconfig = module.exports = module.exports.default = (0, _.load)('typescript', { compilerOptions: { module: 'esNext', target: 'esnext', moduleResolution: 'node', allowJs: false, emitDeclarationOnly: true, strict: true, jsx: 'preserve', resolveJsonModule: true, esModuleInterop: true, noImplicitAny: false, declaration: true, typeRoots: [globalTypesPath], baseUrl: _path.default.resolve(process.cwd(), 'src'), paths: aliases.reduce(function (acc, [k]) { const folder = k.replace('@', ``); acc[k] = [`${folder}/index`]; acc[`${k}/*`] = [`${folder}/*`]; return acc; }, { '*': [_path.default.resolve(_globalModules.default, '@mhy/mhy', 'node_modules', '*')] }) }, include: [_path.default.resolve(process.cwd(), 'src/**/*')], files: [require.resolve('../../typescript/mhy.d.ts')] }); // Generate fresh tsconfig.json on each run require('../_utils/tsconfig')(process.cwd(), tsconfig);