-
-
Notifications
You must be signed in to change notification settings - Fork 222
/
packages.js
executable file
·73 lines (67 loc) · 2.2 KB
/
packages.js
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
'use strict'
const { dependencies } = require('../package')
const packages = {
'0http': { hasRouter: true, package: '0http' },
bare: { version: '10.13.0' },
connect: {},
'connect-router': { extra: true, package: 'router', hasRouter: true },
'egg.js': { hasRouter: true, package: 'egg' },
express: { hasRouter: true },
'express-route-prefix': { extra: true, package: 'express', hasRouter: true },
'express-with-middlewares': {
extra: true,
package: 'express',
hasRouter: true
},
fastify: { checked: true, hasRouter: true },
'fastify-big-json': { extra: true, package: 'fastify', hasRouter: true },
foxify: { hasRouter: true },
hapi: { hasRouter: true, package: '@hapi/hapi' },
koa: {},
'koa-isomorphic-router': { extra: true, hasRouter: true },
'koa-router': { extra: true, hasRouter: true },
micro: { extra: true },
microrouter: { extra: true, hasRouter: true },
'micro-route': { extra: true, hasRouter: true },
polka: { hasRouter: true },
polkadot: { hasRouter: false },
rayo: { hasRouter: true },
restana: { hasRouter: true, package: 'restana' },
restify: { hasRouter: true },
spirit: { extra: true },
'spirit-router': { extra: true, hasRouter: true },
'take-five': { hasRouter: true },
'total.js': { hasRouter: true },
'trek-engine': { extra: true },
'trek-router': { extra: true, hasRouter: true },
'trpc-router': { extra: true, hasRouter: true, package: '@trpc/server' },
vapr: { hasRouter: true },
'server-base': {},
'server-base-router': { hasRouter: true },
yeps: {},
'yeps-router': { extra: true, package: 'yeps', hasRouter: true }
}
const choices = []
Object.keys(packages).forEach(pkg => {
if (!packages[pkg].version) {
const module = dependencies[pkg] ? pkg : packages[pkg].package
const version = require(require.resolve(module + '/package.json')).version
packages[pkg].version = version
}
choices.push(pkg)
})
module.exports = {
choices: choices.sort(),
list: (extra = false) => {
return choices
.map(c => {
return extra === !!packages[c].extra
? Object.assign({}, packages[c], { name: c })
: null
})
.filter(c => c)
},
info: module => {
return packages[module]
}
}