UNPKG

merge-packages

Version:

Very intelligently merge `package.json` files. 2021 UP_TO_DATE VERSION OF THIS TOOL.

3 lines (2 loc) 3.43 kB
#!/usr/bin/env node "use strict";var e=require("commander"),r=require("glob"),a=require("path"),t=require("fs-extra"),s=require(".");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_interopDefaultLegacy(e),i=_interopDefaultLegacy(r),o=_interopDefaultLegacy(a),l=_interopDefaultLegacy(t),p=_interopDefaultLegacy(s),c={name:"merge-packages",version:"0.1.6",description:"Very intelligently merge `package.json` files. 2021 UP_TO_DATE VERSION OF THIS TOOL.",keywords:["package.json","merge package","merge-package","package-merge","package merge","merge json"],main:"dist/index.js",module:"dist/index.ejs",files:["dist"],bin:"dist/cli.js",scripts:{start:"",prebuild:"npm run clean",build:"rollup -c",clean:"rimraf dist",prepare:"npm run build",release:"standard-version && npm publish","release:first":"standard-version --first-release && npm publish",postrelease:"git push && git push origin --tags","postrelease:first":"git push && git push origin --tags",lint:"eslint src","lint:fix":"eslint --fix src",test:'echo "Error: no test specified" && exit 1'},repository:{type:"git",url:"git+ssh://git@github.com/zppack/merge-packages.git"},author:"John Chan",license:"MIT",bugs:{url:"https://github.com/zppack/merge-packages/issues"},homepage:"https://github.com/zppack/merge-packages",dependencies:{"@voxpelli/semver-set":"^3.0.0",commander:"^7.2.0","fs-extra":"^9.1.0",glob:"^7.1.6",jju:"^1.4.0",ramda:"^0.27.1",semver:"^7.3.4","sort-package-json":"^1.49.0"},devDependencies:{"@babel/cli":"^7.13.10","@babel/core":"^7.13.10","@babel/preset-env":"^7.13.10","@rollup/plugin-babel":"^5.3.0","@rollup/plugin-json":"^4.1.0",eslint:"^7.24.0","eslint-config-airbnb-base":"^14.2.1","eslint-plugin-import":"^2.22.1",rimraf:"^3.0.2",rollup:"^2.45.2","rollup-plugin-eslint":"^7.0.0","rollup-plugin-preserve-shebangs":"^0.2.0","rollup-plugin-terser":"^7.0.2","standard-version":"^9.1.1"},engines:{node:">=12",npm:">=6"}};n.default.version(c.version,"-v, --version").option("-o, --output <dest>","merged package.json file path","package.merged.json").arguments("[pkgs...]","\bpackage.json files or paths to merge.").description("",{pkgs:"The package.json files or directories to merge.\nWhen passing a directory, a minimatch expression `package*(.*).json` -\n- will be used to match files except `package.merged.json`.\nIf no arguments passed, the result will be like passing a directory `./` .\n"}).action(((e,r)=>{const a=function outputMergedPackage(e,r){if("package.merged.json"===r){let e=1;for(;l.default.existsSync(r);)r=`package.merged${e}.json`,e+=1}return l.default.writeFileSync(r,e),r}(function mergeAllPackages(e){return e.reduce(((e,r)=>{const a=l.default.readFileSync(r,"utf8");return e?p.default(e,a):a}),"")}(e.length?function validateArguments(e){return e.reduce(((e,r)=>{if(l.default.existsSync(r)){const a=l.default.lstatSync(r);return a.isFile()?e.concat(r):a.isDirectory(r)?e.concat(i.default.sync("package*(.*).json",{dot:!0,cwd:o.default.resolve(r),ignore:"package.merged.json",nodir:!0,realpath:!0})):(console.warn(`WARN: "${c}" is not a file or a path.`),e)}return console.warn(`WARN: the file or path "${c}" was not exist.`),e}),[])}(e):i.default.sync("package*(.*).json",{dot:!0,cwd:o.default.resolve("./"),ignore:"package.merged.json",nodir:!0,realpath:!0})),r.output);console.log(`Successfully merged packages. Result file: "${a}".`)})),n.default.parse(process.argv);