-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontributing.html
163 lines (161 loc) · 56.8 KB
/
contributing.html
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Contributing | Ts.ED</title>
<meta name="description" content="A TypeScript Framework on top of Express">
<link rel="preload" href="/assets/css/0.styles.145eaa04.css" as="style"><link rel="preload" href="/assets/js/app.6d6e4ebd.js" as="script"><link rel="preload" href="/assets/js/453.72e3bb6e.js" as="script"><link rel="prefetch" href="/assets/js/10.69df38fe.js"><link rel="prefetch" href="/assets/js/100.2c0f1005.js"><link rel="prefetch" href="/assets/js/101.d5a1b598.js"><link rel="prefetch" href="/assets/js/102.d4787a1b.js"><link rel="prefetch" href="/assets/js/103.ee6c1828.js"><link rel="prefetch" href="/assets/js/104.45dab82c.js"><link rel="prefetch" href="/assets/js/105.b6f819d7.js"><link rel="prefetch" href="/assets/js/106.d4799986.js"><link rel="prefetch" href="/assets/js/107.8d4f2d04.js"><link rel="prefetch" href="/assets/js/108.8f141d9f.js"><link rel="prefetch" href="/assets/js/109.bd9e0d13.js"><link rel="prefetch" href="/assets/js/11.008d2286.js"><link rel="prefetch" href="/assets/js/110.253a663b.js"><link rel="prefetch" href="/assets/js/111.515b6366.js"><link rel="prefetch" href="/assets/js/112.3a9aa711.js"><link rel="prefetch" href="/assets/js/113.6c25e0db.js"><link rel="prefetch" href="/assets/js/114.4535acce.js"><link rel="prefetch" href="/assets/js/115.abc46359.js"><link rel="prefetch" href="/assets/js/116.8acf51b3.js"><link rel="prefetch" href="/assets/js/117.109b9bce.js"><link rel="prefetch" href="/assets/js/118.c0e756fb.js"><link rel="prefetch" href="/assets/js/119.3deb2132.js"><link rel="prefetch" href="/assets/js/12.885ded5e.js"><link rel="prefetch" href="/assets/js/120.5082b39e.js"><link rel="prefetch" href="/assets/js/121.39608f80.js"><link rel="prefetch" href="/assets/js/122.cace2ad2.js"><link rel="prefetch" href="/assets/js/123.0ca150c8.js"><link rel="prefetch" href="/assets/js/124.c5c36a22.js"><link rel="prefetch" href="/assets/js/125.2b9ecbc6.js"><link rel="prefetch" href="/assets/js/126.179a9139.js"><link rel="prefetch" href="/assets/js/127.df11c53b.js"><link rel="prefetch" href="/assets/js/128.5fbab9fb.js"><link rel="prefetch" href="/assets/js/129.f2858787.js"><link rel="prefetch" href="/assets/js/13.5a1276fd.js"><link rel="prefetch" href="/assets/js/130.c6913a07.js"><link rel="prefetch" href="/assets/js/131.e42c4563.js"><link rel="prefetch" href="/assets/js/132.67c54941.js"><link rel="prefetch" href="/assets/js/133.30533848.js"><link rel="prefetch" href="/assets/js/134.af7ba4f9.js"><link rel="prefetch" href="/assets/js/135.6ce61ee6.js"><link rel="prefetch" href="/assets/js/136.3dac056d.js"><link rel="prefetch" href="/assets/js/137.a4d18b8f.js"><link rel="prefetch" href="/assets/js/138.283eb41b.js"><link rel="prefetch" href="/assets/js/139.b33e28f8.js"><link rel="prefetch" href="/assets/js/14.3b7dc484.js"><link rel="prefetch" href="/assets/js/140.254f7736.js"><link rel="prefetch" href="/assets/js/141.9b3f5238.js"><link rel="prefetch" href="/assets/js/142.9c09e560.js"><link rel="prefetch" href="/assets/js/143.494acc8a.js"><link rel="prefetch" href="/assets/js/144.df7c1ddf.js"><link rel="prefetch" href="/assets/js/145.3bd7a531.js"><link rel="prefetch" href="/assets/js/146.5d1451e8.js"><link rel="prefetch" href="/assets/js/147.44d63ab4.js"><link rel="prefetch" href="/assets/js/148.cc6543ab.js"><link rel="prefetch" href="/assets/js/149.1da5c686.js"><link rel="prefetch" href="/assets/js/15.f396c4d1.js"><link rel="prefetch" href="/assets/js/150.dd010bed.js"><link rel="prefetch" href="/assets/js/151.1e8b5699.js"><link rel="prefetch" href="/assets/js/152.9789db75.js"><link rel="prefetch" href="/assets/js/153.5cdf081c.js"><link rel="prefetch" href="/assets/js/154.f1791528.js"><link rel="prefetch" href="/assets/js/155.09b193c0.js"><link rel="prefetch" href="/assets/js/156.527343e0.js"><link rel="prefetch" href="/assets/js/157.0d105b4f.js"><link rel="prefetch" href="/assets/js/158.caf36a4f.js"><link rel="prefetch" href="/assets/js/159.0d1decbd.js"><link rel="prefetch" href="/assets/js/16.9999bf74.js"><link rel="prefetch" href="/assets/js/160.2499742b.js"><link rel="prefetch" href="/assets/js/161.cafae9e7.js"><link rel="prefetch" href="/assets/js/162.01df8f49.js"><link rel="prefetch" href="/assets/js/163.8c7c4d8f.js"><link rel="prefetch" href="/assets/js/164.27c6742f.js"><link rel="prefetch" href="/assets/js/165.ddb6b7b3.js"><link rel="prefetch" href="/assets/js/166.e172a9cf.js"><link rel="prefetch" href="/assets/js/167.331416ca.js"><link rel="prefetch" href="/assets/js/168.08483f4c.js"><link rel="prefetch" href="/assets/js/169.7492ef26.js"><link rel="prefetch" href="/assets/js/17.b18ae992.js"><link rel="prefetch" href="/assets/js/170.420036df.js"><link rel="prefetch" href="/assets/js/171.ca7d68b0.js"><link rel="prefetch" href="/assets/js/172.586f81a7.js"><link rel="prefetch" href="/assets/js/173.548c770f.js"><link rel="prefetch" href="/assets/js/174.5d02aff5.js"><link rel="prefetch" href="/assets/js/175.c7ee0f25.js"><link rel="prefetch" href="/assets/js/176.7a34fecd.js"><link rel="prefetch" href="/assets/js/177.5f847fd7.js"><link rel="prefetch" href="/assets/js/178.9628231e.js"><link rel="prefetch" href="/assets/js/179.df2ea3c2.js"><link rel="prefetch" href="/assets/js/18.33e2cfc9.js"><link rel="prefetch" href="/assets/js/180.d5d38bec.js"><link rel="prefetch" href="/assets/js/181.01285bb4.js"><link rel="prefetch" href="/assets/js/182.ac07b4f9.js"><link rel="prefetch" href="/assets/js/183.2fd2bd65.js"><link rel="prefetch" href="/assets/js/184.5f9f3565.js"><link rel="prefetch" href="/assets/js/185.e0a0d5bc.js"><link rel="prefetch" href="/assets/js/186.e8b86864.js"><link rel="prefetch" href="/assets/js/187.0b335b60.js"><link rel="prefetch" href="/assets/js/188.1da087ca.js"><link rel="prefetch" href="/assets/js/189.ff3ea176.js"><link rel="prefetch" href="/assets/js/19.0dc41c5e.js"><link rel="prefetch" href="/assets/js/190.8fc607f0.js"><link rel="prefetch" href="/assets/js/191.744d57ca.js"><link rel="prefetch" href="/assets/js/192.c7c90cbb.js"><link rel="prefetch" href="/assets/js/193.4c13117d.js"><link rel="prefetch" href="/assets/js/194.f14a5496.js"><link rel="prefetch" href="/assets/js/195.6e3fae0d.js"><link rel="prefetch" href="/assets/js/196.c22a3083.js"><link rel="prefetch" href="/assets/js/197.1fe5b7fd.js"><link rel="prefetch" href="/assets/js/198.9f4f2b48.js"><link rel="prefetch" href="/assets/js/199.49020212.js"><link rel="prefetch" href="/assets/js/20.e47b26dc.js"><link rel="prefetch" href="/assets/js/200.55f624c4.js"><link rel="prefetch" href="/assets/js/201.f312e268.js"><link rel="prefetch" href="/assets/js/202.6a6d32b4.js"><link rel="prefetch" href="/assets/js/203.f80746b5.js"><link rel="prefetch" href="/assets/js/204.b9617d7d.js"><link rel="prefetch" href="/assets/js/205.8ab010e3.js"><link rel="prefetch" href="/assets/js/206.52e6686a.js"><link rel="prefetch" href="/assets/js/207.f7a96cb1.js"><link rel="prefetch" href="/assets/js/208.0419a70c.js"><link rel="prefetch" href="/assets/js/209.40473dd3.js"><link rel="prefetch" href="/assets/js/21.9cbafee6.js"><link rel="prefetch" href="/assets/js/210.cb974f04.js"><link rel="prefetch" href="/assets/js/211.032946da.js"><link rel="prefetch" href="/assets/js/212.375a68f3.js"><link rel="prefetch" href="/assets/js/213.05841402.js"><link rel="prefetch" href="/assets/js/214.9f1516dc.js"><link rel="prefetch" href="/assets/js/215.7ea7f480.js"><link rel="prefetch" href="/assets/js/216.e59a6c3a.js"><link rel="prefetch" href="/assets/js/217.87e88b00.js"><link rel="prefetch" href="/assets/js/218.34b6e6de.js"><link rel="prefetch" href="/assets/js/219.0139077e.js"><link rel="prefetch" href="/assets/js/22.246d4cc7.js"><link rel="prefetch" href="/assets/js/220.aa5622ba.js"><link rel="prefetch" href="/assets/js/221.1b69ae28.js"><link rel="prefetch" href="/assets/js/222.7d55733c.js"><link rel="prefetch" href="/assets/js/223.803bd00b.js"><link rel="prefetch" href="/assets/js/224.ac72be57.js"><link rel="prefetch" href="/assets/js/225.4f6e8493.js"><link rel="prefetch" href="/assets/js/226.f3cc6102.js"><link rel="prefetch" href="/assets/js/227.538e35b4.js"><link rel="prefetch" href="/assets/js/228.30ac5404.js"><link rel="prefetch" href="/assets/js/229.ab2de9e3.js"><link rel="prefetch" href="/assets/js/23.e5a2a612.js"><link rel="prefetch" href="/assets/js/230.4e30c847.js"><link rel="prefetch" href="/assets/js/231.6d3544bd.js"><link rel="prefetch" href="/assets/js/232.e5e59c73.js"><link rel="prefetch" href="/assets/js/233.a7fd1480.js"><link rel="prefetch" href="/assets/js/234.b16e996e.js"><link rel="prefetch" href="/assets/js/235.44468dbe.js"><link rel="prefetch" href="/assets/js/236.e1582c61.js"><link rel="prefetch" href="/assets/js/237.d0191200.js"><link rel="prefetch" href="/assets/js/238.6922d5e0.js"><link rel="prefetch" href="/assets/js/239.80180ce5.js"><link rel="prefetch" href="/assets/js/24.783f19a4.js"><link rel="prefetch" href="/assets/js/240.d19f79bc.js"><link rel="prefetch" href="/assets/js/241.70f75574.js"><link rel="prefetch" href="/assets/js/242.a3d02e81.js"><link rel="prefetch" href="/assets/js/243.bfab44f8.js"><link rel="prefetch" href="/assets/js/244.9ad4a9b8.js"><link rel="prefetch" href="/assets/js/245.a3b4552e.js"><link rel="prefetch" href="/assets/js/246.fa65cdf1.js"><link rel="prefetch" href="/assets/js/247.d84c1567.js"><link rel="prefetch" href="/assets/js/248.ab97b997.js"><link rel="prefetch" href="/assets/js/249.3dbf2f7d.js"><link rel="prefetch" href="/assets/js/25.28dcfcb4.js"><link rel="prefetch" href="/assets/js/250.b90befc8.js"><link rel="prefetch" href="/assets/js/251.24a7b682.js"><link rel="prefetch" href="/assets/js/252.a62905b6.js"><link rel="prefetch" href="/assets/js/253.93bb7f1b.js"><link rel="prefetch" href="/assets/js/254.1ba823a8.js"><link rel="prefetch" href="/assets/js/255.fddc1c84.js"><link rel="prefetch" href="/assets/js/256.3392c47a.js"><link rel="prefetch" href="/assets/js/257.b5a07e1d.js"><link rel="prefetch" href="/assets/js/258.c14808a2.js"><link rel="prefetch" href="/assets/js/259.8caf7b14.js"><link rel="prefetch" href="/assets/js/26.8fe8d635.js"><link rel="prefetch" href="/assets/js/260.95366574.js"><link rel="prefetch" href="/assets/js/261.eed382a8.js"><link rel="prefetch" href="/assets/js/262.10cc5824.js"><link rel="prefetch" href="/assets/js/263.a769bfef.js"><link rel="prefetch" href="/assets/js/264.21a329b7.js"><link rel="prefetch" href="/assets/js/265.1137c68b.js"><link rel="prefetch" href="/assets/js/266.9d34a95e.js"><link rel="prefetch" href="/assets/js/267.1df339a3.js"><link rel="prefetch" href="/assets/js/268.f86d601f.js"><link rel="prefetch" href="/assets/js/269.720157b8.js"><link rel="prefetch" href="/assets/js/27.2c4ccb39.js"><link rel="prefetch" href="/assets/js/270.89728277.js"><link rel="prefetch" href="/assets/js/271.ebf0e8fa.js"><link rel="prefetch" href="/assets/js/272.afba2922.js"><link rel="prefetch" href="/assets/js/273.92bfff12.js"><link rel="prefetch" href="/assets/js/274.52f0b734.js"><link rel="prefetch" href="/assets/js/275.a48c7e8a.js"><link rel="prefetch" href="/assets/js/276.34920b54.js"><link rel="prefetch" href="/assets/js/277.829cb909.js"><link rel="prefetch" href="/assets/js/278.4d717db3.js"><link rel="prefetch" href="/assets/js/279.7ef982de.js"><link rel="prefetch" href="/assets/js/28.c8cbd821.js"><link rel="prefetch" href="/assets/js/280.3b9e9ec7.js"><link rel="prefetch" href="/assets/js/281.6c0c671e.js"><link rel="prefetch" href="/assets/js/282.fcdd9927.js"><link rel="prefetch" href="/assets/js/283.01a97f17.js"><link rel="prefetch" href="/assets/js/284.6dec19be.js"><link rel="prefetch" href="/assets/js/285.c8677e9d.js"><link rel="prefetch" href="/assets/js/286.91a1a6f4.js"><link rel="prefetch" href="/assets/js/287.f61ef25d.js"><link rel="prefetch" href="/assets/js/288.37772c6f.js"><link rel="prefetch" href="/assets/js/289.f654bf08.js"><link rel="prefetch" href="/assets/js/29.92b3e383.js"><link rel="prefetch" href="/assets/js/290.e2b5a292.js"><link rel="prefetch" href="/assets/js/291.074a865e.js"><link rel="prefetch" href="/assets/js/292.ccb6ea85.js"><link rel="prefetch" href="/assets/js/293.2850b2c0.js"><link rel="prefetch" href="/assets/js/294.952a331e.js"><link rel="prefetch" href="/assets/js/295.b5c9c40d.js"><link rel="prefetch" href="/assets/js/296.ca19bda9.js"><link rel="prefetch" href="/assets/js/297.96c1e476.js"><link rel="prefetch" href="/assets/js/298.90a85f79.js"><link rel="prefetch" href="/assets/js/299.ff89c8f6.js"><link rel="prefetch" href="/assets/js/3.4795abdc.js"><link rel="prefetch" href="/assets/js/30.19a01f8d.js"><link rel="prefetch" href="/assets/js/300.7e30d24b.js"><link rel="prefetch" href="/assets/js/301.6a87fa0c.js"><link rel="prefetch" href="/assets/js/302.5d5c43dd.js"><link rel="prefetch" href="/assets/js/303.421289ea.js"><link rel="prefetch" href="/assets/js/304.85f6ce5d.js"><link rel="prefetch" href="/assets/js/305.f4f4a5c0.js"><link rel="prefetch" href="/assets/js/306.8c4040da.js"><link rel="prefetch" href="/assets/js/307.c66d0d6c.js"><link rel="prefetch" href="/assets/js/308.8bd8e4e5.js"><link rel="prefetch" href="/assets/js/309.e85feaef.js"><link rel="prefetch" href="/assets/js/31.0c839e4b.js"><link rel="prefetch" href="/assets/js/310.244972b1.js"><link rel="prefetch" href="/assets/js/311.b956be87.js"><link rel="prefetch" href="/assets/js/312.1c18864c.js"><link rel="prefetch" href="/assets/js/313.2eb6e6bd.js"><link rel="prefetch" href="/assets/js/314.a205d593.js"><link rel="prefetch" href="/assets/js/315.adf8891a.js"><link rel="prefetch" href="/assets/js/316.3555bb19.js"><link rel="prefetch" href="/assets/js/317.59dd575e.js"><link rel="prefetch" href="/assets/js/318.16285025.js"><link rel="prefetch" href="/assets/js/319.f81affdc.js"><link rel="prefetch" href="/assets/js/32.3d3604a3.js"><link rel="prefetch" href="/assets/js/320.cdd0f6ff.js"><link rel="prefetch" href="/assets/js/321.4458a1ab.js"><link rel="prefetch" href="/assets/js/322.94452249.js"><link rel="prefetch" href="/assets/js/323.6f11d40e.js"><link rel="prefetch" href="/assets/js/324.d77646ab.js"><link rel="prefetch" href="/assets/js/325.d8cb883d.js"><link rel="prefetch" href="/assets/js/326.32b8bd5b.js"><link rel="prefetch" href="/assets/js/327.971d30ab.js"><link rel="prefetch" href="/assets/js/328.4991aefc.js"><link rel="prefetch" href="/assets/js/329.11f82e69.js"><link rel="prefetch" href="/assets/js/33.53084975.js"><link rel="prefetch" href="/assets/js/330.ec1a38b0.js"><link rel="prefetch" href="/assets/js/331.4152beaa.js"><link rel="prefetch" href="/assets/js/332.a99e1f81.js"><link rel="prefetch" href="/assets/js/333.bb6de526.js"><link rel="prefetch" href="/assets/js/334.65bc97c8.js"><link rel="prefetch" href="/assets/js/335.cdb07791.js"><link rel="prefetch" href="/assets/js/336.ac316c35.js"><link rel="prefetch" href="/assets/js/337.e4b66f1d.js"><link rel="prefetch" href="/assets/js/338.5e37f5d9.js"><link rel="prefetch" href="/assets/js/339.acf5d73a.js"><link rel="prefetch" href="/assets/js/34.73d37bd1.js"><link rel="prefetch" href="/assets/js/340.5b32b623.js"><link rel="prefetch" href="/assets/js/341.1121a9f6.js"><link rel="prefetch" href="/assets/js/342.b3350c5f.js"><link rel="prefetch" href="/assets/js/343.ae74a133.js"><link rel="prefetch" href="/assets/js/344.9499b811.js"><link rel="prefetch" href="/assets/js/345.5f56646f.js"><link rel="prefetch" href="/assets/js/346.9a6094a7.js"><link rel="prefetch" href="/assets/js/347.e6ed059d.js"><link rel="prefetch" href="/assets/js/348.f6519728.js"><link rel="prefetch" href="/assets/js/349.a54f9058.js"><link rel="prefetch" href="/assets/js/35.6929ccba.js"><link rel="prefetch" href="/assets/js/350.6deef034.js"><link rel="prefetch" href="/assets/js/351.c6fc3b40.js"><link rel="prefetch" href="/assets/js/352.3beb0c81.js"><link rel="prefetch" href="/assets/js/353.5d2f17c1.js"><link rel="prefetch" href="/assets/js/354.7308a5f4.js"><link rel="prefetch" href="/assets/js/355.364e015d.js"><link rel="prefetch" href="/assets/js/356.8b72069a.js"><link rel="prefetch" href="/assets/js/357.1041b25f.js"><link rel="prefetch" href="/assets/js/358.de52239d.js"><link rel="prefetch" href="/assets/js/359.7ca22a99.js"><link rel="prefetch" href="/assets/js/36.0b5b83f8.js"><link rel="prefetch" href="/assets/js/360.0b374c97.js"><link rel="prefetch" href="/assets/js/361.b85649cf.js"><link rel="prefetch" href="/assets/js/362.673b991a.js"><link rel="prefetch" href="/assets/js/363.13339a00.js"><link rel="prefetch" href="/assets/js/364.44a545a6.js"><link rel="prefetch" href="/assets/js/365.5a7f7b53.js"><link rel="prefetch" href="/assets/js/366.d2b2df36.js"><link rel="prefetch" href="/assets/js/367.26190f1a.js"><link rel="prefetch" href="/assets/js/368.9f8da791.js"><link rel="prefetch" href="/assets/js/369.29ec9fe1.js"><link rel="prefetch" href="/assets/js/37.7bd703c0.js"><link rel="prefetch" href="/assets/js/370.10a6e9ab.js"><link rel="prefetch" href="/assets/js/371.09e5a029.js"><link rel="prefetch" href="/assets/js/372.28f397cc.js"><link rel="prefetch" href="/assets/js/373.dc5b749d.js"><link rel="prefetch" href="/assets/js/374.4e4b1683.js"><link rel="prefetch" href="/assets/js/375.4664d329.js"><link rel="prefetch" href="/assets/js/376.b48899cd.js"><link rel="prefetch" href="/assets/js/377.7b84b1ec.js"><link rel="prefetch" href="/assets/js/378.c94832b1.js"><link rel="prefetch" href="/assets/js/379.3a1b3d02.js"><link rel="prefetch" href="/assets/js/38.ec2fd34e.js"><link rel="prefetch" href="/assets/js/380.179ef81a.js"><link rel="prefetch" href="/assets/js/381.891883d7.js"><link rel="prefetch" href="/assets/js/382.ec71d32c.js"><link rel="prefetch" href="/assets/js/383.7faed8fc.js"><link rel="prefetch" href="/assets/js/384.27905b78.js"><link rel="prefetch" href="/assets/js/385.adfc395a.js"><link rel="prefetch" href="/assets/js/386.65726c8f.js"><link rel="prefetch" href="/assets/js/387.864cdff9.js"><link rel="prefetch" href="/assets/js/388.fc624cf0.js"><link rel="prefetch" href="/assets/js/389.21ff0ae0.js"><link rel="prefetch" href="/assets/js/39.36256398.js"><link rel="prefetch" href="/assets/js/390.f95be426.js"><link rel="prefetch" href="/assets/js/391.f2c2e51e.js"><link rel="prefetch" href="/assets/js/392.197411ff.js"><link rel="prefetch" href="/assets/js/393.a84adf32.js"><link rel="prefetch" href="/assets/js/394.3d5533ca.js"><link rel="prefetch" href="/assets/js/395.fd91e56a.js"><link rel="prefetch" href="/assets/js/396.677da361.js"><link rel="prefetch" href="/assets/js/397.ff9dc16b.js"><link rel="prefetch" href="/assets/js/398.7207f220.js"><link rel="prefetch" href="/assets/js/399.4900b998.js"><link rel="prefetch" href="/assets/js/4.d028e1ba.js"><link rel="prefetch" href="/assets/js/40.4f738256.js"><link rel="prefetch" href="/assets/js/400.5e318427.js"><link rel="prefetch" href="/assets/js/401.ab7b2c57.js"><link rel="prefetch" href="/assets/js/402.4aa0ce77.js"><link rel="prefetch" href="/assets/js/403.c1c1fed5.js"><link rel="prefetch" href="/assets/js/404.904dc653.js"><link rel="prefetch" href="/assets/js/405.885d1371.js"><link rel="prefetch" href="/assets/js/406.7a0fb3c3.js"><link rel="prefetch" href="/assets/js/407.6dadd9ee.js"><link rel="prefetch" href="/assets/js/408.fe137f04.js"><link rel="prefetch" href="/assets/js/409.eb250c71.js"><link rel="prefetch" href="/assets/js/41.87bbb743.js"><link rel="prefetch" href="/assets/js/410.cb750558.js"><link rel="prefetch" href="/assets/js/411.2f6814a9.js"><link rel="prefetch" href="/assets/js/412.122ccd49.js"><link rel="prefetch" href="/assets/js/413.49daef62.js"><link rel="prefetch" href="/assets/js/414.49e113ee.js"><link rel="prefetch" href="/assets/js/415.dc4ee9c7.js"><link rel="prefetch" href="/assets/js/416.446be2af.js"><link rel="prefetch" href="/assets/js/417.93ffcdd0.js"><link rel="prefetch" href="/assets/js/418.7a04c7d3.js"><link rel="prefetch" href="/assets/js/419.a78f5027.js"><link rel="prefetch" href="/assets/js/42.6298557a.js"><link rel="prefetch" href="/assets/js/420.3c820e71.js"><link rel="prefetch" href="/assets/js/421.54c5e21e.js"><link rel="prefetch" href="/assets/js/422.6fb20ad2.js"><link rel="prefetch" href="/assets/js/423.67aa7bee.js"><link rel="prefetch" href="/assets/js/424.288f2b84.js"><link rel="prefetch" href="/assets/js/425.eb7d26bc.js"><link rel="prefetch" href="/assets/js/426.139013c2.js"><link rel="prefetch" href="/assets/js/427.859b318c.js"><link rel="prefetch" href="/assets/js/428.ca24a3d8.js"><link rel="prefetch" href="/assets/js/429.bc013324.js"><link rel="prefetch" href="/assets/js/43.24185670.js"><link rel="prefetch" href="/assets/js/430.210736e6.js"><link rel="prefetch" href="/assets/js/431.6f510362.js"><link rel="prefetch" href="/assets/js/432.11024dc4.js"><link rel="prefetch" href="/assets/js/433.81c08be4.js"><link rel="prefetch" href="/assets/js/434.55f5b3ff.js"><link rel="prefetch" href="/assets/js/435.34c5efea.js"><link rel="prefetch" href="/assets/js/436.4a3cbfba.js"><link rel="prefetch" href="/assets/js/437.bae1a7d5.js"><link rel="prefetch" href="/assets/js/438.743e7ecd.js"><link rel="prefetch" href="/assets/js/439.78ccbe17.js"><link rel="prefetch" href="/assets/js/44.b27718b2.js"><link rel="prefetch" href="/assets/js/440.ab1e8ca2.js"><link rel="prefetch" href="/assets/js/441.76a7e3c7.js"><link rel="prefetch" href="/assets/js/442.b6ff5d0e.js"><link rel="prefetch" href="/assets/js/443.51b9f231.js"><link rel="prefetch" href="/assets/js/444.61d3cba0.js"><link rel="prefetch" href="/assets/js/445.8250585f.js"><link rel="prefetch" href="/assets/js/446.1364c050.js"><link rel="prefetch" href="/assets/js/447.d7b10800.js"><link rel="prefetch" href="/assets/js/448.330a74f4.js"><link rel="prefetch" href="/assets/js/449.db1e59b1.js"><link rel="prefetch" href="/assets/js/45.819e87ab.js"><link rel="prefetch" href="/assets/js/450.cc8f7db9.js"><link rel="prefetch" href="/assets/js/451.17767f67.js"><link rel="prefetch" href="/assets/js/452.38ae6605.js"><link rel="prefetch" href="/assets/js/454.3e843c24.js"><link rel="prefetch" href="/assets/js/455.22468502.js"><link rel="prefetch" href="/assets/js/456.7f3e8b45.js"><link rel="prefetch" href="/assets/js/457.d83a5010.js"><link rel="prefetch" href="/assets/js/458.0e6398a4.js"><link rel="prefetch" href="/assets/js/459.2e129121.js"><link rel="prefetch" href="/assets/js/46.0384ad4f.js"><link rel="prefetch" href="/assets/js/460.dbc57251.js"><link rel="prefetch" href="/assets/js/461.0ae5b720.js"><link rel="prefetch" href="/assets/js/462.3cc71f30.js"><link rel="prefetch" href="/assets/js/463.a8db5c33.js"><link rel="prefetch" href="/assets/js/464.a5a0f26b.js"><link rel="prefetch" href="/assets/js/465.3e12b1af.js"><link rel="prefetch" href="/assets/js/466.55198eee.js"><link rel="prefetch" href="/assets/js/467.a893840d.js"><link rel="prefetch" href="/assets/js/468.cf568d31.js"><link rel="prefetch" href="/assets/js/469.a1795482.js"><link rel="prefetch" href="/assets/js/47.5bef966d.js"><link rel="prefetch" href="/assets/js/470.7b28153c.js"><link rel="prefetch" href="/assets/js/471.4e377b74.js"><link rel="prefetch" href="/assets/js/472.043f17f0.js"><link rel="prefetch" href="/assets/js/473.76d48c54.js"><link rel="prefetch" href="/assets/js/474.540fb0c3.js"><link rel="prefetch" href="/assets/js/475.1a4c6175.js"><link rel="prefetch" href="/assets/js/476.a9782b99.js"><link rel="prefetch" href="/assets/js/477.ac7ad756.js"><link rel="prefetch" href="/assets/js/478.1899f079.js"><link rel="prefetch" href="/assets/js/479.4c68bd26.js"><link rel="prefetch" href="/assets/js/48.5fc22242.js"><link rel="prefetch" href="/assets/js/480.0f6f88f3.js"><link rel="prefetch" href="/assets/js/481.42abb0b8.js"><link rel="prefetch" href="/assets/js/482.15f95b30.js"><link rel="prefetch" href="/assets/js/483.f749814e.js"><link rel="prefetch" href="/assets/js/484.7d50bb52.js"><link rel="prefetch" href="/assets/js/485.1f6d5f2c.js"><link rel="prefetch" href="/assets/js/486.a9961886.js"><link rel="prefetch" href="/assets/js/487.e84d8e58.js"><link rel="prefetch" href="/assets/js/488.82229afa.js"><link rel="prefetch" href="/assets/js/49.32aa408d.js"><link rel="prefetch" href="/assets/js/5.632e4c77.js"><link rel="prefetch" href="/assets/js/50.54995f66.js"><link rel="prefetch" href="/assets/js/51.5ebc7190.js"><link rel="prefetch" href="/assets/js/52.99ea0081.js"><link rel="prefetch" href="/assets/js/53.02d15986.js"><link rel="prefetch" href="/assets/js/54.4956179c.js"><link rel="prefetch" href="/assets/js/55.b3b55813.js"><link rel="prefetch" href="/assets/js/56.58d46c33.js"><link rel="prefetch" href="/assets/js/57.a57fecb4.js"><link rel="prefetch" href="/assets/js/58.93508eda.js"><link rel="prefetch" href="/assets/js/59.299af2cb.js"><link rel="prefetch" href="/assets/js/6.bfd1aee1.js"><link rel="prefetch" href="/assets/js/60.d38bad65.js"><link rel="prefetch" href="/assets/js/61.c87c36bd.js"><link rel="prefetch" href="/assets/js/62.7846431e.js"><link rel="prefetch" href="/assets/js/63.8947d6c5.js"><link rel="prefetch" href="/assets/js/64.c1bcd994.js"><link rel="prefetch" href="/assets/js/65.4448c9a0.js"><link rel="prefetch" href="/assets/js/66.fba2f7bb.js"><link rel="prefetch" href="/assets/js/67.a65ad9bf.js"><link rel="prefetch" href="/assets/js/68.50315cc2.js"><link rel="prefetch" href="/assets/js/69.40d7dcc2.js"><link rel="prefetch" href="/assets/js/7.dd0fee84.js"><link rel="prefetch" href="/assets/js/70.95e74d43.js"><link rel="prefetch" href="/assets/js/71.c9ff7a33.js"><link rel="prefetch" href="/assets/js/72.fcde1cea.js"><link rel="prefetch" href="/assets/js/73.1db60072.js"><link rel="prefetch" href="/assets/js/74.398a69dd.js"><link rel="prefetch" href="/assets/js/75.9ca26f27.js"><link rel="prefetch" href="/assets/js/76.113545b7.js"><link rel="prefetch" href="/assets/js/77.0291fcc7.js"><link rel="prefetch" href="/assets/js/78.e40af0ec.js"><link rel="prefetch" href="/assets/js/79.2ced4d8c.js"><link rel="prefetch" href="/assets/js/8.82df9222.js"><link rel="prefetch" href="/assets/js/80.6a4b8e91.js"><link rel="prefetch" href="/assets/js/81.8923ab6e.js"><link rel="prefetch" href="/assets/js/82.0c33fac5.js"><link rel="prefetch" href="/assets/js/83.f3bf3260.js"><link rel="prefetch" href="/assets/js/84.b344b4db.js"><link rel="prefetch" href="/assets/js/85.7543ad77.js"><link rel="prefetch" href="/assets/js/86.a45ecda2.js"><link rel="prefetch" href="/assets/js/87.da8d79ea.js"><link rel="prefetch" href="/assets/js/88.90f2af43.js"><link rel="prefetch" href="/assets/js/89.fdaa5976.js"><link rel="prefetch" href="/assets/js/9.6d4c2826.js"><link rel="prefetch" href="/assets/js/90.6f6c0e77.js"><link rel="prefetch" href="/assets/js/91.0c9e704c.js"><link rel="prefetch" href="/assets/js/92.7be78b54.js"><link rel="prefetch" href="/assets/js/93.a3f0cf17.js"><link rel="prefetch" href="/assets/js/94.a4f7478c.js"><link rel="prefetch" href="/assets/js/95.55a61a3d.js"><link rel="prefetch" href="/assets/js/96.b0de3e19.js"><link rel="prefetch" href="/assets/js/97.c9b0abe4.js"><link rel="prefetch" href="/assets/js/98.a52547da.js"><link rel="prefetch" href="/assets/js/99.018019f9.js"><link rel="prefetch" href="/assets/js/vendors~docsearch.983d8ff4.js">
<link rel="stylesheet" href="/assets/css/0.styles.145eaa04.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar contributingpage"><header class="navbar"><div class="container"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">
Ts.ED
</span></a> <div class="links"><form id="search-form" class="algolia-search-wrapper search-box"><input id="algolia-search-input" class="search-query"></form> <nav class="nav-links can-hide"><div class="nav-item"><a href="/getting-started.html" class="nav-link">Getting started</a></div><div class="nav-item"><a href="/configuration.html" class="nav-link">Configuration</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Docs</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Overview</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/docs/controllers.html" class="nav-link">
Controllers
</a></li><li class="dropdown-subitem"><a href="/docs/services.html" class="nav-link">
Services
</a></li><li class="dropdown-subitem"><a href="/docs/factory.html" class="nav-link">
Factory
</a></li><li class="dropdown-subitem"><a href="/docs/provider.html" class="nav-link">
Provider
</a></li><li class="dropdown-subitem"><a href="/docs/model.html" class="nav-link">
Models
</a></li><li class="dropdown-subitem"><a href="/docs/converters.html" class="nav-link">
Converters
</a></li><li class="dropdown-subitem"><a href="/docs/middlewares.html" class="nav-link">
Middlewares
</a></li><li class="dropdown-subitem"><a href="/docs/scope.html" class="nav-link">
Scope
</a></li><li class="dropdown-subitem"><a href="/docs/filters.html" class="nav-link">
Filters
</a></li><li class="dropdown-subitem"><a href="/docs/interceptors.html" class="nav-link">
Interceptors
</a></li><li class="dropdown-subitem"><a href="/docs/server-loader.html" class="nav-link">
ServerLoader
</a></li></ul></li><li class="dropdown-item"><h4>Advanced</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/docs/testing.html" class="nav-link">
Testing
</a></li><li class="dropdown-subitem"><a href="/api.html" class="nav-link">
Api Reference
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Guide</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/tutorials/" class="nav-link">
Examples
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/passport.html" class="nav-link">
Passport.js
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/typeorm.html" class="nav-link">
TypeORM
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/mongoose.html" class="nav-link">
Mongoose
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/socket-io.html" class="nav-link">
Socket.io
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/swagger.html" class="nav-link">
Swagger
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/ajv.html" class="nav-link">
Validation with AJV
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/upload-files-with-multer.html" class="nav-link">
Upload files
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/serve-static-files.html" class="nav-link">
Serve static files
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/templating.html" class="nav-link">
Templating
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/throw-http-exceptions.html" class="nav-link">
Throw HTTP exceptions
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/not-found-page.html" class="nav-link">
Customize 404
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/aws.html" class="nav-link">
AWS project
</a></li></ul></div></div><div class="nav-item"><a href="https://tsed.io" target="_blank" rel="noopener noreferrer" class="nav-link external">5.x</a></div></nav> <div class="links-external"><div class="links-external-item"><a href="https://gitter.im/Tsed-io/community" title="Gitter tchat room" target="_blank" rel="noopener noreferrer" class="gitter-link"><svg version="1.1" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 18 25" class="svg-inline--fa fa-gitter fa-w-16"><rect x="15" y="5" width="2" height="10"></rect> <rect x="10" y="5" width="2" height="20"></rect> <rect x="5" y="5" width="2" height="20"></rect> <rect width="2" height="15"></rect></svg></a></div> <!----> <div class="links-external-item"><a href="https://github.com/TypedProject/ts-express-decorators" title="Github" target="_blank" rel="noopener noreferrer" class="repo-link"><svg aria-hidden="true" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" data-fa-i2svg class="svg-inline--fa fa-github fa-w-16"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a></div></div></div></div></header> <main class="main-content"><div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/getting-started.html" class="nav-link">Getting started</a></div><div class="nav-item"><a href="/configuration.html" class="nav-link">Configuration</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Docs</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Overview</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/docs/controllers.html" class="nav-link">
Controllers
</a></li><li class="dropdown-subitem"><a href="/docs/services.html" class="nav-link">
Services
</a></li><li class="dropdown-subitem"><a href="/docs/factory.html" class="nav-link">
Factory
</a></li><li class="dropdown-subitem"><a href="/docs/provider.html" class="nav-link">
Provider
</a></li><li class="dropdown-subitem"><a href="/docs/model.html" class="nav-link">
Models
</a></li><li class="dropdown-subitem"><a href="/docs/converters.html" class="nav-link">
Converters
</a></li><li class="dropdown-subitem"><a href="/docs/middlewares.html" class="nav-link">
Middlewares
</a></li><li class="dropdown-subitem"><a href="/docs/scope.html" class="nav-link">
Scope
</a></li><li class="dropdown-subitem"><a href="/docs/filters.html" class="nav-link">
Filters
</a></li><li class="dropdown-subitem"><a href="/docs/interceptors.html" class="nav-link">
Interceptors
</a></li><li class="dropdown-subitem"><a href="/docs/server-loader.html" class="nav-link">
ServerLoader
</a></li></ul></li><li class="dropdown-item"><h4>Advanced</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/docs/testing.html" class="nav-link">
Testing
</a></li><li class="dropdown-subitem"><a href="/api.html" class="nav-link">
Api Reference
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Guide</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/tutorials/" class="nav-link">
Examples
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/passport.html" class="nav-link">
Passport.js
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/typeorm.html" class="nav-link">
TypeORM
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/mongoose.html" class="nav-link">
Mongoose
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/socket-io.html" class="nav-link">
Socket.io
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/swagger.html" class="nav-link">
Swagger
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/ajv.html" class="nav-link">
Validation with AJV
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/upload-files-with-multer.html" class="nav-link">
Upload files
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/serve-static-files.html" class="nav-link">
Serve static files
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/templating.html" class="nav-link">
Templating
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/throw-http-exceptions.html" class="nav-link">
Throw HTTP exceptions
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/not-found-page.html" class="nav-link">
Customize 404
</a></li><li class="dropdown-item"><!----> <a href="/tutorials/aws.html" class="nav-link">
AWS project
</a></li></ul></div></div><div class="nav-item"><a href="https://tsed.io" target="_blank" rel="noopener noreferrer" class="nav-link external">5.x</a></div></nav> <!----> </aside> <div class="contributing"><section class="hero-banner"><div class="hero-banner__content"><!----> <h1>TS.ED
<small style="display:;">community</small></h1> <p class="hero-banner__description">
Become contributors
</p> <!----> <p class="hero-banner__actions"></p></div> <div class="hero-banner__bg hero-banner__bg-1"><div><div class="sq-1"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-2"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-3"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-4"></div> <div class="sq-5"><div class="sqv-1"></div></div> <div class="sq-6"><div class="sqv-1"></div> <div class="sqv-2"></div> <div class="sqv-3"></div></div></div></div> <div class="hero-banner__bg hero-banner__bg-2"><div><div class="sq-1"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-2"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-3"><div class="sqv-1"></div> <div class="sqv-2"></div></div> <div class="sq-4"></div> <div class="sq-5"><div class="sqv-1"></div></div> <div class="sq-6"><div class="sqv-1"></div> <div class="sqv-2"></div> <div class="sqv-3"></div></div></div></div></section> <article><div class="container container--padded"><div class="content custom"><h1 id="contributing"><a href="#contributing" aria-hidden="true" class="header-anchor">#</a> Contributing</h1> <h2 id="introduction"><a href="#introduction" aria-hidden="true" class="header-anchor">#</a> Introduction</h2> <p>First, thank you for considering contributing to Ts.ED! It's people like you that make the open source community such a great community! 😊</p> <p>We welcome any type of contribution, not only code. You can help with</p> <ul><li>QA: file bug reports, the more details you can give the better (e.g. screenshots with the console open)</li> <li>Marketing: writing blog posts, howto's, printing stickers, ...</li> <li>Community: presenting the project at meetups, organizing a dedicated meetup for the local community, ...</li> <li>Code: take a look at the <a href="https://github.com/Romakita/tsed/blob/master/issues" target="_blank" rel="noopener noreferrer">open issues<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>. Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.</li> <li>Money: we welcome financial contributions in full transparency on our <a href="https://opencollective.com/tsed" target="_blank" rel="noopener noreferrer">open collective<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</li></ul> <h2 id="your-first-contribution"><a href="#your-first-contribution" aria-hidden="true" class="header-anchor">#</a> Your First Contribution</h2> <p>Working on your first Pull Request? You can learn how from this free series, <a href="https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github" target="_blank" rel="noopener noreferrer">How to Contribute to an Open Source Project on GitHub<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <h2 id="submitting-code"><a href="#submitting-code" aria-hidden="true" class="header-anchor">#</a> Submitting code</h2> <p>Any code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it. The pull request should also contain tests.
Code review process</p> <p>The bigger the pull request, the longer it will take to review and merge. Try to break down large pull requests in smaller chunks that are easier to review and merge. It is also always helpful to have some context for your pull request. What was the purpose? Why does it matter to you?</p> <h2 id="financial-contributions"><a href="#financial-contributions" aria-hidden="true" class="header-anchor">#</a> Financial contributions</h2> <p>We also welcome financial contributions in full transparency on our open collective. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our <a href="https://opencollective.com/tsed" target="_blank" rel="noopener noreferrer">open collective<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> by the core contributors and the person who filed the expense will be reimbursed.</p> <h2 id="questions"><a href="#questions" aria-hidden="true" class="header-anchor">#</a> Questions</h2> <p>If you have any questions, create an <a href="https://github.com/Romakita/tsed/blob/master/issue" target="_blank" rel="noopener noreferrer">issue<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> (protip: do a quick search first to see if someone else didn't ask the same question before!). You can also reach us at [email protected].</p> <h2 id="how-to-work-on-ts-ed"><a href="#how-to-work-on-ts-ed" aria-hidden="true" class="header-anchor">#</a> How to work on Ts.ED</h2> <h3 id="setup"><a href="#setup" aria-hidden="true" class="header-anchor">#</a> Setup</h3> <p>Clone your fork of the repository</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>$ <span class="token function">git</span> clone https://github.com/YOUR_USERNAME/ts-express-decorators.git
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>Install npm dependencies with yarn (not with NPM!):</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>yarn
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><blockquote><p>After installing dependencies, yarn run the <code>postinstall</code> hook and mounted all packages with <code>npm link</code> (e.g. <code>yarn run repo:bootstrap</code>).</p></blockquote> <p>Compile TypeScript:</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>tsc
<span class="token comment"># or</span>
yarn tsc
<span class="token comment"># or</span>
<span class="token function">npm</span> run tsc
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><p>Build project:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code></code></pre> <div class="line-numbers-wrapper"></div></div><h3 id="test"><a href="#test" aria-hidden="true" class="header-anchor">#</a> Test</h3> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>yarn <span class="token function">test</span>
<span class="token comment"># or</span>
<span class="token function">npm</span> run <span class="token function">test</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h3 id="gflow"><a href="#gflow" aria-hidden="true" class="header-anchor">#</a> Gflow</h3> <p><a href="https://www.npmjs.com/package/gflow" target="_blank" rel="noopener noreferrer">Gflow<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> is a command line tool to help developer with the Git Flow process used in Ts.ED.</p> <p>Gflow help you to create a branch from production, rebase and run the test before pushing your branch on your remote repository.</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code><span class="token function">npm</span> <span class="token function">install</span> -g gflow
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h4 id="start-a-feature-branch"><a href="#start-a-feature-branch" aria-hidden="true" class="header-anchor">#</a> Start a feature branch</h4> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>gflow new feat name_of_feat
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h4 id="commit-push-a-feature"><a href="#commit-push-a-feature" aria-hidden="true" class="header-anchor">#</a> Commit & Push a feature</h4> <p>This command rebase your branch feature from the production branch, run the test and push your branch.</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code><span class="token function">git</span> commit -m <span class="token string">"feat(domain): Your message"</span>
gflow push
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><blockquote><p>To write your commit message see <a href="https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit" target="_blank" rel="noopener noreferrer">convention page<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote> <p>When your feature is ready to review, you can open a PR on Ts.ED github.</p> <h4 id="finish-a-feature"><a href="#finish-a-feature" aria-hidden="true" class="header-anchor">#</a> Finish a feature</h4> <p>After the PR has been accepted, the feature will be automatically merge on the master branch, but
your feature isn't merge with the production branch.</p> <p>To publish your feature on the production branch you need to run a this command:</p> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>gflow finish
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><blockquote><p>Note: This action works only on the Ts.ED repository (not on your fork).</p></blockquote> <h3 id="write-documentation"><a href="#write-documentation" aria-hidden="true" class="header-anchor">#</a> Write documentation</h3> <p>Ts.ED use docsify to convert markdown to HTML. In addition, all documentation in your code will be used to generate
the Api documentation. To preview your comments on a class you can run this command:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>npm run doc:serve
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h3 id="guidelines"><a href="#guidelines" aria-hidden="true" class="header-anchor">#</a> Guidelines</h3> <ul><li>Ts.ED follow the git flow to generate a release note. To write your commit message see <a href="https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit" target="_blank" rel="noopener noreferrer">convention page<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li>Please try to combine multiple commits before pushing</li> <li>Please use TDD when fixing bugs. This means that you should write a unit test that fails because it reproduces the issue, then fix the issue and finally run the test to ensure that the issue has been resolved. This helps us prevent fixed bugs from happening again in the future</li> <li>Please keep the test coverage at 100%. Write additional unit tests if necessary</li> <li>Please create an issue before sending a PR if it is going to change the public interface of Ts.ED or includes significant architecture changes,</li> <li>Feel free to ask for help from other members of the Ts.ED team</li></ul></div></div></article> <div class="container--primary-color"><div class="container container--padded"><h2 class="heading -white">Our<br /><b>Contributors</b></h2> <ul class="contributors -white"></ul> <!----></div></div> <div class="container--grey-lighter"><div class="container container--padded"><h2 class="heading">Our<br /><b>Backers</b></h2> <p>
Thank you to all our backers! 🙏
</p> <ul class="contributors"></ul> <div class="container--centered container--padded"><a href="https://opencollective.com/tsed#backers" target="_blank" rel="noopener noreferrer" class="nav-link external button">
Become backers
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></div> <div class="container--white"><div class="container container--padded"><h2 class="heading">Our<br /><b>sponsors</b></h2> <p>
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
</p> <ul class="contributors"></ul> <div class="container--centered container--padded"><a href="https://opencollective.com/tsed#sponsor" target="_blank" rel="noopener noreferrer" class="nav-link external button primary-color">
Become sponsor
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></div></div></main> <footer class="footer"><div class="footer__improve-docs"><div class="container"><p>
Caught a mistake or want to contribute to the documentation?
<a href="https://github.com/TypedProject/ts-express-decorators/edit/master/docs/contributing.md" target="_blank" rel="noopener noreferrer">Edit on Github</a></p></div></div> <div class="container--footer"><div class="container container--padded"><div class="footer__content"><div class="footer__next-step-header">
Contribute
</div> <p>
Help shape the future of Ts.Ed by joining our team and send us pull requests via our
<a href="https://github.com/TypedProject/ts-express-decorators">GitHub repository!</a></p> <div class="footer__next-step-header">
License
</div> <p>
Released under the <a href="#/license">MIT License</a> - © Copyright 2016 - 2019.
</p> <a href="" title="Github" target="_blank" rel="noopener noreferrer" class="github-stars"><svg aria-hidden="true" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" data-fa-i2svg class="svg-inline--fa fa-github fa-w-16"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> <span class="github-stars__stargazers-count">0</span></a></div></div></div></footer> <!----></div></div>
<script src="/assets/js/app.6d6e4ebd.js" defer></script><script src="/assets/js/453.72e3bb6e.js" defer></script>
</body>
</html>