Socket
Socket
Sign inDemoInstall

@covector/assemble

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@covector/assemble - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

7

CHANGELOG.md
# Changelog
## \[0.6.0]
- Roll up bumps from children recursively to bump parents unlimited levels deep. These bumps are done as a `patch` bump as they are automatic. Any parent bumps that would result in a `minor` or `major` change will likely include breaking changes in the package itself. This would imply that a specific change file would be included for it as well, as opposed to relying on a bump from a child.
- [1ff1290](https://www.github.com/jbolda/covector/commit/1ff12906d125aeff3d5574092efe1fa469e06198) feat: roll up all bumps as a patch ([#170](https://www.github.com/jbolda/covector/pull/170)) on 2021-03-25
- Split up config merge function into two functions, one for version and one for publish, et al. This makes the types easier to reason about.
- [66539a8](https://www.github.com/jbolda/covector/commit/66539a800365ccfb28f95291b066e77114863382) fix: GitHub release pipe ([#164](https://www.github.com/jbolda/covector/pull/164)) on 2021-03-24
## \[0.5.0]

@@ -4,0 +11,0 @@

192

dist/index.js
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeIntoConfig = exports.assemble = exports.compareBumps = void 0;
const tslib_1 = require("tslib");
const unified_1 = tslib_1.__importDefault(require("unified"));
const remark_parse_1 = tslib_1.__importDefault(require("remark-parse"));
const remark_stringify_1 = tslib_1.__importDefault(require("remark-stringify"));
const remark_frontmatter_1 = tslib_1.__importDefault(require("remark-frontmatter"));
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
const lodash_1 = require("lodash");
const files_1 = require("@covector/files");
const command_1 = require("@covector/command");
const path_1 = tslib_1.__importDefault(require("path"));
Object.defineProperty(exports, '__esModule', { value: true });
var unified = require('unified');
var parse = require('remark-parse');
var stringify = require('remark-stringify');
var frontmatter = require('remark-frontmatter');
var yaml = require('js-yaml');
var lodash = require('lodash');
var files = require('@covector/files');
var command = require('@covector/command');
var path = require('path');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var unified__default = /*#__PURE__*/_interopDefaultLegacy(unified);
var parse__default = /*#__PURE__*/_interopDefaultLegacy(parse);
var stringify__default = /*#__PURE__*/_interopDefaultLegacy(stringify);
var frontmatter__default = /*#__PURE__*/_interopDefaultLegacy(frontmatter);
var yaml__default = /*#__PURE__*/_interopDefaultLegacy(yaml);
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
const parseChange = function* ({ cwd, vfile }) {
const processor = unified_1.default()
.use(remark_parse_1.default)
.use(remark_frontmatter_1.default, ["yaml"])
.use(remark_stringify_1.default, {
const processor = unified__default['default']()
.use(parse__default['default'])
.use(frontmatter__default['default'], ["yaml"])
.use(stringify__default['default'], {
bullet: "-",

@@ -27,3 +36,3 @@ });

const [parsedChanges, ...remaining] = processed.children;
const parsedYaml = js_yaml_1.default.load(parsedChanges.value);
const parsedYaml = yaml__default['default'].load(parsedChanges.value);
changeset.releases =

@@ -40,3 +49,3 @@ typeof parsedYaml === "object" && parsedYaml !== null ? parsedYaml : {};

//@ts-ignore TODO generator error
let gitInfo = yield command_1.runCommand({
let gitInfo = yield command.runCommand({
cwd,

@@ -75,3 +84,2 @@ pkgPath: "",

};
exports.compareBumps = compareBumps;
const mergeReleases = (changes, { additionalBumpTypes = [] }) => {

@@ -88,3 +96,3 @@ return changes.reduce((release, change) => {

type: bumpType,
changes: lodash_1.cloneDeep([change]),
changes: lodash.cloneDeep([change]),
};

@@ -94,4 +102,4 @@ }

release[pkg] = {
type: exports.compareBumps(release[pkg].type, bumpType),
changes: lodash_1.cloneDeep([...release[pkg].changes, change]),
type: compareBumps(release[pkg].type, bumpType),
changes: lodash.cloneDeep([...release[pkg].changes, change]),
};

@@ -136,3 +144,49 @@ }

};
exports.assemble = assemble;
const mergeChangesToConfig = function* ({ config, assembledChanges, command, dryRun = false, filterPackages = [], }) {
// build in assembledChanges to only issue commands with ones with changes
// and pipe in data to template function
const pkgCommands = Object.keys(config.packages).reduce((pkged, pkg) => {
const pkgManager = config.packages[pkg].manager;
const commandItems = { pkg, pkgManager, config };
const mergedCommand = mergeCommand(Object.assign(Object.assign({}, commandItems), { command }));
if (!!mergedCommand) {
pkged[pkg] = {
pkg: pkg,
path: config.packages[pkg].path,
precommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `pre${command}` })),
command: mergedCommand,
postcommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `post${command}` })),
manager: config.packages[pkg].manager,
dependencies: config.packages[pkg].dependencies,
};
}
return pkged;
}, {});
const pipeOutput = {};
let commands = [];
for (let pkg of Object.keys(usePackageSubset(assembledChanges.releases, filterPackages))) {
if (!pkgCommands[pkg])
continue;
const pkgs = assembledChanges.releases;
const pipeToTemplate = {
release: pkgs[pkg],
pkg: pkgCommands[pkg],
};
if (dryRun) {
pipeOutput[pkg] = {};
pipeOutput[pkg].name = pkg;
pipeOutput[pkg].pipe = pipeToTemplate;
}
const merged = Object.assign(Object.assign({ pkg }, (!pkgs[pkg].parents ? {} : { parents: pkgs[pkg].parents })), { path: pkgCommands[pkg].path, type: pkgs[pkg].type || null, manager: pkgCommands[pkg].manager, dependencies: pkgCommands[pkg].dependencies, precommand: templateCommands(pkgCommands[pkg].precommand, pipeToTemplate, ["command", "dryRunCommand", "runFromRoot"]), command: templateCommands(pkgCommands[pkg].command, pipeToTemplate, [
"command",
"dryRunCommand",
]), postcommand: templateCommands(pkgCommands[pkg].postcommand, pipeToTemplate, ["command", "dryRunCommand", "runFromRoot"]) });
commands = [...commands, merged];
}
if (dryRun) {
console.log("==== data piped into commands ===");
Object.keys(pipeOutput).forEach((pkg) => console.log(pkg, "pipe", pipeOutput[pkg].pipe));
}
return commands;
};
const mergeIntoConfig = function* ({ config, assembledChanges, command, cwd, dryRun = false, filterPackages = [], }) {

@@ -152,3 +206,3 @@ // build in assembledChanges to only issue commands with ones with changes

if (!!mergedCommand) {
pkged[pkg] = Object.assign(Object.assign(Object.assign({ pkg: pkg, path: config.packages[pkg].path, precommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `pre${command}` })), command: mergedCommand, postcommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `post${command}` })) }, (!publishElements[`getPublishedVersion${publishElements.subPublishCommand}`]
pkged[pkg] = Object.assign(Object.assign(Object.assign({ pkg: pkg, path: config.packages[pkg].path || "", precommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `pre${command}` })), command: mergedCommand, postcommand: mergeCommand(Object.assign(Object.assign({}, commandItems), { command: `post${command}` })) }, (!publishElements[`getPublishedVersion${publishElements.subPublishCommand}`]
? {}

@@ -159,3 +213,3 @@ : {

? {}
: { assets: publishElements.assets })), { manager: config.packages[pkg].manager, dependencies: config.packages[pkg].dependencies });
: { assets: publishElements.assets })), { manager: config.packages[pkg].manager || "", dependencies: config.packages[pkg].dependencies });
}

@@ -166,49 +220,44 @@ return pkged;

let commands = [];
for (let pkg of Object.keys(usePackageSubset(command !== "version" ? pkgCommands : assembledChanges.releases, filterPackages))) {
for (let pkg of Object.keys(usePackageSubset(pkgCommands, filterPackages))) {
if (!pkgCommands[pkg])
continue;
const pkgs = command !== "version" ? config.packages : assembledChanges.releases;
const pipeToTemplate = {
release: pkgs[pkg],
pkg: pkgCommands[pkg],
};
let extraPublishParams = command == "version"
let extraPublishParams = {
// @ts-ignore TODO this returns a Promise and TS doesn't like that
pkgFile: yield files.readPkgFile({
file: path__default['default'].join(cwd,
//@ts-ignore
config.packages[pkg].path, !!config.packages[pkg].manager &&
config.packages[pkg].manager === "rust"
? "Cargo.toml"
: "package.json"),
nickname: pkg,
}),
};
pipeToTemplate.pkgFile = {
name: extraPublishParams.pkgFile.name,
version: extraPublishParams.pkgFile.version,
versionMajor: extraPublishParams.pkgFile.versionMajor,
versionMinor: extraPublishParams.pkgFile.versionMinor,
versionPatch: extraPublishParams.pkgFile.versionPatch,
pkg: extraPublishParams.pkgFile.pkg,
};
let subPublishCommand = command.slice(7, 999);
// add these after that they can use pkgFile
extraPublishParams = Object.assign(Object.assign(Object.assign({}, extraPublishParams), (!pkgCommands[pkg][`getPublishedVersion${subPublishCommand}`]
? {}
: {
// @ts-ignore TODO this returns a Promise and TS doesn't like that
pkgFile: yield files_1.readPkgFile({
file: path_1.default.join(cwd,
//@ts-ignore
config.packages[pkg].path, !!config.packages[pkg].manager &&
config.packages[pkg].manager === "rust"
? "Cargo.toml"
: "package.json"),
nickname: pkg,
}),
};
if (command !== "version" && !!extraPublishParams.pkgFile) {
pipeToTemplate.pkgFile = {
name: extraPublishParams.pkgFile.name,
version: extraPublishParams.pkgFile.version,
versionMajor: extraPublishParams.pkgFile.versionMajor,
versionMinor: extraPublishParams.pkgFile.versionMinor,
versionPatch: extraPublishParams.pkgFile.versionPatch,
pkg: extraPublishParams.pkgFile.pkg,
};
}
if (command !== "version") {
let subPublishCommand = command.slice(7, 999);
// add these after that they can use pkgFile
extraPublishParams = Object.assign(Object.assign(Object.assign({}, extraPublishParams), (!pkgCommands[pkg][`getPublishedVersion${subPublishCommand}`]
? {}
: {
[`getPublishedVersion${subPublishCommand}`]: lodash_1.template(
//@ts-ignore no index type string
pkgCommands[pkg][`getPublishedVersion${subPublishCommand}`])(pipeToTemplate),
})), (!pkgCommands[pkg].assets
? {}
: {
assets: templateCommands(pkgCommands[pkg].assets, pipeToTemplate, ["path", "name"]),
}));
}
[`getPublishedVersion${subPublishCommand}`]: lodash.template(
//@ts-ignore no index type string
pkgCommands[pkg][`getPublishedVersion${subPublishCommand}`])(pipeToTemplate),
})), (!pkgCommands[pkg].assets
? {}
: {
assets: templateCommands(pkgCommands[pkg].assets, pipeToTemplate, [
"path",
"name",
]),
}));
if (dryRun) {

@@ -219,3 +268,3 @@ pipeOutput[pkg] = {};

}
const merged = Object.assign(Object.assign(Object.assign({ pkg }, (!pkgs[pkg].parents ? {} : { parents: pkgs[pkg].parents })), extraPublishParams), { path: pkgCommands[pkg].path, type: pkgs[pkg].type || null, manager: pkgCommands[pkg].manager, dependencies: pkgCommands[pkg].dependencies, precommand: templateCommands(pkgCommands[pkg].precommand, pipeToTemplate, ["command", "dryRunCommand", "runFromRoot"]), command: templateCommands(pkgCommands[pkg].command, pipeToTemplate, [
const merged = Object.assign(Object.assign({ pkg }, extraPublishParams), { path: pkgCommands[pkg].path, manager: pkgCommands[pkg].manager, dependencies: pkgCommands[pkg].dependencies, precommand: templateCommands(pkgCommands[pkg].precommand, pipeToTemplate, ["command", "dryRunCommand", "runFromRoot"]), command: templateCommands(pkgCommands[pkg].command, pipeToTemplate, [
"command",

@@ -232,3 +281,2 @@ "dryRunCommand",

};
exports.mergeIntoConfig = mergeIntoConfig;
const mergeCommand = ({ pkg, pkgManager, command, config, }) => {

@@ -271,3 +319,3 @@ const managerCommand = !!pkgManager &&

typeof c[complex] === "string"
? lodash_1.template(c[complex])(pipe)
? lodash.template(c[complex])(pipe)
: c[complex];

@@ -278,5 +326,11 @@ return templated;

else {
return typeof c === "function" ? c : lodash_1.template(c)(pipe);
// if it is a function, we pipe when we run the function
return typeof c === "function" ? c : lodash.template(c)(pipe);
}
});
};
exports.assemble = assemble;
exports.compareBumps = compareBumps;
exports.mergeChangesToConfig = mergeChangesToConfig;
exports.mergeIntoConfig = mergeIntoConfig;
{
"name": "@covector/assemble",
"version": "0.5.0",
"version": "0.6.0",
"license": "Apache-2.0",

@@ -20,4 +20,4 @@ "homepage": "https://github.com/jbolda/covector#readme",

"dependencies": {
"@covector/command": "0.3.0",
"@covector/files": "0.3.0",
"@covector/command": "0.3.1",
"@covector/files": "0.3.1",
"js-yaml": "^4.0.0",

@@ -35,3 +35,3 @@ "lodash": "^4.17.21",

"fixturez": "^1.1.0",
"rollup": "^2.41.4",
"rollup": "^2.42.4",
"tslib": "^2.1.0",

@@ -38,0 +38,0 @@ "typescript": "^4.2.3"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc