Skip to content

Commit f02f096

Browse files
committed
allow aliases too
Signed-off-by: Kipras Melnikovas <kipras@kipras.org>
1 parent 0218adb commit f02f096

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

git-stacked-rebase.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ import { uniq } from "./util/uniq";
2121
import { parseTodoOfStackedRebase } from "./parse-todo-of-stacked-rebase/parseTodoOfStackedRebase";
2222
import { Termination } from "./util/error";
2323
import { assertNever } from "./util/assertNever";
24+
import { Single, Tuple } from "./util/tuple";
2425
import {
2526
GoodCommand,
2627
GoodCommandStacked, //
2728
namesOfRebaseCommandsThatMakeRebaseExitToPause,
2829
StackedRebaseCommand,
29-
StackedRebaseEitherCommandOrAlias,
30+
StackedRebaseCommandAlias,
3031
} from "./parse-todo-of-stacked-rebase/validator";
3132

3233
// console.log = () => {};
@@ -608,17 +609,20 @@ export const gitStackedRebase = async (
608609
const editedRebaseTodo: string = fs.readFileSync(pathToStackedRebaseTodoFile, { encoding: "utf-8" });
609610
const linesOfEditedRebaseTodo: string[] = editedRebaseTodo.split("\n");
610611

611-
replaceCommandInText(oldLatestBranchCmd, "branch-end-last", "branch-end");
612-
replaceCommandInText(newLatestBranchCmd, "branch-end-new", "branch-end-last");
612+
replaceCommandInText(oldLatestBranchCmd, ["branch-end-last"], "branch-end");
613+
replaceCommandInText(newLatestBranchCmd, ["branch-end-new", "ben"], "branch-end-last");
613614

614615
// eslint-disable-next-line no-inner-declarations
615616
function replaceCommandInText(
616617
cmd: GoodCommandStacked, //
617-
expectedOldName: StackedRebaseEitherCommandOrAlias,
618+
allowedOldName: Single<StackedRebaseCommand> | Tuple<StackedRebaseCommand, StackedRebaseCommandAlias>,
618619
newName: StackedRebaseCommand
619620
): void {
620621
const words = linesOfEditedRebaseTodo[cmd.lineNumber].split(" ");
621-
assert.equal(words[0], expectedOldName);
622+
assert(
623+
allowedOldName.some((n) => n === words[0]),
624+
`invalid old name of command in git-rebase-todo file. got "${words[0]}", expected one of "${allowedOldName}".`
625+
);
622626
words[0] = newName;
623627
linesOfEditedRebaseTodo[oldLatestBranchCmd.lineNumber] = words.join(" ");
624628
}

util/tuple.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* ...because eslint >5 sucks
3+
*/
4+
5+
export type Single<A> = [A];
6+
export type ReadonlySingle<A> = readonly [A];
7+
8+
export type Tuple<A, B> = [A, B];
9+
export type ReadonlyTuple<A, B> = readonly [A, B];

0 commit comments

Comments
 (0)