lbundle
Version:
Small zero-configuration bundler build on top of Rollup.js and SWC for NPM libraries
99 lines (96 loc) • 3.7 kB
JavaScript
'use strict';
var getCtx = require('../_virtual/get-ctx.js');
var require$$0 = require('path');
var require$$1 = require('fs');
var require$$2 = require('lodash.merge');
require('./get-default-options.js');
require('./get-lib-outputs.js');
require('./get-bin-output.js');
require('../utils/checks.js');
require('./get-css-filename.js');
var require$$8 = require('change-case');
require('../utils/is-ts.js');
require('../utils/is-jsx.js');
var getDefaultOptions = require('../_virtual/get-default-options.js');
var checks = require('../_virtual/checks.js');
var getCssFilename = require('../_virtual/get-css-filename.js');
var getLibOutputs = require('../_virtual/get-lib-outputs.js');
var getBinOutput = require('../_virtual/get-bin-output.js');
var isTs = require('../_virtual/is-ts.js');
var isJsx = require('../_virtual/is-jsx.js');
(function (exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "getCtx", {
enumerable: true,
get: function() {
return getCtx;
}
});
const _path = /*#__PURE__*/ _interop_require_default(require$$0);
const _fs = /*#__PURE__*/ _interop_require_default(require$$1);
const _lodashmerge = /*#__PURE__*/ _interop_require_default(require$$2);
const _getdefaultoptions = getDefaultOptions.__exports;
const _getliboutputs = getLibOutputs.__exports;
const _getbinoutput = getBinOutput.__exports;
const _checks = checks.__exports;
const _getcssfilename = getCssFilename.__exports;
const _changecase = require$$8;
const _ists = isTs.__exports;
const _isjsx = isJsx.__exports;
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const getCtx = async (baseOptions)=>{
const options = (0, _lodashmerge.default)((0, _getdefaultoptions.getDefaultOptions)(), baseOptions);
const pkgPath = _path.default.resolve(options.cwd, 'package.json');
const pkg = JSON.parse(await _fs.default.promises.readFile(pkgPath, 'utf-8'));
const tsconfigPath = _path.default.resolve(options.cwd, 'tsconfig.json');
const swcPath = _path.default.resolve(options.cwd, '.swc');
if ((0, _checks.isNil)(pkg.source) && (0, _checks.isNil)(pkg['bin:source'])) {
throw new Error('[bundle] provide source entry for you library, set `package.json` `source` or `bin:source` field');
}
const isModule = pkg.type === 'module';
const globalName = (0, _changecase.pascalCase)(pkg.name);
const cssFilename = (0, _getcssfilename.getCSSFilename)({
pkg
}) ?? 'index.css';
const libOutputs = (0, _getliboutputs.getLibOutputs)({
pkg,
globalName,
options,
isModule,
cssFilename
});
const binOutput = (0, _getbinoutput.getBinOutput)({
pkg,
options,
isModule
});
const resolvedSource = pkg.source ? _path.default.resolve(options.cwd, pkg.source) : undefined;
const resolvedBinSource = pkg['bin:source'] ? _path.default.resolve(options.cwd, pkg['bin:source']) : undefined;
const ts = (0, _ists.isTs)(pkg);
const jsx = (0, _isjsx.isJsx)(pkg);
return {
baseOptions: baseOptions,
options: options,
globalName,
pkgPath,
pkg,
swcPath: _fs.default.existsSync(swcPath) ? swcPath : undefined,
tsconfigPath: _fs.default.existsSync(tsconfigPath) ? tsconfigPath : undefined,
isModule,
resolvedSource,
resolvedBinSource,
isTs: ts,
isJsx: jsx,
libOutputs,
binOutput,
cssFilename
};
};
} (getCtx.__exports));
//# sourceMappingURL=get-ctx.js.map