diff --git a/README.md b/README.md index 604e194d..1cb6605b 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,10 @@ Browsers Load github-project directly from cdn.skypack.dev - + ```html ``` @@ -66,7 +66,7 @@ for (const item of items) { item.fields.title, item.fields.dueAt, item.fields.priority, - item.isDraft + item.type === "DRAFT_ISSUE" ? "_draft_" : item.content.assignees.map(({ login }) => login).join(",") ); diff --git a/api/items.get-by-content-repository-and-number.js b/api/items.get-by-content-repository-and-number.js index 54fb8003..d30bdb0c 100644 --- a/api/items.get-by-content-repository-and-number.js +++ b/api/items.get-by-content-repository-and-number.js @@ -21,7 +21,7 @@ export async function getItemByContentRepositoryAndNumber( const stateWithItems = await getStateWithProjectItems(project, state); return stateWithItems.items.find((item) => { - if (item.isDraft === true) return; + if (item.type === "DRAFT_ISSUE") return; return ( item.content.repository === repositoryName && diff --git a/api/items.remove-by-content-repository-and-name.js b/api/items.remove-by-content-repository-and-name.js index 94649302..6fbd527f 100644 --- a/api/items.remove-by-content-repository-and-name.js +++ b/api/items.remove-by-content-repository-and-name.js @@ -22,7 +22,7 @@ export async function removeItemByContentRepositoryAndNumber( const stateWithItems = await getStateWithProjectItems(project, state); const existingItem = stateWithItems.items.find((item) => { - if (item.isDraft === true) return; + if (item.type === "DRAFT_ISSUE") return; return ( item.content.repository === repositoryName && diff --git a/api/items.update-by-content-repository-and-number.js b/api/items.update-by-content-repository-and-number.js index 3c75fb88..54f2c57f 100644 --- a/api/items.update-by-content-repository-and-number.js +++ b/api/items.update-by-content-repository-and-number.js @@ -25,7 +25,7 @@ export async function updateItemByContentRepositoryAndNumber( const stateWithItems = await getStateWithProjectItems(project, state); const item = stateWithItems.items.find((item) => { - if (item.isDraft === true) return; + if (item.type === "DRAFT_ISSUE") return; return ( item.content.repository === repositoryName && diff --git a/api/lib/project-item-node-to-github-project-item.js b/api/lib/project-item-node-to-github-project-item.js index 60cc5d71..3880bccc 100644 --- a/api/lib/project-item-node-to-github-project-item.js +++ b/api/lib/project-item-node-to-github-project-item.js @@ -14,12 +14,11 @@ export function projectItemNodeToGitHubProjectItem(state, itemNode) { const fields = itemFieldsNodesToFieldsMap(state, itemNode.fieldValues.nodes); // item is draft - if (!itemNode.content || itemNode.type === 'DRAFT_ISSUE') { + if (!itemNode.content || itemNode.type === "DRAFT_ISSUE") { return { id: itemNode.id, type: itemNode.type, fields, - isDraft: true, }; } @@ -55,7 +54,6 @@ export function projectItemNodeToGitHubProjectItem(state, itemNode) { id: itemNode.id, type: itemNode.type, fields, - isDraft: false, // @ts-expect-error - complains about `.merged` property content, }; diff --git a/index.d.ts b/index.d.ts index f1d3021f..5a6dafa6 100644 --- a/index.d.ts +++ b/index.d.ts @@ -97,13 +97,11 @@ type DraftItem = { id: string; type: "DRAFT_ISSUE"; fields: TFields; - isDraft: true; }; type NonDraftItem = { id: string; type: "ISSUE" | "PULL_REQUEST" | "REDACTED"; fields: TFields; - isDraft: false; content: Issue | PullRequest; }; diff --git a/index.test-d.ts b/index.test-d.ts index 56939f54..e875dc18 100644 --- a/index.test-d.ts +++ b/index.test-d.ts @@ -75,12 +75,12 @@ export async function listItemsTest() { }); const [item] = await project.items.list(); - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -100,7 +100,7 @@ export async function addItemTest() { const item = await project.items.add("issue node_id"); expectType(item.id); - expectType(item.isDraft); + expectNotType<"DRAFT_ISSUE">(item.type); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -121,7 +121,7 @@ export async function addItemWithFieldsTest() { }); expectType(item.id); - expectType(item.isDraft); + expectNotType<"DRAFT_ISSUE">(item.type); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); expectType(item.fields.myField); @@ -148,7 +148,7 @@ export async function getItemTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -157,7 +157,7 @@ export async function getItemTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -185,7 +185,7 @@ export async function getItemByContentIdTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -194,7 +194,7 @@ export async function getItemByContentIdTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -225,7 +225,7 @@ export async function getItemByRepositoryAndNumberTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -234,7 +234,7 @@ export async function getItemByRepositoryAndNumberTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -264,7 +264,7 @@ export async function updateItemTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -273,7 +273,7 @@ export async function updateItemTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -303,7 +303,7 @@ export async function updateItemByContentIdTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -312,7 +312,7 @@ export async function updateItemByContentIdTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); @@ -346,7 +346,7 @@ export async function updateItemByContentRepositoryAndNumberTest() { return; } - if (item.isDraft === true) { + if (item.type === "DRAFT_ISSUE") { expectType(item.id); expectType(item.fields.title); expectNotType<"Title">(item.fields.title); @@ -355,7 +355,7 @@ export async function updateItemByContentRepositoryAndNumberTest() { // @ts-expect-error any Property 'notField' does not exist on type item.fields.notField; - // @ts-expect-error - `.content` is not set if `.isDraft` is true + // @ts-expect-error - `.content` is not set if `.type` is "DRAFT_ISSUE" item.content; } else { expectType(item.id); diff --git a/test.js b/test.js index c24cee46..8ed78237 100644 --- a/test.js +++ b/test.js @@ -295,13 +295,11 @@ test("project.items.list() without configuring custom fields", async (t) => { id: "PNI_lADOBYMIeM0lfM4AAzDD", fields: { title: "Manual entry", status: null }, type: "DRAFT_ISSUE", - isDraft: true, }, { id: "PNI_lADOBYMIeM0lfM4AAzDx", type: "PULL_REQUEST", fields: { title: "Update README.md", status: "In Progress" }, - isDraft: false, content: { isIssue: false, isPullRequest: true, @@ -326,7 +324,6 @@ test("project.items.list() without configuring custom fields", async (t) => { title: "Enforce setting project via github actions", status: null, }, - isDraft: false, content: { isIssue: true, isPullRequest: false, @@ -615,7 +612,6 @@ test("project.items.add() without configuring custom fields", async (t) => { title: "Enforce setting project via github actions", status: null, }, - isDraft: false, content: { isIssue: true, isPullRequest: false, diff --git a/test.js.md b/test.js.md index b639f4e6..9a057906 100644 --- a/test.js.md +++ b/test.js.md @@ -105,7 +105,6 @@ Generated by [AVA](https://avajs.dev). title: 'Yes', }, id: 'PNI_lADOBYMIeM0lfM4AAzDD', - isDraft: true, type: 'DRAFT_ISSUE', }, { @@ -131,7 +130,6 @@ Generated by [AVA](https://avajs.dev). title: null, }, id: 'PNI_lADOBYMIeM0lfM4AAzDx', - isDraft: false, type: 'PULL_REQUEST', }, { @@ -156,7 +154,6 @@ Generated by [AVA](https://avajs.dev). title: null, }, id: 'PNI_lADOBYMIeM0lfM4ADfm9', - isDraft: false, type: 'ISSUE', }, ] @@ -196,6 +193,5 @@ Generated by [AVA](https://avajs.dev). title: null, }, id: 'PNI_lADOBYMIeM0lfM4ADfm9', - isDraft: false, type: 'ISSUE', } diff --git a/test.js.snap b/test.js.snap index c463f085..56322059 100644 Binary files a/test.js.snap and b/test.js.snap differ diff --git a/test/fixtures/add-item/issue/new-issue-item.js b/test/fixtures/add-item/issue/new-issue-item.js index ba6870cf..f70af351 100644 --- a/test/fixtures/add-item/issue/new-issue-item.js +++ b/test/fixtures/add-item/issue/new-issue-item.js @@ -7,7 +7,6 @@ export const newIssueItemFixture = { relevantToUsers: null, suggestedChangelog: null, }, - isDraft: false, content: { isIssue: true, isPullRequest: false, diff --git a/test/fixtures/add-item/pull-request/new-pull-request-item.js b/test/fixtures/add-item/pull-request/new-pull-request-item.js index 16ca0c28..137aeb8f 100644 --- a/test/fixtures/add-item/pull-request/new-pull-request-item.js +++ b/test/fixtures/add-item/pull-request/new-pull-request-item.js @@ -7,7 +7,6 @@ export const newPullRequestItemFixture = { relevantToUsers: null, suggestedChangelog: null, }, - isDraft: false, content: { isIssue: false, isPullRequest: true, diff --git a/test/fixtures/get-item/draft-item.js b/test/fixtures/get-item/draft-item.js index 7e2718f8..3775d3ca 100644 --- a/test/fixtures/get-item/draft-item.js +++ b/test/fixtures/get-item/draft-item.js @@ -7,5 +7,4 @@ export const draftItemFixture = { relevantToUsers: "Yes", suggestedChangelog: null, }, - isDraft: true, }; diff --git a/test/fixtures/get-item/issue-item.js b/test/fixtures/get-item/issue-item.js index 0b63e572..0dbdecd3 100644 --- a/test/fixtures/get-item/issue-item.js +++ b/test/fixtures/get-item/issue-item.js @@ -7,7 +7,6 @@ export const issueItemFixture = { relevantToUsers: null, suggestedChangelog: null, }, - isDraft: false, content: { isIssue: true, isPullRequest: false, diff --git a/test/fixtures/list-items/items.js b/test/fixtures/list-items/items.js index b5617a11..7ce5368e 100644 --- a/test/fixtures/list-items/items.js +++ b/test/fixtures/list-items/items.js @@ -8,7 +8,6 @@ export const listItemsFixture = [ relevantToUsers: "Yes", suggestedChangelog: null, }, - isDraft: true, }, { id: "PNI_lADOBYMIeM0lfM4AAzDx", @@ -19,7 +18,6 @@ export const listItemsFixture = [ relevantToUsers: null, suggestedChangelog: null, }, - isDraft: false, content: { isIssue: false, isPullRequest: true, @@ -46,7 +44,6 @@ export const listItemsFixture = [ relevantToUsers: null, suggestedChangelog: null, }, - isDraft: false, content: { isIssue: true, isPullRequest: false,