@pikku/cli 0.6.12 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/bin/pikku-all.ts +15 -6
- package/bin/pikku-channels-map.ts +8 -6
- package/bin/pikku-channels.ts +7 -6
- package/bin/pikku-fetch.ts +1 -0
- package/bin/pikku-function-types.ts +18 -10
- package/bin/{pikku-routes.ts → pikku-http.ts} +11 -10
- package/bin/pikku-nextjs.ts +7 -2
- package/bin/pikku-openapi.ts +8 -9
- package/bin/pikku-routes-map.ts +7 -6
- package/bin/pikku-scheduler.ts +8 -7
- package/bin/pikku-schemas.ts +2 -1
- package/bin/pikku-websocket.ts +1 -0
- package/bin/pikku.ts +1 -1
- package/dist/bin/pikku-all.js +7 -6
- package/dist/bin/pikku-channels-map.js +2 -6
- package/dist/bin/pikku-channels.js +2 -6
- package/dist/bin/pikku-fetch.js +1 -1
- package/dist/bin/pikku-function-types.js +10 -10
- package/dist/bin/{pikku-routes.d.ts → pikku-http.d.ts} +1 -1
- package/dist/bin/{pikku-routes.js → pikku-http.js} +5 -9
- package/dist/bin/pikku-nextjs.js +5 -4
- package/dist/bin/pikku-openapi.js +3 -9
- package/dist/bin/pikku-routes-map.js +2 -6
- package/dist/bin/pikku-scheduler.js +3 -7
- package/dist/bin/pikku-schemas.js +1 -1
- package/dist/bin/pikku-websocket.js +1 -1
- package/dist/bin/pikku.js +1 -1
- package/dist/src/core/serialize-pikku-types.d.ts +1 -1
- package/dist/src/core/serialize-pikku-types.js +11 -9
- package/dist/src/inspector-glob.d.ts +2 -2
- package/dist/src/inspector-glob.js +2 -2
- package/dist/src/nextjs/serialize-nextjs-wrapper.d.ts +1 -1
- package/dist/src/nextjs/serialize-nextjs-wrapper.js +60 -12
- package/dist/src/pikku-cli-config.d.ts +3 -1
- package/dist/src/pikku-cli-config.js +8 -4
- package/dist/src/utils.d.ts +4 -1
- package/dist/src/utils.js +5 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/core/serialize-pikku-types.ts +12 -8
- package/src/inspector-glob.ts +4 -3
- package/src/nextjs/serialize-nextjs-wrapper.ts +61 -12
- package/src/pikku-cli-config.ts +12 -0
- package/src/utils.ts +15 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @pikku/cli
|
|
2
2
|
|
|
3
|
+
## 0.6.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c1d8381: feat: adding filtering by tags to minimize produced payload
|
|
8
|
+
- ee5c874: feat: moving towards using middleware for http and channels
|
|
9
|
+
- Updated dependencies [c1d8381]
|
|
10
|
+
- Updated dependencies [ee5c874]
|
|
11
|
+
- @pikku/inspector@0.6.3
|
|
12
|
+
- @pikku/core@0.6.14
|
|
13
|
+
|
|
3
14
|
## 0.6.12
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/bin/pikku-all.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
writeFileInDir,
|
|
8
8
|
} from '../src/utils.js'
|
|
9
9
|
import { getPikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
10
|
-
import {
|
|
10
|
+
import { pikkuHTTP } from './pikku-http.js'
|
|
11
11
|
import { pikkuFunctionTypes } from './pikku-function-types.js'
|
|
12
12
|
import { pikkuHTTPMap } from './pikku-routes-map.js'
|
|
13
13
|
import { existsSync } from 'fs'
|
|
@@ -31,12 +31,18 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
31
31
|
)
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
34
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
35
|
+
options.config,
|
|
36
|
+
[],
|
|
37
|
+
options.tags,
|
|
38
|
+
true
|
|
39
|
+
)
|
|
35
40
|
|
|
36
41
|
let typesDeclarationFileExists = true
|
|
37
42
|
let visitState = await inspectorGlob(
|
|
38
43
|
cliConfig.rootDir,
|
|
39
|
-
cliConfig.routeDirectories
|
|
44
|
+
cliConfig.routeDirectories,
|
|
45
|
+
cliConfig.filters
|
|
40
46
|
)
|
|
41
47
|
|
|
42
48
|
if (!existsSync(cliConfig.typesDeclarationFile)) {
|
|
@@ -49,11 +55,12 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
49
55
|
logInfo(`• Type file first created, inspecting again...\x1b[0m`)
|
|
50
56
|
visitState = await inspectorGlob(
|
|
51
57
|
cliConfig.rootDir,
|
|
52
|
-
cliConfig.routeDirectories
|
|
58
|
+
cliConfig.routeDirectories,
|
|
59
|
+
cliConfig.filters
|
|
53
60
|
)
|
|
54
61
|
}
|
|
55
62
|
|
|
56
|
-
const routes = await
|
|
63
|
+
const routes = await pikkuHTTP(cliConfig, visitState)
|
|
57
64
|
if (routes) {
|
|
58
65
|
await pikkuHTTPMap(cliConfig, visitState)
|
|
59
66
|
await pikkuFetch(cliConfig)
|
|
@@ -83,7 +90,8 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
83
90
|
logInfo(`• OpenAPI requires a reinspection to pickup new generated types..`)
|
|
84
91
|
visitState = await inspectorGlob(
|
|
85
92
|
cliConfig.rootDir,
|
|
86
|
-
cliConfig.routeDirectories
|
|
93
|
+
cliConfig.routeDirectories,
|
|
94
|
+
cliConfig.filters
|
|
87
95
|
)
|
|
88
96
|
await pikkuOpenAPI(cliConfig, visitState)
|
|
89
97
|
}
|
|
@@ -105,5 +113,6 @@ export const all = (program: Command): void => {
|
|
|
105
113
|
'The type of your session services factory'
|
|
106
114
|
)
|
|
107
115
|
.option('-c | --config <string>', 'The path to pikku cli config file')
|
|
116
|
+
.option('-t | --tags <tags...>', 'Which tags to filter by')
|
|
108
117
|
.action(action)
|
|
109
118
|
}
|
|
@@ -32,14 +32,16 @@ export const pikkuChannelsMap = async (
|
|
|
32
32
|
|
|
33
33
|
async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
34
34
|
logPikkuLogo()
|
|
35
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
36
|
-
|
|
37
|
-
'routeDirectories',
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
36
|
+
cliOptions.config,
|
|
37
|
+
['rootDir', 'routeDirectories', 'routesFile'],
|
|
38
|
+
cliOptions.tags,
|
|
39
|
+
false
|
|
40
|
+
)
|
|
40
41
|
const visitState = await inspectorGlob(
|
|
41
42
|
cliConfig.rootDir,
|
|
42
|
-
cliConfig.routeDirectories
|
|
43
|
+
cliConfig.routeDirectories,
|
|
44
|
+
cliConfig.filters
|
|
43
45
|
)
|
|
44
46
|
await pikkuChannelsMap(cliConfig, visitState)
|
|
45
47
|
}
|
package/bin/pikku-channels.ts
CHANGED
|
@@ -36,14 +36,15 @@ export const pikkuChannels = async (
|
|
|
36
36
|
async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
37
37
|
logPikkuLogo()
|
|
38
38
|
|
|
39
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
40
|
-
|
|
41
|
-
'routeDirectories',
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
40
|
+
cliOptions.config,
|
|
41
|
+
['rootDir', 'routeDirectories', 'routesFile'],
|
|
42
|
+
cliOptions.tags
|
|
43
|
+
)
|
|
44
44
|
const visitState = await inspectorGlob(
|
|
45
45
|
cliConfig.rootDir,
|
|
46
|
-
cliConfig.routeDirectories
|
|
46
|
+
cliConfig.routeDirectories,
|
|
47
|
+
cliConfig.filters
|
|
47
48
|
)
|
|
48
49
|
await pikkuChannels(cliConfig, visitState)
|
|
49
50
|
}
|
package/bin/pikku-fetch.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
PikkuCLIOptions,
|
|
10
10
|
writeFileInDir,
|
|
11
11
|
} from '../src/utils.js'
|
|
12
|
-
import {
|
|
12
|
+
import { pikkuHTTP } from './pikku-http.js'
|
|
13
13
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
14
14
|
import { serializePikkuTypes } from '../src/core/serialize-pikku-types.js'
|
|
15
15
|
|
|
@@ -23,17 +23,24 @@ export const pikkuFunctionTypes = async (
|
|
|
23
23
|
'Created api types',
|
|
24
24
|
[false],
|
|
25
25
|
async () => {
|
|
26
|
-
const { userSessionType, sessionServicesType } =
|
|
26
|
+
const { userSessionType, sessionServicesType, singletonServicesType } =
|
|
27
27
|
await getPikkuFilesAndMethods(
|
|
28
28
|
visitState,
|
|
29
29
|
packageMappings,
|
|
30
30
|
typesFile,
|
|
31
31
|
options,
|
|
32
|
-
{
|
|
32
|
+
{
|
|
33
|
+
userSessionType: true,
|
|
34
|
+
sessionServiceType: true,
|
|
35
|
+
singletonServicesType: true,
|
|
36
|
+
}
|
|
33
37
|
)
|
|
38
|
+
|
|
34
39
|
const content = serializePikkuTypes(
|
|
35
40
|
`import type { ${userSessionType.type} } from '${getFileImportRelativePath(typesFile, userSessionType.typePath, packageMappings)}'`,
|
|
36
41
|
userSessionType.type,
|
|
42
|
+
`import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(typesFile, singletonServicesType.typePath, packageMappings)}'`,
|
|
43
|
+
singletonServicesType.type,
|
|
37
44
|
`import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(typesFile, sessionServicesType.typePath, packageMappings)}'`,
|
|
38
45
|
sessionServicesType.type
|
|
39
46
|
)
|
|
@@ -45,17 +52,18 @@ export const pikkuFunctionTypes = async (
|
|
|
45
52
|
async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
46
53
|
logPikkuLogo()
|
|
47
54
|
|
|
48
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
49
|
-
|
|
50
|
-
'routeDirectories',
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
56
|
+
cliOptions.config,
|
|
57
|
+
['rootDir', 'routeDirectories', 'typesDeclarationFile'],
|
|
58
|
+
cliOptions.tags
|
|
59
|
+
)
|
|
53
60
|
|
|
54
61
|
const visitState = await inspectorGlob(
|
|
55
62
|
cliConfig.rootDir,
|
|
56
|
-
cliConfig.routeDirectories
|
|
63
|
+
cliConfig.routeDirectories,
|
|
64
|
+
cliConfig.filters
|
|
57
65
|
)
|
|
58
|
-
await
|
|
66
|
+
await pikkuHTTP(cliConfig, visitState)
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
export const functionTypes = (program: Command): void => {
|
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
import { serializeRoutes } from '../src/http/serialize-route-imports.js'
|
|
12
12
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
13
13
|
|
|
14
|
-
export const
|
|
14
|
+
export const pikkuHTTP = async (
|
|
15
15
|
cliConfig: PikkuCLIConfig,
|
|
16
16
|
visitState: InspectorState
|
|
17
17
|
) => {
|
|
18
18
|
return await logCommandInfoAndTime(
|
|
19
|
-
'Finding routes',
|
|
20
|
-
'Found routes',
|
|
19
|
+
'Finding HTTP routes',
|
|
20
|
+
'Found HTTP routes',
|
|
21
21
|
[visitState.http.files.size === 0],
|
|
22
22
|
async () => {
|
|
23
23
|
const { routesFile, packageMappings } = cliConfig
|
|
@@ -34,16 +34,17 @@ export const pikkuRoutes = async (
|
|
|
34
34
|
async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
35
35
|
logPikkuLogo()
|
|
36
36
|
|
|
37
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
38
|
-
|
|
39
|
-
'routeDirectories',
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
38
|
+
cliOptions.config,
|
|
39
|
+
['rootDir', 'routeDirectories', 'routesFile'],
|
|
40
|
+
cliOptions.tags
|
|
41
|
+
)
|
|
42
42
|
const visitState = await inspectorGlob(
|
|
43
43
|
cliConfig.rootDir,
|
|
44
|
-
cliConfig.routeDirectories
|
|
44
|
+
cliConfig.routeDirectories,
|
|
45
|
+
cliConfig.filters
|
|
45
46
|
)
|
|
46
|
-
await
|
|
47
|
+
await pikkuHTTP(cliConfig, visitState)
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export const routes = (program: Command): void => {
|
package/bin/pikku-nextjs.ts
CHANGED
|
@@ -36,6 +36,7 @@ export const pikkuNext = async (
|
|
|
36
36
|
pikkuConfigFactory,
|
|
37
37
|
singletonServicesFactory,
|
|
38
38
|
sessionServicesFactory,
|
|
39
|
+
userSessionType,
|
|
39
40
|
} = await getPikkuFilesAndMethods(
|
|
40
41
|
visitState,
|
|
41
42
|
packageMappings,
|
|
@@ -51,6 +52,7 @@ export const pikkuNext = async (
|
|
|
51
52
|
const pikkuConfigImport = `import { ${pikkuConfigFactory.variable} as createConfig } from '${getFileImportRelativePath(nextJSfile, pikkuConfigFactory.file, packageMappings)}'`
|
|
52
53
|
const singletonServicesImport = `import { ${singletonServicesFactory.variable} as createSingletonServices } from '${getFileImportRelativePath(nextJSfile, singletonServicesFactory.file, packageMappings)}'`
|
|
53
54
|
const sessionServicesImport = `import { ${sessionServicesFactory.variable} as createSessionServices } from '${getFileImportRelativePath(nextJSfile, sessionServicesFactory.file, packageMappings)}'`
|
|
55
|
+
const userSessionImport = `import type { ${userSessionType.type} as UserSession } from '${getFileImportRelativePath(nextJSfile, userSessionType.file, packageMappings)}'`
|
|
54
56
|
|
|
55
57
|
const routesPath = getFileImportRelativePath(
|
|
56
58
|
nextJSfile,
|
|
@@ -74,7 +76,8 @@ export const pikkuNext = async (
|
|
|
74
76
|
schemasPath,
|
|
75
77
|
pikkuConfigImport,
|
|
76
78
|
singletonServicesImport,
|
|
77
|
-
sessionServicesImport
|
|
79
|
+
sessionServicesImport,
|
|
80
|
+
userSessionImport
|
|
78
81
|
)
|
|
79
82
|
await writeFileInDir(nextJSfile, content)
|
|
80
83
|
}
|
|
@@ -86,11 +89,13 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
86
89
|
const cliConfig = await getPikkuCLIConfig(
|
|
87
90
|
options.config,
|
|
88
91
|
['rootDir', 'schemaDirectory', 'configDir', 'nextJSfile'],
|
|
92
|
+
options.tags,
|
|
89
93
|
true
|
|
90
94
|
)
|
|
91
95
|
const visitState = await inspectorGlob(
|
|
92
96
|
cliConfig.rootDir,
|
|
93
|
-
cliConfig.routeDirectories
|
|
97
|
+
cliConfig.routeDirectories,
|
|
98
|
+
cliConfig.filters
|
|
94
99
|
)
|
|
95
100
|
await pikkuNext(cliConfig, visitState, options)
|
|
96
101
|
}
|
package/bin/pikku-openapi.ts
CHANGED
|
@@ -46,18 +46,17 @@ export const pikkuOpenAPI = async (
|
|
|
46
46
|
)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
async function action({ config }: PikkuCLIOptions): Promise<void> {
|
|
49
|
+
async function action({ config, tags }: PikkuCLIOptions): Promise<void> {
|
|
50
50
|
logPikkuLogo()
|
|
51
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
52
|
-
|
|
53
|
-
'routesFile',
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
'tsconfig',
|
|
57
|
-
])
|
|
51
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
52
|
+
config,
|
|
53
|
+
['rootDir', 'routesFile', 'openAPI', 'schemaDirectory', 'tsconfig'],
|
|
54
|
+
tags
|
|
55
|
+
)
|
|
58
56
|
const visitState = await inspectorGlob(
|
|
59
57
|
cliConfig.rootDir,
|
|
60
|
-
cliConfig.routeDirectories
|
|
58
|
+
cliConfig.routeDirectories,
|
|
59
|
+
cliConfig.filters
|
|
61
60
|
)
|
|
62
61
|
await pikkuOpenAPI(cliConfig, visitState)
|
|
63
62
|
}
|
package/bin/pikku-routes-map.ts
CHANGED
|
@@ -33,14 +33,15 @@ export const pikkuHTTPMap = async (
|
|
|
33
33
|
|
|
34
34
|
async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
35
35
|
logPikkuLogo()
|
|
36
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
37
|
-
|
|
38
|
-
'routeDirectories',
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
37
|
+
cliOptions.config,
|
|
38
|
+
['rootDir', 'routeDirectories', 'routesFile'],
|
|
39
|
+
cliOptions.tags
|
|
40
|
+
)
|
|
41
41
|
const visitState = await inspectorGlob(
|
|
42
42
|
cliConfig.rootDir,
|
|
43
|
-
cliConfig.routeDirectories
|
|
43
|
+
cliConfig.routeDirectories,
|
|
44
|
+
cliConfig.filters
|
|
44
45
|
)
|
|
45
46
|
await pikkuHTTPMap(cliConfig, visitState)
|
|
46
47
|
}
|
package/bin/pikku-scheduler.ts
CHANGED
|
@@ -37,17 +37,18 @@ export const pikkuScheduler = async (
|
|
|
37
37
|
)
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async function action(
|
|
40
|
+
async function action(options: PikkuCLIOptions): Promise<void> {
|
|
41
41
|
logPikkuLogo()
|
|
42
42
|
|
|
43
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
44
|
-
|
|
45
|
-
'routeDirectories',
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
const cliConfig = await getPikkuCLIConfig(
|
|
44
|
+
options.config,
|
|
45
|
+
['rootDir', 'routeDirectories', 'routesFile'],
|
|
46
|
+
options.tags
|
|
47
|
+
)
|
|
48
48
|
const visitState = await inspectorGlob(
|
|
49
49
|
cliConfig.rootDir,
|
|
50
|
-
cliConfig.routeDirectories
|
|
50
|
+
cliConfig.routeDirectories,
|
|
51
|
+
cliConfig.filters
|
|
51
52
|
)
|
|
52
53
|
await pikkuScheduler(cliConfig, visitState)
|
|
53
54
|
}
|
package/bin/pikku-schemas.ts
CHANGED
|
@@ -37,7 +37,8 @@ async function action({ config }: { config?: string }): Promise<void> {
|
|
|
37
37
|
])
|
|
38
38
|
const visitState = await inspectorGlob(
|
|
39
39
|
cliConfig.rootDir,
|
|
40
|
-
cliConfig.routeDirectories
|
|
40
|
+
cliConfig.routeDirectories,
|
|
41
|
+
cliConfig.filters
|
|
41
42
|
)
|
|
42
43
|
await pikkuSchemas(cliConfig, visitState)
|
|
43
44
|
}
|
package/bin/pikku-websocket.ts
CHANGED
|
@@ -43,6 +43,7 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
43
43
|
const cliConfig = await getPikkuCLIConfig(
|
|
44
44
|
options.config,
|
|
45
45
|
['rootDir', 'schemaDirectory', 'configDir', 'fetchFile'],
|
|
46
|
+
options.tags,
|
|
46
47
|
true
|
|
47
48
|
)
|
|
48
49
|
await pikkuWebSocket(cliConfig)
|
package/bin/pikku.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander'
|
|
3
3
|
import { schemas } from './pikku-schemas.js'
|
|
4
|
-
import { routes } from './pikku-
|
|
4
|
+
import { routes } from './pikku-http.js'
|
|
5
5
|
import { nextjs } from './pikku-nextjs.js'
|
|
6
6
|
import { all } from './pikku-all.js'
|
|
7
7
|
import { functionTypes } from './pikku-function-types.js'
|
package/dist/bin/pikku-all.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getFileImportRelativePath, logInfo, logPikkuLogo, writeFileInDir, } from '../src/utils.js';
|
|
2
2
|
import { getPikkuCLIConfig } from '../src/pikku-cli-config.js';
|
|
3
|
-
import {
|
|
3
|
+
import { pikkuHTTP } from './pikku-http.js';
|
|
4
4
|
import { pikkuFunctionTypes } from './pikku-function-types.js';
|
|
5
5
|
import { pikkuHTTPMap } from './pikku-routes-map.js';
|
|
6
6
|
import { existsSync } from 'fs';
|
|
@@ -19,9 +19,9 @@ export const action = async (options) => {
|
|
|
19
19
|
const addImport = (from) => {
|
|
20
20
|
imports.push(`import '${getFileImportRelativePath(cliConfig.bootstrapFile, from, cliConfig.packageMappings)}'`);
|
|
21
21
|
};
|
|
22
|
-
const cliConfig = await getPikkuCLIConfig(options.config, [], true);
|
|
22
|
+
const cliConfig = await getPikkuCLIConfig(options.config, [], options.tags, true);
|
|
23
23
|
let typesDeclarationFileExists = true;
|
|
24
|
-
let visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
24
|
+
let visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
25
25
|
if (!existsSync(cliConfig.typesDeclarationFile)) {
|
|
26
26
|
typesDeclarationFileExists = false;
|
|
27
27
|
}
|
|
@@ -29,9 +29,9 @@ export const action = async (options) => {
|
|
|
29
29
|
// This is needed since the addRoutes function will add the routes to the visitState
|
|
30
30
|
if (!typesDeclarationFileExists) {
|
|
31
31
|
logInfo(`• Type file first created, inspecting again...\x1b[0m`);
|
|
32
|
-
visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
32
|
+
visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
33
33
|
}
|
|
34
|
-
const routes = await
|
|
34
|
+
const routes = await pikkuHTTP(cliConfig, visitState);
|
|
35
35
|
if (routes) {
|
|
36
36
|
await pikkuHTTPMap(cliConfig, visitState);
|
|
37
37
|
await pikkuFetch(cliConfig);
|
|
@@ -54,7 +54,7 @@ export const action = async (options) => {
|
|
|
54
54
|
await pikkuNext(cliConfig, visitState, options);
|
|
55
55
|
if (cliConfig.openAPI) {
|
|
56
56
|
logInfo(`• OpenAPI requires a reinspection to pickup new generated types..`);
|
|
57
|
-
visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
57
|
+
visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
58
58
|
await pikkuOpenAPI(cliConfig, visitState);
|
|
59
59
|
}
|
|
60
60
|
await writeFileInDir(cliConfig.bootstrapFile, imports.join('\n'));
|
|
@@ -67,5 +67,6 @@ export const all = (program) => {
|
|
|
67
67
|
.option('-ss | --singleton-services-factory-type', 'The type of your singleton services factory')
|
|
68
68
|
.option('-se | --session-services-factory-type', 'The type of your session services factory')
|
|
69
69
|
.option('-c | --config <string>', 'The path to pikku cli config file')
|
|
70
|
+
.option('-t | --tags <tags...>', 'Which tags to filter by')
|
|
70
71
|
.action(action);
|
|
71
72
|
};
|
|
@@ -10,12 +10,8 @@ export const pikkuChannelsMap = async ({ channelsMapDeclarationFile, packageMapp
|
|
|
10
10
|
};
|
|
11
11
|
async function action(cliOptions) {
|
|
12
12
|
logPikkuLogo();
|
|
13
|
-
const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
|
|
14
|
-
|
|
15
|
-
'routeDirectories',
|
|
16
|
-
'routesFile',
|
|
17
|
-
]);
|
|
18
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
13
|
+
const cliConfig = await getPikkuCLIConfig(cliOptions.config, ['rootDir', 'routeDirectories', 'routesFile'], cliOptions.tags, false);
|
|
14
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
19
15
|
await pikkuChannelsMap(cliConfig, visitState);
|
|
20
16
|
}
|
|
21
17
|
export const channelsMap = (program) => {
|
|
@@ -15,12 +15,8 @@ export const pikkuChannels = async (cliConfig, visitState) => {
|
|
|
15
15
|
};
|
|
16
16
|
async function action(cliOptions) {
|
|
17
17
|
logPikkuLogo();
|
|
18
|
-
const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
|
|
19
|
-
|
|
20
|
-
'routeDirectories',
|
|
21
|
-
'routesFile',
|
|
22
|
-
]);
|
|
23
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
18
|
+
const cliConfig = await getPikkuCLIConfig(cliOptions.config, ['rootDir', 'routeDirectories', 'routesFile'], cliOptions.tags);
|
|
19
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
24
20
|
await pikkuChannels(cliConfig, visitState);
|
|
25
21
|
}
|
|
26
22
|
export const channels = (program) => {
|
package/dist/bin/pikku-fetch.js
CHANGED
|
@@ -13,7 +13,7 @@ export const pikkuFetch = async ({ fetchFile, routesMapDeclarationFile, packageM
|
|
|
13
13
|
};
|
|
14
14
|
export const action = async (options) => {
|
|
15
15
|
logPikkuLogo();
|
|
16
|
-
const cliConfig = await getPikkuCLIConfig(options.config, ['rootDir', 'schemaDirectory', 'configDir', 'fetchFile'], true);
|
|
16
|
+
const cliConfig = await getPikkuCLIConfig(options.config, ['rootDir', 'schemaDirectory', 'configDir', 'fetchFile'], options.tags, true);
|
|
17
17
|
await pikkuFetch(cliConfig);
|
|
18
18
|
};
|
|
19
19
|
export const fetch = (program) => {
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { getPikkuCLIConfig } from '../src/pikku-cli-config.js';
|
|
2
2
|
import { getFileImportRelativePath, getPikkuFilesAndMethods, logCommandInfoAndTime, logPikkuLogo, writeFileInDir, } from '../src/utils.js';
|
|
3
|
-
import {
|
|
3
|
+
import { pikkuHTTP } from './pikku-http.js';
|
|
4
4
|
import { inspectorGlob } from '../src/inspector-glob.js';
|
|
5
5
|
import { serializePikkuTypes } from '../src/core/serialize-pikku-types.js';
|
|
6
6
|
export const pikkuFunctionTypes = async ({ typesDeclarationFile: typesFile, packageMappings }, options, visitState) => {
|
|
7
7
|
await logCommandInfoAndTime('Creating api types', 'Created api types', [false], async () => {
|
|
8
|
-
const { userSessionType, sessionServicesType } = await getPikkuFilesAndMethods(visitState, packageMappings, typesFile, options, {
|
|
9
|
-
|
|
8
|
+
const { userSessionType, sessionServicesType, singletonServicesType } = await getPikkuFilesAndMethods(visitState, packageMappings, typesFile, options, {
|
|
9
|
+
userSessionType: true,
|
|
10
|
+
sessionServiceType: true,
|
|
11
|
+
singletonServicesType: true,
|
|
12
|
+
});
|
|
13
|
+
const content = serializePikkuTypes(`import type { ${userSessionType.type} } from '${getFileImportRelativePath(typesFile, userSessionType.typePath, packageMappings)}'`, userSessionType.type, `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(typesFile, singletonServicesType.typePath, packageMappings)}'`, singletonServicesType.type, `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(typesFile, sessionServicesType.typePath, packageMappings)}'`, sessionServicesType.type);
|
|
10
14
|
await writeFileInDir(typesFile, content);
|
|
11
15
|
});
|
|
12
16
|
};
|
|
13
17
|
async function action(cliOptions) {
|
|
14
18
|
logPikkuLogo();
|
|
15
|
-
const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
'typesDeclarationFile',
|
|
19
|
-
]);
|
|
20
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
21
|
-
await pikkuRoutes(cliConfig, visitState);
|
|
19
|
+
const cliConfig = await getPikkuCLIConfig(cliOptions.config, ['rootDir', 'routeDirectories', 'typesDeclarationFile'], cliOptions.tags);
|
|
20
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
21
|
+
await pikkuHTTP(cliConfig, visitState);
|
|
22
22
|
}
|
|
23
23
|
export const functionTypes = (program) => {
|
|
24
24
|
program
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { PikkuCLIConfig } from '../src/pikku-cli-config.js';
|
|
3
3
|
import { InspectorState } from '@pikku/inspector';
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const pikkuHTTP: (cliConfig: PikkuCLIConfig, visitState: InspectorState) => Promise<boolean>;
|
|
5
5
|
export declare const routes: (program: Command) => void;
|
|
@@ -3,8 +3,8 @@ import { serializeHTTPRoutesMeta } from '../src/http/serialize-route-meta.js';
|
|
|
3
3
|
import { logCommandInfoAndTime, logPikkuLogo, writeFileInDir, } from '../src/utils.js';
|
|
4
4
|
import { serializeRoutes } from '../src/http/serialize-route-imports.js';
|
|
5
5
|
import { inspectorGlob } from '../src/inspector-glob.js';
|
|
6
|
-
export const
|
|
7
|
-
return await logCommandInfoAndTime('Finding routes', 'Found routes', [visitState.http.files.size === 0], async () => {
|
|
6
|
+
export const pikkuHTTP = async (cliConfig, visitState) => {
|
|
7
|
+
return await logCommandInfoAndTime('Finding HTTP routes', 'Found HTTP routes', [visitState.http.files.size === 0], async () => {
|
|
8
8
|
const { routesFile, packageMappings } = cliConfig;
|
|
9
9
|
const { http } = visitState;
|
|
10
10
|
const content = [
|
|
@@ -16,13 +16,9 @@ export const pikkuRoutes = async (cliConfig, visitState) => {
|
|
|
16
16
|
};
|
|
17
17
|
async function action(cliOptions) {
|
|
18
18
|
logPikkuLogo();
|
|
19
|
-
const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'routesFile',
|
|
23
|
-
]);
|
|
24
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
25
|
-
await pikkuRoutes(cliConfig, visitState);
|
|
19
|
+
const cliConfig = await getPikkuCLIConfig(cliOptions.config, ['rootDir', 'routeDirectories', 'routesFile'], cliOptions.tags);
|
|
20
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
21
|
+
await pikkuHTTP(cliConfig, visitState);
|
|
26
22
|
}
|
|
27
23
|
export const routes = (program) => {
|
|
28
24
|
program
|
package/dist/bin/pikku-nextjs.js
CHANGED
|
@@ -7,7 +7,7 @@ export const pikkuNext = async ({ nextJSfile, routesFile, routesMapDeclarationFi
|
|
|
7
7
|
if (!nextJSfile) {
|
|
8
8
|
throw new Error('nextJSfile is required in pikku config');
|
|
9
9
|
}
|
|
10
|
-
const { pikkuConfigFactory, singletonServicesFactory, sessionServicesFactory, } = await getPikkuFilesAndMethods(visitState, packageMappings, nextJSfile, options, {
|
|
10
|
+
const { pikkuConfigFactory, singletonServicesFactory, sessionServicesFactory, userSessionType, } = await getPikkuFilesAndMethods(visitState, packageMappings, nextJSfile, options, {
|
|
11
11
|
config: true,
|
|
12
12
|
singletonServicesFactory: true,
|
|
13
13
|
sessionServicesFactory: true,
|
|
@@ -15,17 +15,18 @@ export const pikkuNext = async ({ nextJSfile, routesFile, routesMapDeclarationFi
|
|
|
15
15
|
const pikkuConfigImport = `import { ${pikkuConfigFactory.variable} as createConfig } from '${getFileImportRelativePath(nextJSfile, pikkuConfigFactory.file, packageMappings)}'`;
|
|
16
16
|
const singletonServicesImport = `import { ${singletonServicesFactory.variable} as createSingletonServices } from '${getFileImportRelativePath(nextJSfile, singletonServicesFactory.file, packageMappings)}'`;
|
|
17
17
|
const sessionServicesImport = `import { ${sessionServicesFactory.variable} as createSessionServices } from '${getFileImportRelativePath(nextJSfile, sessionServicesFactory.file, packageMappings)}'`;
|
|
18
|
+
const userSessionImport = `import type { ${userSessionType.type} as UserSession } from '${getFileImportRelativePath(nextJSfile, userSessionType.file, packageMappings)}'`;
|
|
18
19
|
const routesPath = getFileImportRelativePath(nextJSfile, routesFile, packageMappings);
|
|
19
20
|
const routesMapDeclarationPath = getFileImportRelativePath(nextJSfile, routesMapDeclarationFile, packageMappings);
|
|
20
21
|
const schemasPath = getFileImportRelativePath(nextJSfile, `${schemaDirectory}/register.gen.ts`, packageMappings);
|
|
21
|
-
const content = serializeNextJsWrapper(routesPath, routesMapDeclarationPath, schemasPath, pikkuConfigImport, singletonServicesImport, sessionServicesImport);
|
|
22
|
+
const content = serializeNextJsWrapper(routesPath, routesMapDeclarationPath, schemasPath, pikkuConfigImport, singletonServicesImport, sessionServicesImport, userSessionImport);
|
|
22
23
|
await writeFileInDir(nextJSfile, content);
|
|
23
24
|
});
|
|
24
25
|
};
|
|
25
26
|
export const action = async (options) => {
|
|
26
27
|
logPikkuLogo();
|
|
27
|
-
const cliConfig = await getPikkuCLIConfig(options.config, ['rootDir', 'schemaDirectory', 'configDir', 'nextJSfile'], true);
|
|
28
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
28
|
+
const cliConfig = await getPikkuCLIConfig(options.config, ['rootDir', 'schemaDirectory', 'configDir', 'nextJSfile'], options.tags, true);
|
|
29
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
29
30
|
await pikkuNext(cliConfig, visitState, options);
|
|
30
31
|
};
|
|
31
32
|
export const nextjs = (program) => {
|
|
@@ -20,16 +20,10 @@ export const pikkuOpenAPI = async ({ tsconfig, openAPI }, { http }) => {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
-
async function action({ config }) {
|
|
23
|
+
async function action({ config, tags }) {
|
|
24
24
|
logPikkuLogo();
|
|
25
|
-
const cliConfig = await getPikkuCLIConfig(config, [
|
|
26
|
-
|
|
27
|
-
'routesFile',
|
|
28
|
-
'openAPI',
|
|
29
|
-
'schemaDirectory',
|
|
30
|
-
'tsconfig',
|
|
31
|
-
]);
|
|
32
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
25
|
+
const cliConfig = await getPikkuCLIConfig(config, ['rootDir', 'routesFile', 'openAPI', 'schemaDirectory', 'tsconfig'], tags);
|
|
26
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
33
27
|
await pikkuOpenAPI(cliConfig, visitState);
|
|
34
28
|
}
|
|
35
29
|
export const openapi = (program) => {
|
|
@@ -10,12 +10,8 @@ export const pikkuHTTPMap = async ({ routesMapDeclarationFile, packageMappings }
|
|
|
10
10
|
};
|
|
11
11
|
async function action(cliOptions) {
|
|
12
12
|
logPikkuLogo();
|
|
13
|
-
const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
|
|
14
|
-
|
|
15
|
-
'routeDirectories',
|
|
16
|
-
'routesFile',
|
|
17
|
-
]);
|
|
18
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
13
|
+
const cliConfig = await getPikkuCLIConfig(cliOptions.config, ['rootDir', 'routeDirectories', 'routesFile'], cliOptions.tags);
|
|
14
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
19
15
|
await pikkuHTTPMap(cliConfig, visitState);
|
|
20
16
|
}
|
|
21
17
|
export const routesMap = (program) => {
|
|
@@ -13,14 +13,10 @@ export const pikkuScheduler = async (cliConfig, visitState) => {
|
|
|
13
13
|
await writeFileInDir(schedulersFile, content.join('\n\n'));
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
|
-
async function action(
|
|
16
|
+
async function action(options) {
|
|
17
17
|
logPikkuLogo();
|
|
18
|
-
const cliConfig = await getPikkuCLIConfig(
|
|
19
|
-
|
|
20
|
-
'routeDirectories',
|
|
21
|
-
'routesFile',
|
|
22
|
-
]);
|
|
23
|
-
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories);
|
|
18
|
+
const cliConfig = await getPikkuCLIConfig(options.config, ['rootDir', 'routeDirectories', 'routesFile'], options.tags);
|
|
19
|
+
const visitState = await inspectorGlob(cliConfig.rootDir, cliConfig.routeDirectories, cliConfig.filters);
|
|
24
20
|
await pikkuScheduler(cliConfig, visitState);
|
|
25
21
|
}
|
|
26
22
|
export const schedules = (program) => {
|