DefinitelyTyped/types/issue-parser/issue-parser-tests.ts

73 lines
1.3 KiB
TypeScript

import issueParser = require("issue-parser");
import { Action } from "issue-parser";
// Without options
issueParser();
// With predefined options
issueParser("github");
issueParser("bitbucket");
issueParser("gitlab");
issueParser("waffle");
// With custom format
issueParser({
actions: {
fix: ["complete"],
hold: ["holds up"]
},
issuePrefixes: ["🐛"]
});
// Extend existing format
issueParser("github", {
actions: {
parent: ["parent of"],
related: ["related to"]
}
});
const parse = issueParser("github");
const result = parse("#1");
// Parse references
result.refs.forEach(ref => {
ref.issue;
ref.slug;
ref.raw;
ref.prefix;
});
// Parse closing keywords
result.actions.close.forEach(action => {
action.raw;
action.action;
action.slug;
action.prefix;
action.issue;
});
// Parse user mentions
result.mentions.forEach(mention => {
mention.raw;
mention.prefix;
mention.user;
});
// allRefs
const isAction = (ref: any): ref is Action => true;
result.allRefs.forEach(ref => {
if (isAction(ref)) {
ref.raw;
ref.action;
ref.slug;
ref.prefix;
ref.issue;
} else {
ref.raw;
ref.slug;
ref.prefix;
ref.issue;
}
});