UNPKG

tsds-build

Version:

Development stack for TypeScript libraries

148 lines 6.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return files; } }); var _fs = /*#__PURE__*/ _interop_require_default(require("fs")); var _fscopycompat = require("fs-copy-compat"); var _fsiterator = /*#__PURE__*/ _interop_require_default(require("fs-iterator")); var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic")); var _os = /*#__PURE__*/ _interop_require_default(require("os")); var _path = /*#__PURE__*/ _interop_require_default(require("path")); var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb")); var _tsswctransform = require("ts-swc-transform"); var _tsdslib = require("tsds-lib"); function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var _ref; var _os_cpus; var MAX_FILES = 10; var concurrency = Math.min(64, Math.max(8, ((_ref = (_os_cpus = _os.default.cpus()) === null || _os_cpus === void 0 ? void 0 : _os_cpus.length) !== null && _ref !== void 0 ? _ref : 4) * 8)); var reportFn = function reportFn(dest, type, cb) { return function(err, results) { var _ref; if (err) console.log("".concat(type, " failed: ").concat(err.message)); else console.log("Created ".concat(((_ref = results === null || results === void 0 ? void 0 : results.length) !== null && _ref !== void 0 ? _ref : 0) < MAX_FILES ? results === null || results === void 0 ? void 0 : results.map(function(x) { return "dist/".concat(type, "/").concat(_path.default.relative(dest, x)); }).join(',') : "".concat(results === null || results === void 0 ? void 0 : results.length, " files in dist/").concat(type))); cb(err); }; }; function files(_args, type, options, callback) { var config = (0, _tsdslib.loadConfig)(options); if (!config) { console.log('tsds: no config. Skipping'); return callback(); } if (!config.source) { console.log("tsds: config missing source. Skipping code: ".concat(type)); return callback(); } var cwd = options.cwd || process.cwd(); var src = _path.default.dirname(_path.default.join(cwd, config.source)); var dest = _path.default.join(cwd, 'dist', type); (0, _mkdirpclassic.default)(dest, function(err) { if (err) return callback(err); var queue = new _queuecb.default(); queue.defer(function(cb) { return _fs.default.writeFile(_path.default.join(dest, 'package.json'), '{ "type": "'.concat(type === 'cjs' ? 'commonjs' : 'module', '" }'), 'utf8', function(err) { return cb(err); }); }); queue.defer(function(cb) { return (0, _tsswctransform.transformDirectory)(src, dest, type, _object_spread_props(_object_spread({}, options), { sourceMaps: true }), reportFn(dest, type, cb)); }); queue.defer(function(cb) { return (0, _tsswctransform.transformTypes)(src, dest, reportFn(dest, type, cb)); }); queue.await(function(err) { if (err) return callback(err); if (type !== 'cjs') return callback(); // move the types into the folder with the correct extension var iterator = new _fsiterator.default(dest); iterator.forEach(function(entry, cb) { var ext = _path.default.extname(entry.basename); var stats = entry.stats; if (!stats || !stats.isFile() || [ '.js', '.mjs' ].indexOf(ext) < 0) { cb(); return; } var relative = _path.default.relative(dest, _path.default.dirname(entry.fullPath)); var sourcePath = _path.default.join(dest, relative, "".concat(entry.basename.slice(0, -ext.length), ".d.ts")); var destPath = _path.default.join(dest, relative, "".concat(entry.basename.slice(0, -ext.length), ".d.").concat(ext === '.js' ? 'cts' : 'mts')); (0, _fscopycompat.copyFile)(sourcePath, destPath, function(err) { return err && err.code !== 'ENOENT' ? cb(err) : cb(); }); }, { callbacks: true, concurrency: concurrency }, callback); }); }); } /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }