generated from technote-space/ts-package-template
/
context.ts
75 lines (71 loc) · 1.8 KB
/
context.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { Context } from '@actions/github/lib/context';
import { Response } from '@octokit/rest';
export const getContext = (override: object): Context => Object.assign({
payload: {
action: '',
},
eventName: '',
sha: '',
ref: '',
workflow: '',
action: '',
actor: '',
issue: {
owner: '',
repo: '',
number: 1,
},
repo: {
owner: '',
repo: '',
},
}, override);
export const generateContext = (settings: { event?: string; action?: string; ref?: string; sha?: string; owner?: string; repo?: string }, override?: object): Context => {
const overrideObj = override || {};
return getContext(
Object.assign({}, {
eventName: settings.event ? settings.event : '',
ref: settings.ref ? `refs/${settings.ref}` : '',
sha: settings.sha ? settings.sha : '',
}, overrideObj, {
payload: Object.assign({
action: settings.action ? settings.action : '',
}, overrideObj['payload'] || {}),
issue: Object.assign({
owner: settings.owner ? settings.owner : '',
repo: settings.repo ? settings.repo : '',
}, overrideObj['issue'] || {}),
repo: Object.assign({
owner: settings.owner ? settings.owner : '',
repo: settings.repo ? settings.repo : '',
}, overrideObj['repo'] || {}),
}),
);
};
type CreateResponseFunctionType = <T>(data: T, override?: object) => Response<T>;
export const createResponse: CreateResponseFunctionType = (data, override = {}) => Object.assign({
data,
status: 0,
headers: {
date: '',
'x-ratelimit-limit': '',
'x-ratelimit-remaining': '',
'x-ratelimit-reset': '',
'x-Octokit-request-id': '',
'x-Octokit-media-type': '',
link: '',
'last-modified': '',
etag: '',
status: '',
},
[Symbol.iterator](): Iterator<boolean> {
return {
next(): IteratorResult<boolean> {
return {
done: true,
value: true,
};
},
};
},
}, override);