react-native-builder-bob
Version:
CLI to build JavaScript files for React Native libraries
40 lines (38 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = customTarget;
var _kleur = _interopRequireDefault(require("kleur"));
var _path = _interopRequireDefault(require("path"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _spawn = require("../utils/spawn");
var _del = _interopRequireDefault(require("del"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
async function customTarget({
options,
root,
report
}) {
if (options?.script == null) {
throw new Error(`No 'script' was provided with the custom target. Example: ${_kleur.default.green('{["custom", { "script": "generateTypes" }}')}`);
}
const pathToClean = options.clean ? _path.default.relative(root, options.clean) : undefined;
if (pathToClean) {
report.info(`Cleaning up ${_kleur.default.blue(pathToClean)}`);
await (0, _del.default)([_path.default.resolve(root, pathToClean)]);
}
const packageManagerExecutable = process.env.npm_execpath ?? 'npm';
const packageManagerArgs = ['run', options.script];
// usr/bin/yarn -> yarn
const packageManagerName = _path.default.basename(packageManagerExecutable);
report.info(`Running ${_kleur.default.blue(packageManagerName)} ${_kleur.default.blue(packageManagerArgs.join(' '))}`);
await (0, _spawn.spawn)(packageManagerExecutable, packageManagerArgs, {
stdio: ['ignore', 'ignore', 'inherit']
});
report.success(`Ran the ${_kleur.default.blue(options.script)} script succesfully`);
if (options.clean && pathToClean && !(await _fsExtra.default.pathExists(pathToClean))) {
report.warn(`Custom target with the ${_kleur.default.blue(options.script)} script has ${_kleur.default.blue(options.clean)} as the ${_kleur.default.bold('clean')} option but this path wasn't created after running the script. Are you sure you've defined the ${_kleur.default.bold('clean')} path correctly?`);
}
}
//# sourceMappingURL=custom.js.map