@pikku/cli 0.6.12 → 0.6.14

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.
Files changed (51) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/bin/pikku-all.ts +15 -6
  3. package/bin/pikku-channels-map.ts +8 -6
  4. package/bin/pikku-channels.ts +7 -6
  5. package/bin/pikku-fetch.ts +1 -0
  6. package/bin/pikku-function-types.ts +18 -10
  7. package/bin/{pikku-routes.ts → pikku-http.ts} +11 -10
  8. package/bin/pikku-nextjs.ts +7 -2
  9. package/bin/pikku-openapi.ts +8 -9
  10. package/bin/pikku-routes-map.ts +7 -6
  11. package/bin/pikku-scheduler.ts +8 -7
  12. package/bin/pikku-schemas.ts +2 -1
  13. package/bin/pikku-websocket.ts +1 -0
  14. package/bin/pikku.ts +1 -1
  15. package/dist/bin/pikku-all.js +7 -6
  16. package/dist/bin/pikku-channels-map.js +2 -6
  17. package/dist/bin/pikku-channels.js +2 -6
  18. package/dist/bin/pikku-fetch.js +1 -1
  19. package/dist/bin/pikku-function-types.js +10 -10
  20. package/dist/bin/{pikku-routes.d.ts → pikku-http.d.ts} +1 -1
  21. package/dist/bin/{pikku-routes.js → pikku-http.js} +5 -9
  22. package/dist/bin/pikku-nextjs.js +5 -4
  23. package/dist/bin/pikku-openapi.js +3 -9
  24. package/dist/bin/pikku-routes-map.js +2 -6
  25. package/dist/bin/pikku-scheduler.js +3 -7
  26. package/dist/bin/pikku-schemas.js +1 -1
  27. package/dist/bin/pikku-websocket.js +1 -1
  28. package/dist/bin/pikku.js +1 -1
  29. package/dist/src/channels/serialize-channels.js +2 -2
  30. package/dist/src/core/serialize-pikku-types.d.ts +1 -1
  31. package/dist/src/core/serialize-pikku-types.js +11 -9
  32. package/dist/src/http/serialize-route-meta.js +2 -2
  33. package/dist/src/inspector-glob.d.ts +2 -2
  34. package/dist/src/inspector-glob.js +2 -2
  35. package/dist/src/nextjs/serialize-nextjs-wrapper.d.ts +1 -1
  36. package/dist/src/nextjs/serialize-nextjs-wrapper.js +60 -12
  37. package/dist/src/pikku-cli-config.d.ts +3 -1
  38. package/dist/src/pikku-cli-config.js +8 -4
  39. package/dist/src/scheduler/serialize-schedulers.js +2 -2
  40. package/dist/src/utils.d.ts +4 -1
  41. package/dist/src/utils.js +5 -3
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +3 -3
  44. package/src/channels/serialize-channels.ts +2 -2
  45. package/src/core/serialize-pikku-types.ts +12 -8
  46. package/src/http/serialize-route-meta.ts +2 -2
  47. package/src/inspector-glob.ts +4 -3
  48. package/src/nextjs/serialize-nextjs-wrapper.ts +61 -12
  49. package/src/pikku-cli-config.ts +12 -0
  50. package/src/scheduler/serialize-schedulers.ts +2 -4
  51. package/src/utils.ts +15 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @pikku/cli
2
2
 
3
+ ## 0.6.14
4
+
5
+ ### Patch Changes
6
+
7
+ - ebc04eb: refactor: move all global state into pikku state
8
+ - Updated dependencies [ebc04eb]
9
+ - Updated dependencies [8a14f3a]
10
+ - Updated dependencies [2c47386]
11
+ - @pikku/core@0.6.17
12
+
13
+ ## 0.6.13
14
+
15
+ ### Patch Changes
16
+
17
+ - c1d8381: feat: adding filtering by tags to minimize produced payload
18
+ - ee5c874: feat: moving towards using middleware for http and channels
19
+ - Updated dependencies [c1d8381]
20
+ - Updated dependencies [ee5c874]
21
+ - @pikku/inspector@0.6.3
22
+ - @pikku/core@0.6.14
23
+
3
24
  ## 0.6.12
4
25
 
5
26
  ### 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 { pikkuRoutes } from './pikku-routes.js'
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(options.config, [], true)
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 pikkuRoutes(cliConfig, visitState)
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(cliOptions.config, [
36
- 'rootDir',
37
- 'routeDirectories',
38
- 'routesFile',
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
  }
@@ -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(cliOptions.config, [
40
- 'rootDir',
41
- 'routeDirectories',
42
- 'routesFile',
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
  }
@@ -40,6 +40,7 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
40
40
  const cliConfig = await getPikkuCLIConfig(
41
41
  options.config,
42
42
  ['rootDir', 'schemaDirectory', 'configDir', 'fetchFile'],
43
+ options.tags,
43
44
  true
44
45
  )
45
46
  await pikkuFetch(cliConfig)
@@ -9,7 +9,7 @@ import {
9
9
  PikkuCLIOptions,
10
10
  writeFileInDir,
11
11
  } from '../src/utils.js'
12
- import { pikkuRoutes } from './pikku-routes.js'
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
- { userSessionType: true, sessionServiceType: true }
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(cliOptions.config, [
49
- 'rootDir',
50
- 'routeDirectories',
51
- 'typesDeclarationFile',
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 pikkuRoutes(cliConfig, visitState)
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 pikkuRoutes = async (
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(cliOptions.config, [
38
- 'rootDir',
39
- 'routeDirectories',
40
- 'routesFile',
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 pikkuRoutes(cliConfig, visitState)
47
+ await pikkuHTTP(cliConfig, visitState)
47
48
  }
48
49
 
49
50
  export const routes = (program: Command): void => {
@@ -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
  }
@@ -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(config, [
52
- 'rootDir',
53
- 'routesFile',
54
- 'openAPI',
55
- 'schemaDirectory',
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
  }
@@ -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(cliOptions.config, [
37
- 'rootDir',
38
- 'routeDirectories',
39
- 'routesFile',
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
  }
@@ -37,17 +37,18 @@ export const pikkuScheduler = async (
37
37
  )
38
38
  }
39
39
 
40
- async function action(cliOptions: PikkuCLIOptions): Promise<void> {
40
+ async function action(options: PikkuCLIOptions): Promise<void> {
41
41
  logPikkuLogo()
42
42
 
43
- const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
44
- 'rootDir',
45
- 'routeDirectories',
46
- 'routesFile',
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
  }
@@ -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
  }
@@ -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-routes.js'
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'
@@ -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 { pikkuRoutes } from './pikku-routes.js';
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 pikkuRoutes(cliConfig, visitState);
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
- 'rootDir',
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
- 'rootDir',
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) => {
@@ -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 { pikkuRoutes } from './pikku-routes.js';
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, { userSessionType: true, sessionServiceType: true });
9
- const content = serializePikkuTypes(`import type { ${userSessionType.type} } from '${getFileImportRelativePath(typesFile, userSessionType.typePath, packageMappings)}'`, userSessionType.type, `import type { ${sessionServicesType.type} } from '${getFileImportRelativePath(typesFile, sessionServicesType.typePath, packageMappings)}'`, sessionServicesType.type);
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
- 'rootDir',
17
- 'routeDirectories',
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 pikkuRoutes: (cliConfig: PikkuCLIConfig, visitState: InspectorState) => Promise<boolean>;
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 pikkuRoutes = async (cliConfig, visitState) => {
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
- 'rootDir',
21
- 'routeDirectories',
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
@@ -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
- 'rootDir',
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
- 'rootDir',
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(cliOptions) {
16
+ async function action(options) {
17
17
  logPikkuLogo();
18
- const cliConfig = await getPikkuCLIConfig(cliOptions.config, [
19
- 'rootDir',
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) => {