unbag
Version:
一个专门用来开发npm工具的包
93 lines • 2.27 kB
JavaScript
import { ReleaseBumpConfigDefault, bump } from "./bump.mjs";
import { ReleaseChangelogConfigDefault, changelog } from "./changelog.mjs";
import { ReleaseCommitConfigDefault, commit } from "./commit.mjs";
import { ReleaseTagConfigDefault, tag } from "./tag.mjs";
import { ReleaseBranchConfigDefault, branch } from "./branch.mjs";
import { Command } from "./../../core/command.mjs";
import { unSafeFunctionWrapper } from "./../../utils/common.mjs";
import { useMessage } from "./../../utils/message/index.mjs";
import { useLog } from "./../../utils/log.mjs";
import { useDefaultReleasePresetPath } from "./utils.mjs";
import { push, ReleasePushConfigDefault } from "./push.mjs";
const releaseDefaultConfig = {
preset: {
path: useDefaultReleasePresetPath(),
params: {}
},
branch: ReleaseBranchConfigDefault,
bump: ReleaseBumpConfigDefault,
changelog: ReleaseChangelogConfigDefault,
commit: ReleaseCommitConfigDefault,
tag: ReleaseTagConfigDefault,
push: ReleasePushConfigDefault
};
const release = async params => {
const {
finalUserConfig
} = params;
const log = useLog({
finalUserConfig
});
const message = useMessage({
locale: finalUserConfig.locale
});
const {
release: {
dry,
scope
}
} = finalUserConfig;
if (dry) {
log.warn(message.release.dry.tip());
}
if (scope) {
const {
check,
name
} = scope;
if (!check) {
throw new Error(message.release.scope.undefinedCheck());
}
const validName = await unSafeFunctionWrapper(check)({
name,
finalUserConfig
});
if (!validName) {
throw new Error(message.release.scope.unValidScopeName());
}
}
await branch({
finalUserConfig
});
const bumpRes = await bump({
finalUserConfig
});
const changelogRes = await changelog({
finalUserConfig,
bumpRes
});
await commit({
finalUserConfig,
bumpRes,
changelogRes
});
await tag({
finalUserConfig,
bumpRes,
changelogRes
});
await push({
finalUserConfig
});
};
class ReleaseCommand extends Command {
async task() {
const {
finalUserConfig
} = this;
await release({
finalUserConfig
});
}
}
export { ReleaseCommand, release, releaseDefaultConfig };