From b5372fb2eaa16a99e6f8b80f8e094fe0133adf58 Mon Sep 17 00:00:00 2001 From: Pavel Birukov Date: Thu, 6 Sep 2018 10:13:30 +0300 Subject: [PATCH] Add ProjectId type to arguments --- src/infrastructure/BaseService.ts | 8 ++-- src/infrastructure/Bundler.ts | 4 +- src/infrastructure/RequestHelper.ts | 35 ++++++++++++----- src/services/Branches.ts | 12 +++--- src/services/Commits.ts | 20 +++++----- src/services/DeployKeys.ts | 8 ++-- src/services/Deployments.ts | 4 +- src/services/Environments.ts | 10 ++--- src/services/GroupProjects.ts | 2 +- src/services/GroupVariables.ts | 5 ++- src/services/Issues.ts | 26 ++++++------ src/services/Jobs.ts | 22 +++++------ src/services/Labels.ts | 12 +++--- src/services/MergeRequests.ts | 48 +++++++++++------------ src/services/NotificationSettings.ts | 4 +- src/services/PagesDomains.ts | 10 ++--- src/services/PipelineSchedules.ts | 12 +++--- src/services/Pipelines.ts | 12 +++--- src/services/ProjectHooks.ts | 10 ++--- src/services/ProjectImportExport.ts | 8 ++-- src/services/ProjectSnippets.ts | 14 +++---- src/services/Projects.ts | 38 +++++++++--------- src/services/ProtectedBranches.ts | 8 ++-- src/services/PushRule.ts | 8 ++-- src/services/Repositories.ts | 12 +++--- src/services/RepositoryFiles.ts | 10 ++--- src/services/Runners.ts | 6 +-- src/services/Search.ts | 2 +- src/services/Services.ts | 6 +-- src/services/SystemHooks.ts | 2 +- src/services/Tags.ts | 8 ++-- src/services/Todos.ts | 2 +- src/services/Triggers.ts | 10 ++--- src/services/Wikis.ts | 10 ++--- src/templates/ResourceAwardEmojis.ts | 17 +++++--- src/templates/ResourceBadges.ts | 2 +- src/templates/ResourceCustomAttributes.ts | 2 +- src/templates/ResourceDiscussions.ts | 11 +++--- src/templates/ResourceIssueBoards.ts | 2 +- src/templates/ResourceMembers.ts | 2 +- src/templates/ResourceMilestones.ts | 2 +- src/templates/ResourceNotes.ts | 11 +++--- src/templates/ResourceTemplates.ts | 2 +- src/templates/ResourceVariables.ts | 29 +++++++++----- src/types.d.ts | 11 ++++++ src/types.ts | 6 --- 46 files changed, 272 insertions(+), 233 deletions(-) create mode 100644 src/types.d.ts delete mode 100644 src/types.ts diff --git a/src/infrastructure/BaseService.ts b/src/infrastructure/BaseService.ts index e5d70b06..1f64d4aa 100644 --- a/src/infrastructure/BaseService.ts +++ b/src/infrastructure/BaseService.ts @@ -17,10 +17,10 @@ export type BaseModelContructorOptions = | BaseModelOptions & Required>; class BaseModel { protected url: string; - public headers: { [header: string]: string | number}; - public rejectUnauthorized: boolean; - protected requester: any; - protected useXMLHttpRequest: boolean; + public readonly headers: { [header: string]: string | number}; + public readonly rejectUnauthorized: boolean; + protected readonly requester: any; + protected readonly useXMLHttpRequest: boolean; constructor({ token, diff --git a/src/infrastructure/Bundler.ts b/src/infrastructure/Bundler.ts index fb695597..90a71ced 100644 --- a/src/infrastructure/Bundler.ts +++ b/src/infrastructure/Bundler.ts @@ -4,7 +4,7 @@ import { BaseModelContructorOptions } from './BaseService'; function Bundler( services: T, ): new (...args: any[]) => { [K in keyof T]: InstanceType } { - const combined = Object.assign({}, services); + const combined = { ...services as object } as T; interface BundleClass { [K: string]: BaseService; } @@ -15,7 +15,7 @@ function Bundler( this[serviceName] = new combined[serviceName](options); }); } - } as any; + } as temporaryAny; } export default Bundler; diff --git a/src/infrastructure/RequestHelper.ts b/src/infrastructure/RequestHelper.ts index d060ac0a..171847a5 100644 --- a/src/infrastructure/RequestHelper.ts +++ b/src/infrastructure/RequestHelper.ts @@ -3,6 +3,7 @@ import LinkParser from 'parse-link-header'; import QS from 'qs'; import URLJoin from 'url-join'; import StreamableRequest from 'request'; +import { BaseService } from '.'; interface RequestParametersInput { url?: string; @@ -18,18 +19,19 @@ interface RequestParametersInput { interface GetPaginatedOptions { showPagination?: boolean; maxPages?: number; + perPage?: number; page?: number; } type RequestParametersOutput = RequestParametersInput & Required>; -export async function wait(ms) { +export async function wait(ms: number) { return new Promise(resolve => setTimeout(resolve, ms)); } function defaultRequest( - { url, useXMLHttpRequest, rejectUnauthorized }, + { url, useXMLHttpRequest, rejectUnauthorized }: BaseService, endpoint, { headers, body, qs, formData, resolveWithFullResponse = false }: RequestParametersInput, ): RequestParametersOutput { @@ -59,7 +61,7 @@ function defaultRequest( return params; } -function getStream(service, endpoint, options = {}) { +function getStream(service: BaseService, endpoint: string, options = {}) { if (service.useXMLHttpRequest) { throw new Error( `Cannot use streaming functionality with XMLHttpRequest. Please instantiate without this @@ -75,7 +77,11 @@ function getStream(service, endpoint, options = {}) { return StreamableRequest.get(requestOptions); } -async function getPaginated(service, endpoint, options: GetPaginatedOptions = {}) { +async function getPaginated( + service: BaseService, + endpoint: string, + options: GetPaginatedOptions = {}, +) { const { showPagination, maxPages, ...queryOptions } = options; const requestOptions = defaultRequest(service, endpoint, { headers: service.headers, @@ -116,8 +122,19 @@ async function getPaginated(service, endpoint, options: GetPaginatedOptions = {} return data; } +type RequestType = 'post' | 'get' | 'put' | 'delete'; +export interface RequestOptions { + +} class RequestHelper { - static async request(type, service, endpoint, options = {}, form = false, stream = false) { + static async request( + type: RequestType, + service: BaseService, + endpoint: string, + options: RequestOptions = {}, + form = false, + stream = false, + ) { try { switch (type) { case 'get': @@ -176,19 +193,19 @@ class RequestHelper { return wait(sleepTime * 1000); } - static get(service, endpoint, options = {}, { stream = false } = {}) { + static get(service: BaseService, endpoint, options = {}, { stream = false } = {}) { return RequestHelper.request('get', service, endpoint, options, false, stream); } - static post(service, endpoint, options = {}, form = false) { + static post(service: BaseService, endpoint, options = {}, form = false) { return RequestHelper.request('post', service, endpoint, options, form); } - static put(service, endpoint, options = {}) { + static put(service: BaseService, endpoint, options = {}) { return RequestHelper.request('put', service, endpoint, options); } - static delete(service, endpoint, options = {}) { + static delete(service: BaseService, endpoint, options = {}) { return RequestHelper.request('delete', service, endpoint, options); } } diff --git a/src/services/Branches.ts b/src/services/Branches.ts index 9e34adc4..4a449c28 100644 --- a/src/services/Branches.ts +++ b/src/services/Branches.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Branches extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/branches`, options); } - create(projectId, branchName, ref) { + create(projectId: ProjectId, branchName: string, ref: string) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/repository/branches`, { @@ -16,25 +16,25 @@ class Branches extends BaseService { }); } - protect(projectId, branchName, options) { + protect(projectId: ProjectId, branchName: string, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/protected_branches`, { name: branchName, ...options }); } - remove(projectId, branchName) { + remove(projectId: ProjectId, branchName: string) { const [pId, bName] = [projectId, branchName].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/repository/branches/${bName}`); } - show(projectId, branchName) { + show(projectId: ProjectId, branchName: string) { const [pId, bName] = [projectId, branchName].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/repository/branches/${bName}`); } - unprotect(projectId, branchName) { + unprotect(projectId: ProjectId, branchName: string) { const [pId, bName] = [projectId, branchName].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/repository/branches/${bName}/unprotect`); diff --git a/src/services/Commits.ts b/src/services/Commits.ts index a0441b05..8f235e94 100644 --- a/src/services/Commits.ts +++ b/src/services/Commits.ts @@ -1,25 +1,25 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Commits extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits`, options); } - cherryPick(projectId, sha, branch) { + cherryPick(projectId: ProjectId, sha, branch) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/repository/commits/${sha}/cherry_pick`, { branch }); } - comments(projectId, sha) { + comments(projectId: ProjectId, sha) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/comments`); } - create(projectId, branch, message, actions = [], options) { + create(projectId: ProjectId, branch, message, actions = [], options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/repository/commits`, { @@ -30,7 +30,7 @@ class Commits extends BaseService { }); } - createComment(projectId, sha, note, options) { + createComment(projectId: ProjectId, sha, note, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/repository/commits/${sha}/comments`, { @@ -39,31 +39,31 @@ class Commits extends BaseService { }); } - diff(projectId, sha) { + diff(projectId: ProjectId, sha) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/diff`); } - editStatus(projectId, sha, options) { + editStatus(projectId: ProjectId, sha, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/statuses/${sha}`, options); } - references(projectId, sha) { + references(projectId: ProjectId, sha) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/refs`); } - show(projectId, sha, options) { + show(projectId: ProjectId, sha, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}`, options); } - status(projectId, sha, options) { + status(projectId: ProjectId, sha, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/commits/${sha}/statuses`, options); diff --git a/src/services/DeployKeys.ts b/src/services/DeployKeys.ts index 7b682184..94845ed6 100644 --- a/src/services/DeployKeys.ts +++ b/src/services/DeployKeys.ts @@ -1,25 +1,25 @@ import { BaseService, RequestHelper } from '../infrastructure'; class DeployKeys extends BaseService { - add(projectId, options) { + add(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/deploy_keys`, options); } - all(projectId) { + all(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/deploy_keys`); } - show(projectId, keyId) { + show(projectId: ProjectId, keyId) { const [pId, kId] = [projectId, keyId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/deploy_keys/${kId}`); } - enable(projectId, keyId) { + enable(projectId: ProjectId, keyId) { const [pId, kId] = [projectId, keyId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/deploy_keys/${kId}/enable`); diff --git a/src/services/Deployments.ts b/src/services/Deployments.ts index 08c5c878..a5fd2e58 100644 --- a/src/services/Deployments.ts +++ b/src/services/Deployments.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Deployments extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/deployments`, options); } - show(projectId, deploymentId) { + show(projectId: ProjectId, deploymentId) { const [pId, dId] = [projectId, deploymentId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/deployments/${dId}`); diff --git a/src/services/Environments.ts b/src/services/Environments.ts index b8e8a774..f58c0971 100644 --- a/src/services/Environments.ts +++ b/src/services/Environments.ts @@ -1,31 +1,31 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Environments extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/environments`, options); } - create(projectId, options) { + create(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/environments`, options); } - edit(projectId, environmentId, options) { + edit(projectId: ProjectId, environmentId, options) { const [pId, eId] = [projectId, environmentId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/environments/${eId}`, options); } - remove(projectId, environmentId) { + remove(projectId: ProjectId, environmentId) { const [pId, eId] = [projectId, environmentId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/environments/${eId}`); } - stop(projectId, environmentId) { + stop(projectId: ProjectId, environmentId) { const [pId, eId] = [projectId, environmentId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/environments/${eId}/stop`); diff --git a/src/services/GroupProjects.ts b/src/services/GroupProjects.ts index cf85ae94..8e5fc95e 100644 --- a/src/services/GroupProjects.ts +++ b/src/services/GroupProjects.ts @@ -7,7 +7,7 @@ class GroupProjects extends BaseService { return RequestHelper.get(this, `groups/${gId}/projects`, options); } - add(groupId, projectId) { + add(groupId, projectId: ProjectId) { const [gId, pId] = [groupId, projectId].map(encodeURIComponent); return RequestHelper.post(this, `groups/${gId}/projects/${pId}`); diff --git a/src/services/GroupVariables.ts b/src/services/GroupVariables.ts index 28f12466..5e3813a2 100644 --- a/src/services/GroupVariables.ts +++ b/src/services/GroupVariables.ts @@ -1,8 +1,9 @@ import { ResourceVariables } from '../templates'; +import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class GroupVariables extends ResourceVariables { - constructor(options) { - super('groups', null, options); + constructor(baseParams: BaseModelContructorOptions) { + super('groups', null, baseParams); } } diff --git a/src/services/Issues.ts b/src/services/Issues.ts index 55edd2b3..110159c0 100644 --- a/src/services/Issues.ts +++ b/src/services/Issues.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Issues extends BaseService { - addSpentTime(projectId, issueId, duration) { + addSpentTime(projectId: ProjectId, issueId, duration) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${iId}/add_spent_time`, { @@ -9,7 +9,7 @@ class Issues extends BaseService { }); } - addTimeEstimate(projectId, issueId, duration) { + addTimeEstimate(projectId: ProjectId, issueId, duration) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${iId}/time_estimate`, { @@ -23,19 +23,19 @@ class Issues extends BaseService { return RequestHelper.get(this, url, options); } - create(projectId, options) { + create(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/issues`, options); } - edit(projectId, issueId, options) { + edit(projectId: ProjectId, issueId, options) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/issues/${iId}`, options); } - link(projectId, issueIId, targetProjectId, targetIssueId, options = {}) { + link(projectId: ProjectId, issueIId, targetProjectId, targetIssueId, options = {}) { const [pId, iId] = [projectId, issueIId].map(encodeURIComponent); const [targetpId, targetIId] = [targetProjectId, targetIssueId].map(encodeURIComponent); @@ -46,49 +46,49 @@ class Issues extends BaseService { }); } - participants(projectId, issueId) { + participants(projectId: ProjectId, issueId) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/issues/${iId}/participants`); } - remove(projectId, issueId) { + remove(projectId: ProjectId, issueId) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/issues/${iId}`); } - resetSpentTime(projectId, mergerequestId) { + resetSpentTime(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${mId}/reset_spent_time`); } - resetTimeEstimate(projectId, mergerequestId) { + resetTimeEstimate(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${mId}/reset_time_estimate`); } - show(projectId, issueId) { + show(projectId: ProjectId, issueId) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/issues/${iId}`); } - subscribe(projectId, issueId, options) { + subscribe(projectId: ProjectId, issueId, options) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${iId}/subscribe`, options); } - timeStats(projectId, mergerequestId) { + timeStats(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/issues/${mId}/time_stats`); } - unsubscribe(projectId, issueId) { + unsubscribe(projectId: ProjectId, issueId) { const [pId, iId] = [projectId, issueId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/issues/${iId}/unsubscribe`); diff --git a/src/services/Jobs.ts b/src/services/Jobs.ts index 092a575f..3eda2fe1 100644 --- a/src/services/Jobs.ts +++ b/src/services/Jobs.ts @@ -1,20 +1,20 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Jobs extends BaseService { - all(projectId, options = {}) { + all(projectId: ProjectId, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/jobs`, options); } - cancel(projectId, jobId) { + cancel(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/cancel`); } downloadSingleArtifactFile( - projectId, + projectId: ProjectId, jobId, artifactPath, options = { stream: false }, @@ -30,7 +30,7 @@ class Jobs extends BaseService { } downloadLatestArtifactFile( - projectId, + projectId: ProjectId, ref, name, options = { stream: false }, @@ -45,43 +45,43 @@ class Jobs extends BaseService { ); } - downloadTraceFile(projectId, jobId) { + downloadTraceFile(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/jobs/${jId}/trace`); } - erase(projectId, jobId) { + erase(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/erase`); } - keepArtifacts(projectId, jobId) { + keepArtifacts(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/artifacts/keep`); } - play(projectId, jobId) { + play(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/play`); } - retry(projectId, jobId) { + retry(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/jobs/${jId}/retry`); } - show(projectId, jobId) { + show(projectId: ProjectId, jobId) { const [pId, jId] = [projectId, jobId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/jobs/${jId}`); } - showPipelineJobs(projectId, pipelineId, options) { + showPipelineJobs(projectId: ProjectId, pipelineId, options) { const [pId, ppId] = [projectId, pipelineId].map(encodeURIComponent); return RequestHelper.get( diff --git a/src/services/Labels.ts b/src/services/Labels.ts index 7eea6010..7ab1fb6b 100644 --- a/src/services/Labels.ts +++ b/src/services/Labels.ts @@ -1,37 +1,37 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Labels extends BaseService { - all(projectId, options = {}) { + all(projectId: ProjectId, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/labels`, options); } - create(projectId, options = {}) { + create(projectId: ProjectId, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/labels`, options); } - edit(projectId, labelName, options = {}) { + edit(projectId: ProjectId, labelName, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/labels`, { name: labelName, ...options }); } - remove(projectId, labelName) { + remove(projectId: ProjectId, labelName) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}/labels`, { name: labelName }); } - subscribe(projectId, labelId, options = {}) { + subscribe(projectId: ProjectId, labelId, options = {}) { const [pId, lId] = [projectId, labelId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${lId}/subscribe`, options); } - unsubscribe(projectId, labelId) { + unsubscribe(projectId: ProjectId, labelId) { const [pId, lId] = [projectId, labelId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/issues/${lId}/unsubscribe`); diff --git a/src/services/MergeRequests.ts b/src/services/MergeRequests.ts index c440063d..69ad2506 100644 --- a/src/services/MergeRequests.ts +++ b/src/services/MergeRequests.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class MergeRequests extends BaseService { - accept(projectId, mergerequestId, options) { + accept(projectId: ProjectId, mergerequestId, options) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}/merge`, options); } - addSpentTime(projectId, mergerequestId, duration) { + addSpentTime(projectId: ProjectId, mergerequestId, duration) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${mId}/add_spent_time`, { @@ -15,7 +15,7 @@ class MergeRequests extends BaseService { }); } - addTimeEstimate(projectId, mergerequestId, duration) { + addTimeEstimate(projectId: ProjectId, mergerequestId, duration) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/issues/${mId}/time_estimate`, { @@ -23,50 +23,50 @@ class MergeRequests extends BaseService { }); } - approve(projectId, mergerequestId, { sha }) { + approve(projectId: ProjectId, mergerequestId, { sha }) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/approve`, { sha }); } - approvals(projectId, { mergerequestId }: { mergerequestId?: string } = {}) { + approvals(projectId: ProjectId, { mergerequestId }: { mergerequestId?: string } = {}) { const pId = encodeURIComponent(projectId); const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : ''; return RequestHelper.get(this, `projects/${pId}/${mergeRequest}/approvals`); } - all({ projectId, ...options }: { projectId?: string } = {}) { + all({ projectId, ...options }: { projectId?: ProjectId } = {}) { const url = projectId ? `projects/${encodeURIComponent(projectId)}/merge_requests` : 'merge_requests'; return RequestHelper.get(this, url, options); } - cancelOnPipelineSucess(projectId, mergerequestId) { + cancelOnPipelineSucess(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}/cancel_merge_when_pipeline_succeeds`); } - changes(projectId, mergerequestId) { + changes(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/changes`); } - closesIssues(projectId, mergerequestId) { + closesIssues(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/closes_issues`); } - commits(projectId, mergerequestId) { + commits(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/commits`); } - create(projectId, sourceBranch, targetBranch, title, options) { + create(projectId: ProjectId, sourceBranch, targetBranch, title, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/merge_requests`, { @@ -78,82 +78,82 @@ class MergeRequests extends BaseService { }); } - edit(projectId, mergerequestId, options) { + edit(projectId: ProjectId, mergerequestId, options) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/merge_requests/${mId}`, options); } - editApprovals(projectId, { mergerequestId, ...options }) { + editApprovals(projectId: ProjectId, { mergerequestId, ...options }) { const pId = encodeURIComponent(projectId); const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : ''; return RequestHelper.post(this, `projects/${pId}/${mergeRequest}approvals`, options); } - editApprovers(projectId, { mergerequestId, ...options }) { + editApprovers(projectId: ProjectId, { mergerequestId, ...options }) { const pId = encodeURIComponent(projectId); const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : ''; return RequestHelper.put(this, `projects/${pId}/${mergeRequest}approvers`, options); } - pipelines(projectId, { mergerequestId }: { mergerequestId?: string } = {}) { + pipelines(projectId: ProjectId, { mergerequestId }: { mergerequestId?: string } = {}) { const pId = encodeURIComponent(projectId); const mergeRequest = mergerequestId ? `merge_requests/${encodeURIComponent(mergerequestId)}` : ''; return RequestHelper.get(this, `projects/${pId}/${mergeRequest}/pipelines`); } - remove(projectId, mergerequestId) { + remove(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/merge_requests/${mId}`); } - resetSpentTime(projectId, mergerequestId) { + resetSpentTime(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/reset_spent_time`); } - resetTimeEstimate(projectId, mergerequestId) { + resetTimeEstimate(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/reset_time_estimate`); } - show(projectId, mergerequestId) { + show(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}`); } - timeStats(projectId, mergerequestId) { + timeStats(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/time_stats`); } - version(projectId, mergerequestId, versionId) { + version(projectId: ProjectId, mergerequestId, versionId) { const [pId, mId, vId] = [projectId, mergerequestId, versionId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/versions/${vId}`); } - versions(projectId, mergerequestId) { + versions(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/merge_requests/${mId}/versions`); } - unapprove(projectId, mergerequestId) { + unapprove(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/approve`); } - unsubscribe(projectId, mergerequestId) { + unsubscribe(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/merge_requests/${mId}/unsubscribe`); diff --git a/src/services/NotificationSettings.ts b/src/services/NotificationSettings.ts index e166dd15..47e1780d 100644 --- a/src/services/NotificationSettings.ts +++ b/src/services/NotificationSettings.ts @@ -26,7 +26,7 @@ const EVENTS = { SUCCESS_PIPELINE: 'success_pipeline', }; interface NotificationSettingsOptions { - projectId?: string; + projectId?: ProjectId; groupId?: string; } class NotificationSettings extends BaseService { @@ -40,7 +40,7 @@ class NotificationSettings extends BaseService { } all({ projectId, groupId }: NotificationSettingsOptions = {}) { - let url; + let url = ''; if (projectId) { url += `projects/${encodeURIComponent(projectId)}/`; diff --git a/src/services/PagesDomains.ts b/src/services/PagesDomains.ts index 2511a71d..44e53661 100644 --- a/src/services/PagesDomains.ts +++ b/src/services/PagesDomains.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; interface PagesDomainsOptions { - projectId?: string; + projectId?: ProjectId; } class PagesDomains extends BaseService { all({ projectId }: PagesDomainsOptions = {}) { @@ -10,25 +10,25 @@ class PagesDomains extends BaseService { return RequestHelper.get(this, `${url}pages/domains`); } - create(projectId, domain, options) { + create(projectId: ProjectId, domain, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/pages/domains`, { domain, ...options }); } - edit(projectId, domain, options) { + edit(projectId: ProjectId, domain, options) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/pages/domains/${domain}`, options); } - show(projectId, domain) { + show(projectId: ProjectId, domain) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/pages/domains/${domain}`); } - remove(projectId, domain) { + remove(projectId: ProjectId, domain) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}/pages/domains/${domain}`); diff --git a/src/services/PipelineSchedules.ts b/src/services/PipelineSchedules.ts index e2b48cc2..2fef7973 100644 --- a/src/services/PipelineSchedules.ts +++ b/src/services/PipelineSchedules.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class PipelineSchedules extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/pipeline_schedules`, options); } - create(projectId, description, ref, cron, options) { + create(projectId: ProjectId, description, ref, cron, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/pipeline_schedules`, { @@ -18,25 +18,25 @@ class PipelineSchedules extends BaseService { }); } - edit(projectId, scheduleId, options) { + edit(projectId: ProjectId, scheduleId, options) { const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/pipeline_schedules/${sId}`, options); } - remove(projectId, scheduleId) { + remove(projectId: ProjectId, scheduleId) { const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/pipeline_schedules/${sId}`); } - show(projectId, scheduleId) { + show(projectId: ProjectId, scheduleId) { const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/pipeline_schedules/${sId}`); } - takeOwnership(projectId, scheduleId) { + takeOwnership(projectId: ProjectId, scheduleId) { const [pId, sId] = [projectId, scheduleId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/pipeline_schedules/${sId}/take_ownership`); diff --git a/src/services/Pipelines.ts b/src/services/Pipelines.ts index 5ac49b0b..5be6a3c4 100644 --- a/src/services/Pipelines.ts +++ b/src/services/Pipelines.ts @@ -1,37 +1,37 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Pipelines extends BaseService { - all(projectId, options = {}) { + all(projectId: ProjectId, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/pipelines`, options); } - create(projectId, ref) { + create(projectId: ProjectId, ref) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/pipeline`, { ref }); } - show(projectId, pipelineId) { + show(projectId: ProjectId, pipelineId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/pipelines/${pipelineId}`); } - retry(projectId, pipelineId) { + retry(projectId: ProjectId, pipelineId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/pipelines/${pipelineId}/retry`); } - cancel(projectId, pipelineId) { + cancel(projectId: ProjectId, pipelineId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/pipelines/${pipelineId}/cancel`); } - showJobs(projectId, pipelineId, options) { + showJobs(projectId: ProjectId, pipelineId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/pipelines/${pipelineId}/jobs`, options); diff --git a/src/services/ProjectHooks.ts b/src/services/ProjectHooks.ts index 5fe4c5d0..b7ab392d 100644 --- a/src/services/ProjectHooks.ts +++ b/src/services/ProjectHooks.ts @@ -1,31 +1,31 @@ import { BaseService, RequestHelper } from '../infrastructure'; class ProjectHooks extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/hooks`, options); } - show(projectId, hookId) { + show(projectId: ProjectId, hookId) { const [pId, hId] = [projectId, hookId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/hooks/${hId}`); } - add(projectId, url, options) { + add(projectId: ProjectId, url, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/hooks`, { url, ...options }); } - edit(projectId, hookId, url, options) { + edit(projectId: ProjectId, hookId, url, options) { const [pId, hId] = [projectId, hookId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/hooks/${hId}`, { url, ...options }); } - remove(projectId, hookId) { + remove(projectId: ProjectId, hookId) { const [pId, hId] = [projectId, hookId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/hooks/${hId}`); diff --git a/src/services/ProjectImportExport.ts b/src/services/ProjectImportExport.ts index 33ba23f9..1d521fe4 100644 --- a/src/services/ProjectImportExport.ts +++ b/src/services/ProjectImportExport.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class ProjectImportExport extends BaseService { - download(projectId) { + download(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/export/download`); } - exportStatus(projectId) { + exportStatus(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/export`); @@ -17,13 +17,13 @@ class ProjectImportExport extends BaseService { return RequestHelper.post(this, 'projects/import', { file, path, ...options }); } - importStatus(projectId) { + importStatus(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/import`); } - schedule(projectId, options) { + schedule(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/export`, options); diff --git a/src/services/ProjectSnippets.ts b/src/services/ProjectSnippets.ts index 26b3fc7f..519a7175 100644 --- a/src/services/ProjectSnippets.ts +++ b/src/services/ProjectSnippets.ts @@ -7,19 +7,19 @@ const VISIBILITY_LEVELS = { }; class ProjectSnippets extends BaseService { - all(projectId, options = {}) { + all(projectId: ProjectId, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/snippets`, options); } - content(projectId, snippetId) { + content(projectId: ProjectId, snippetId) { const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/raw`); } - create(projectId, title, fileName, code, visibility, options = {}) { + create(projectId: ProjectId, title, fileName, code, visibility, options = {}) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/snippets`, { @@ -31,25 +31,25 @@ class ProjectSnippets extends BaseService { }); } - edit(projectId, snippetId, options) { + edit(projectId: ProjectId, snippetId, options) { const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/snippets/${sId}`, options); } - remove(projectId, snippetId) { + remove(projectId: ProjectId, snippetId) { const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/snippets/${sId}`); } - show(projectId, snippetId) { + show(projectId: ProjectId, snippetId) { const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/snippets/${sId}`); } - userAgentDetails(projectId, snippetId) { + userAgentDetails(projectId: ProjectId, snippetId) { const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/user_agent_detail`); diff --git a/src/services/Projects.ts b/src/services/Projects.ts index 849d7971..3ff705f5 100644 --- a/src/services/Projects.ts +++ b/src/services/Projects.ts @@ -8,7 +8,7 @@ class Projects extends BaseService { return RequestHelper.get(this, 'projects', options); } - archive(projectId) { + archive(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/archive`); @@ -20,13 +20,13 @@ class Projects extends BaseService { return RequestHelper.post(this, url, options); } - edit(projectId, options) { + edit(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}`, options); } - events(projectId, options) { + events(projectId: ProjectId, options) { validateEventOptions(options.action, options.targetType); const pId = encodeURIComponent(projectId); @@ -34,41 +34,41 @@ class Projects extends BaseService { return RequestHelper.get(this, `projects/${pId}/events`, options); } - fork(projectId, options) { + fork(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/fork`, options); } - forks(projectId, options) { + forks(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/forks`, options); } - languages(projectId) { + languages(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/languages`); } - mirrorPull(projectId) { + mirrorPull(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/mirror/pull`); } - remove(projectId) { + remove(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}`); } - search(projectName) { + search(projectName: string) { return RequestHelper.get(this, 'projects', { search: projectName }); } - share(projectId, groupId, groupAccess, options) { + share(projectId: ProjectId, groupId, groupAccess, options) { const pId = encodeURIComponent(projectId); if (!groupId || !groupAccess) throw new Error('Missing required arguments'); @@ -76,54 +76,54 @@ class Projects extends BaseService { return RequestHelper.post(this, `projects/${pId}/share`, { groupId, groupAccess, ...options }); } - show(projectId, options) { + show(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}`, options); } - star(projectId) { + star(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/star`); } - statuses(projectId, sha, state, options) { + statuses(projectId: ProjectId, sha, state, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/statuses/${sha}`, { state, ...options }); } - transfer(projectId, namespace) { + transfer(projectId: ProjectId, namespace) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/transfer`, namespace); } - unarchive(projectId) { + unarchive(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/unarchive`); } - unshare(projectId, groupId) { + unshare(projectId: ProjectId, groupId) { const [pId, gId] = [projectId, groupId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/share${gId}`); } - unstar(projectId) { + unstar(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/unstar`); } - updatePushRule(projectId, options) { + updatePushRule(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/push_rule`, options); } - upload(projectId, filePath, { fileName = Path.basename(filePath) } = {}) { + upload(projectId: ProjectId, filePath, { fileName = Path.basename(filePath) } = {}) { const pId = encodeURIComponent(projectId); const file = Fs.readFileSync(filePath); diff --git a/src/services/ProtectedBranches.ts b/src/services/ProtectedBranches.ts index 56df76ae..910032f9 100644 --- a/src/services/ProtectedBranches.ts +++ b/src/services/ProtectedBranches.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class ProtectedBranches extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/protected_branches`, options); } - protect(projectId, branchName, options) { + protect(projectId: ProjectId, branchName, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/protected_branches`, { @@ -16,13 +16,13 @@ class ProtectedBranches extends BaseService { }); } - show(projectId, branchName) { + show(projectId: ProjectId, branchName) { const [pId, bName] = [projectId, branchName].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/protected_branches/${bName}`); } - unprotect(projectId, branchName) { + unprotect(projectId: ProjectId, branchName) { const [pId, bName] = [projectId, branchName].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/protected_branches/${bName}`); diff --git a/src/services/PushRule.ts b/src/services/PushRule.ts index de8aa603..843ee961 100644 --- a/src/services/PushRule.ts +++ b/src/services/PushRule.ts @@ -1,13 +1,13 @@ import { BaseService, RequestHelper } from '../infrastructure'; class PushRule extends BaseService { - create(projectId, options) { + create(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/push_rule`, options); } - async edit(projectId, { upsert = false, ...options } = {}) { + async edit(projectId: ProjectId, { upsert = false, ...options } = {}) { const pId = encodeURIComponent(projectId); if (upsert) { @@ -19,13 +19,13 @@ class PushRule extends BaseService { return RequestHelper.put(this, `projects/${pId}/push_rule`, options); } - remove(projectId) { + remove(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}/push_rule`); } - show(projectId) { + show(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/push_rule`); diff --git a/src/services/Repositories.ts b/src/services/Repositories.ts index 0f6f692d..798e1d2d 100644 --- a/src/services/Repositories.ts +++ b/src/services/Repositories.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Repositories extends BaseService { - compare(projectId, from, to) { + compare(projectId: ProjectId, from, to) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/compare`, { @@ -10,13 +10,13 @@ class Repositories extends BaseService { }); } - contributors(projectId) { + contributors(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/contributors`); } - showArchive(projectId, { sha }) { + showArchive(projectId: ProjectId, { sha }) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/archive`, { @@ -24,19 +24,19 @@ class Repositories extends BaseService { }); } - showBlob(projectId, sha) { + showBlob(projectId: ProjectId, sha) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/blobs/${sha}`); } - showBlobRaw(projectId, sha) { + showBlobRaw(projectId: ProjectId, sha) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/blobs/${sha}/raw`); } - tree(projectId, options) { + tree(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/tree`, options); diff --git a/src/services/RepositoryFiles.ts b/src/services/RepositoryFiles.ts index 2623932d..a5049011 100644 --- a/src/services/RepositoryFiles.ts +++ b/src/services/RepositoryFiles.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; class RepositoryFiles extends BaseService { - create(projectId, filePath, branch, options) { + create(projectId: ProjectId, filePath, branch, options) { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/repository/files/${path}`, { @@ -10,7 +10,7 @@ class RepositoryFiles extends BaseService { }); } - edit(projectId, filePath, branch, options) { + edit(projectId: ProjectId, filePath, branch, options) { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/repository/files/${path}`, { @@ -19,7 +19,7 @@ class RepositoryFiles extends BaseService { }); } - remove(projectId, filePath, branch, options) { + remove(projectId: ProjectId, filePath, branch, options) { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/repository/files/${path}`, { @@ -28,7 +28,7 @@ class RepositoryFiles extends BaseService { }); } - show(projectId, filePath, ref) { + show(projectId: ProjectId, filePath, ref) { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/repository/files/${path}`, { @@ -36,7 +36,7 @@ class RepositoryFiles extends BaseService { }); } - showRaw(projectId, filePath, ref) { + showRaw(projectId: ProjectId, filePath, ref) { const [pId, path] = [projectId, filePath].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/repository/files/${path}/raw`, { ref }); diff --git a/src/services/Runners.ts b/src/services/Runners.ts index f43798cf..5e335b1a 100644 --- a/src/services/Runners.ts +++ b/src/services/Runners.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; interface RunnersOptions { - projectId?: string; + projectId?: ProjectId; } class Runners extends BaseService { all({ projectId, ...options }: RunnersOptions = {}) { @@ -20,13 +20,13 @@ class Runners extends BaseService { return RequestHelper.put(this, `runners/${rId}`, attributes); } - enable(projectId, runnerId) { + enable(projectId: ProjectId, runnerId) { const [pId, rId] = [projectId, runnerId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/runners`, { runnerId: rId }); } - disable(projectId, runnerId) { + disable(projectId: ProjectId, runnerId) { const [pId, rId] = [projectId, runnerId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/runners/${rId}`); diff --git a/src/services/Search.ts b/src/services/Search.ts index cfa21b3a..582029e3 100644 --- a/src/services/Search.ts +++ b/src/services/Search.ts @@ -1,7 +1,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; interface SearchOptions { - projectId?: string; + projectId?: ProjectId; groupId?: string; } class Search extends BaseService { diff --git a/src/services/Services.ts b/src/services/Services.ts index c017647b..d8cb14e2 100644 --- a/src/services/Services.ts +++ b/src/services/Services.ts @@ -1,19 +1,19 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Services extends BaseService { - edit(projectId, serviceName, options) { + edit(projectId: ProjectId, serviceName, options) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/services/${serviceName}`, options); } - remove(projectId, serviceName) { + remove(projectId: ProjectId, serviceName) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}/services/${serviceName}`); } - show(projectId, serviceName) { + show(projectId: ProjectId, serviceName) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/services/${serviceName}`); diff --git a/src/services/SystemHooks.ts b/src/services/SystemHooks.ts index 7b0805a1..ad501e37 100644 --- a/src/services/SystemHooks.ts +++ b/src/services/SystemHooks.ts @@ -15,7 +15,7 @@ class SystemHooks extends BaseService { return RequestHelper.put(this, `hooks/${hId}`, { url, ...options }); } - remove(projectId, hookId) { + remove(projectId: ProjectId, hookId) { const hId = encodeURIComponent(hookId); return RequestHelper.delete(this, `hooks/${hId}`); diff --git a/src/services/Tags.ts b/src/services/Tags.ts index 20085d62..29b116fa 100644 --- a/src/services/Tags.ts +++ b/src/services/Tags.ts @@ -1,25 +1,25 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Tags extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/repository/tags`, options); } - create(projectId, options) { + create(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/repository/tags`, options); } - remove(projectId, tagName) { + remove(projectId: ProjectId, tagName: string) { const [pId, tId] = [projectId, tagName].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/repository/tags/${tId}`); } - show(projectId, tagName) { + show(projectId: ProjectId, tagName: string) { const [pId, tId] = [projectId, tagName].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/repository/tags/${tId}`); diff --git a/src/services/Todos.ts b/src/services/Todos.ts index 1e9e0320..ff1299a5 100644 --- a/src/services/Todos.ts +++ b/src/services/Todos.ts @@ -8,7 +8,7 @@ class Todos extends BaseService { return RequestHelper.get(this, 'todos', options); } - create(projectId, mergerequestId) { + create(projectId: ProjectId, mergerequestId) { const [pId, mId] = [projectId, mergerequestId].map(encodeURIComponent); return RequestHelper.post(this, `projects/${pId}/merge_requests/${mId}/todo`); diff --git a/src/services/Triggers.ts b/src/services/Triggers.ts index 207c29b9..1389dde2 100644 --- a/src/services/Triggers.ts +++ b/src/services/Triggers.ts @@ -1,31 +1,31 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Triggers extends BaseService { - add(projectId, options) { + add(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/triggers`, options); } - all(projectId) { + all(projectId: ProjectId) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/triggers`); } - edit(projectId, triggerId, options) { + edit(projectId: ProjectId, triggerId, options) { const [pId, tId] = [projectId, triggerId].map(encodeURIComponent); return RequestHelper.put(this, `projects/${pId}/triggers/${tId}`, options); } - remove(projectId, triggerId) { + remove(projectId: ProjectId, triggerId) { const [pId, tId] = [projectId, triggerId].map(encodeURIComponent); return RequestHelper.delete(this, `projects/${pId}/triggers/${tId}`); } - show(projectId, triggerId) { + show(projectId: ProjectId, triggerId) { const [pId, tId] = [projectId, triggerId].map(encodeURIComponent); return RequestHelper.get(this, `projects/${pId}/triggers/${tId}`); diff --git a/src/services/Wikis.ts b/src/services/Wikis.ts index 01b0b3d4..976a5a10 100644 --- a/src/services/Wikis.ts +++ b/src/services/Wikis.ts @@ -1,31 +1,31 @@ import { BaseService, RequestHelper } from '../infrastructure'; class Wikis extends BaseService { - all(projectId, options) { + all(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/wikis`, options); } - create(projectId, options) { + create(projectId: ProjectId, options) { const pId = encodeURIComponent(projectId); return RequestHelper.post(this, `projects/${pId}/wikis`, options); } - edit(projectId, slug, options) { + edit(projectId: ProjectId, slug, options) { const pId = encodeURIComponent(projectId); return RequestHelper.put(this, `projects/${pId}/wikis/${slug}`, options); } - show(projectId, slug) { + show(projectId: ProjectId, slug) { const pId = encodeURIComponent(projectId); return RequestHelper.get(this, `projects/${pId}/wikis/${slug}`); } - remove(projectId, slug) { + remove(projectId: ProjectId, slug) { const pId = encodeURIComponent(projectId); return RequestHelper.delete(this, `projects/${pId}/wikis/${slug}`); diff --git a/src/templates/ResourceAwardEmojis.ts b/src/templates/ResourceAwardEmojis.ts index 58c54864..5a1683f5 100644 --- a/src/templates/ResourceAwardEmojis.ts +++ b/src/templates/ResourceAwardEmojis.ts @@ -2,7 +2,12 @@ import URLJoin from 'url-join'; import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; -function url(projectId, resourceType, resourceId, noteId) { +function url( + projectId: ProjectId, + resourceType: ResourceType, + resourceId: ResourceId, + noteId: NoteId, +) { const [pId, rId] = [projectId, resourceId].map(encodeURIComponent); let output = `${pId}/${resourceType}/${rId}/`; @@ -18,28 +23,28 @@ function url(projectId, resourceType, resourceId, noteId) { class ResourceAwardsEmojis extends BaseService { protected resourceType: temporaryAny; - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, 'projects'); this.resourceType = resourceType; } - all(projectId, resourceId, options, noteId) { + all(projectId: ProjectId, resourceId: ResourceId, options, noteId: NoteId) { return RequestHelper.get(this, url(projectId, this.resourceType, resourceId, noteId), options); } - award(projectId, resourceId, name, noteId) { + award(projectId: ProjectId, resourceId: ResourceId, name, noteId: NoteId) { return RequestHelper.post(this, url(projectId, this.resourceType, resourceId, noteId), { name, }); } - remove(projectId, resourceId, awardId, noteId) { + remove(projectId: ProjectId, resourceId: ResourceId, awardId, noteId: NoteId) { return RequestHelper.delete(this, url(projectId, this.resourceType, resourceId, noteId)); } - show(projectId, resourceId, awardId, noteId) { + show(projectId: ProjectId, resourceId: ResourceId, awardId, noteId: NoteId) { return RequestHelper.get(this, url(projectId, this.resourceType, resourceId, noteId)); } } diff --git a/src/templates/ResourceBadges.ts b/src/templates/ResourceBadges.ts index baab65af..c150e8fa 100644 --- a/src/templates/ResourceBadges.ts +++ b/src/templates/ResourceBadges.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceBadges extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); diff --git a/src/templates/ResourceCustomAttributes.ts b/src/templates/ResourceCustomAttributes.ts index 711d2d18..e7141204 100644 --- a/src/templates/ResourceCustomAttributes.ts +++ b/src/templates/ResourceCustomAttributes.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceCustomAttributes extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); diff --git a/src/templates/ResourceDiscussions.ts b/src/templates/ResourceDiscussions.ts index 2cf1c9cd..2b4ff73f 100644 --- a/src/templates/ResourceDiscussions.ts +++ b/src/templates/ResourceDiscussions.ts @@ -1,17 +1,18 @@ import URLJoin from 'url-join'; import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceDiscussions extends BaseService { - protected resource2Type: temporaryAny; + protected resource2Type: string; - constructor(resourceType, resource2Type, baseParams) { + constructor(resourceType: string, resource2Type: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); this.resource2Type = resource2Type; } - addNote(resourceId, resource2Id, discussiodId, noteId, options) { + addNote(resourceId: string, resource2Id: string, discussiodId: string, noteId: NoteId, options) { if (!options.body) throw new Error('Missing required property: body'); const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId] @@ -34,14 +35,14 @@ class ResourceDiscussions extends BaseService { return RequestHelper.post(this, `${rId}/${this.resource2Type}/${r2Id}/discussions`, options); } - editNote(resourceId, resource2Id, discussiodId, noteId, body) { + editNote(resourceId, resource2Id, discussiodId, noteId: NoteId, body) { const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId] .map(encodeURIComponent); return RequestHelper.put(this, `${rId}/${this.resource2Type}/${r2Id}/discussions/${dId}/notes/${nId}`, { body }); } - removeNote(resourceId, resource2Id, discussiodId, noteId) { + removeNote(resourceId, resource2Id, discussiodId, noteId: NoteId) { const [rId, r2Id, dId, nId] = [resourceId, resource2Id, discussiodId, noteId] .map(encodeURIComponent); diff --git a/src/templates/ResourceIssueBoards.ts b/src/templates/ResourceIssueBoards.ts index 09a90f22..866ad8cf 100644 --- a/src/templates/ResourceIssueBoards.ts +++ b/src/templates/ResourceIssueBoards.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceIssueBoards extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); diff --git a/src/templates/ResourceMembers.ts b/src/templates/ResourceMembers.ts index e5ede843..fd78b3a4 100644 --- a/src/templates/ResourceMembers.ts +++ b/src/templates/ResourceMembers.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceMembers extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); diff --git a/src/templates/ResourceMilestones.ts b/src/templates/ResourceMilestones.ts index b1bc364c..97cc93de 100644 --- a/src/templates/ResourceMilestones.ts +++ b/src/templates/ResourceMilestones.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceMilestones extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); diff --git a/src/templates/ResourceNotes.ts b/src/templates/ResourceNotes.ts index 601d4aa4..ccbf3cc0 100644 --- a/src/templates/ResourceNotes.ts +++ b/src/templates/ResourceNotes.ts @@ -1,10 +1,11 @@ import URLJoin from 'url-join'; import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceNotes extends BaseService { - protected resource2Type: temporaryAny; + protected resource2Type: string; - constructor(resourceType, resource2Type, baseParams) { + constructor(resourceType: string, resource2Type: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, resourceType); @@ -25,7 +26,7 @@ class ResourceNotes extends BaseService { return RequestHelper.post(this, `${rId}/${this.resource2Type}/${r2Id}/notes`, options); } - edit(resourceId, resource2Id, noteId, options) { + edit(resourceId, resource2Id, noteId: NoteId, options) { if (!options.body) throw new Error('Missing required property: body'); const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent); @@ -33,13 +34,13 @@ class ResourceNotes extends BaseService { return RequestHelper.put(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`, options); } - remove(resourceId, resource2Id, noteId) { + remove(resourceId, resource2Id, noteId: NoteId) { const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent); return RequestHelper.delete(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`); } - show(resourceId, resource2Id, noteId) { + show(resourceId, resource2Id, noteId: NoteId) { const [rId, r2Id, nId] = [resourceId, resource2Id, noteId].map(encodeURIComponent); return RequestHelper.get(this, `${rId}/${this.resource2Type}/${r2Id}/notes/${nId}`); diff --git a/src/templates/ResourceTemplates.ts b/src/templates/ResourceTemplates.ts index e36b6b4a..20b20a01 100644 --- a/src/templates/ResourceTemplates.ts +++ b/src/templates/ResourceTemplates.ts @@ -3,7 +3,7 @@ import { BaseService, RequestHelper } from '../infrastructure'; import { BaseModelContructorOptions } from '../infrastructure/BaseService'; class ResourceTemplates extends BaseService { - constructor(resourceType, baseParams: BaseModelContructorOptions) { + constructor(resourceType: string, baseParams: BaseModelContructorOptions) { super(baseParams); this.url = URLJoin(this.url, 'templates', resourceType); diff --git a/src/templates/ResourceVariables.ts b/src/templates/ResourceVariables.ts index a9fece55..1f108267 100644 --- a/src/templates/ResourceVariables.ts +++ b/src/templates/ResourceVariables.ts @@ -1,6 +1,11 @@ import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseModelContructorOptions } from '../infrastructure/BaseService'; -const url = (resourceType, resourceId, resource2Type, resource2Id) => { +function url( + resourceType: ResourceType, + resourceId: ResourceId, + resource2Type: Resource2Type, + resource2Id: Resource2Id) { const [rId, r2Id] = [resourceId, resource2Id].map(encodeURIComponent); let output = `${resourceType}/${rId}/`; @@ -12,27 +17,31 @@ const url = (resourceType, resourceId, resource2Type, resource2Id) => { output += 'variables'; return output; -}; +} class ResourceVariables extends BaseService { - protected resourceType: temporaryAny; - protected resource2Type: temporaryAny; + protected resourceType: ResourceType; + protected resource2Type: Resource2Type; - constructor(resourceType, resource2Type, baseParams) { + constructor( + resourceType: ResourceType, + resource2Type: Resource2Type, + baseParams: BaseModelContructorOptions, + ) { super(baseParams); this.resourceType = resourceType; this.resource2Type = resource2Type; } - all(resourceId, resource2Id) { + all(resourceId: ResourceType, resource2Id: Resource2Id) { return RequestHelper.get( this, url(this.resourceType, resourceId, this.resource2Type, resource2Id), ); } - create(resourceId, resource2Id, options) { + create(resourceId: ResourceType, resource2Id: Resource2Id, options) { return RequestHelper.post( this, url(this.resourceType, resourceId, this.resource2Type, resource2Id), @@ -40,7 +49,7 @@ class ResourceVariables extends BaseService { ); } - edit(resourceId, resource2Id, keyId, options) { + edit(resourceId: ResourceType, resource2Id: Resource2Id, keyId, options) { const kId = encodeURIComponent(keyId); return RequestHelper.put( @@ -50,7 +59,7 @@ class ResourceVariables extends BaseService { ); } - show(resourceId, resource2Id, keyId) { + show(resourceId: ResourceType, resource2Id: Resource2Id, keyId) { const kId = encodeURIComponent(keyId); return RequestHelper.get( @@ -59,7 +68,7 @@ class ResourceVariables extends BaseService { ); } - remove(resourceId, resource2Id, keyId) { + remove(resourceId: ResourceType, resource2Id: Resource2Id, keyId) { const kId = encodeURIComponent(keyId); return RequestHelper.delete( diff --git a/src/types.d.ts b/src/types.d.ts new file mode 100644 index 00000000..8e17483f --- /dev/null +++ b/src/types.d.ts @@ -0,0 +1,11 @@ +type temporaryAny = any; +type UserIdOptions = { userId?: string }; + +type ResourceType = string; // see if we can narrow the type to string literals +type ResourceId = string; // see if we can narrow the type to string literals +type Resource2Type = string; // see if we can narrow the type to string literals +type Resource2Id = string; // see if we can narrow the type to string literals + +type NoteId = string; // see if `| number` is a valid type +type ProjectId = string; // see if `| number` is a valid type +type KeyId = string; // see if `| number` is a valid type diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 6d8933b2..00000000 --- a/src/types.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {} from '../src/index'; - -declare global { - type temporaryAny = any; - type UserIdOptions = { userId?: string }; -}