@pikku/cli 0.6.20 → 0.7.1
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 +13 -0
- package/bin/pikku-all.ts +41 -18
- package/bin/pikku-channels-map.ts +4 -4
- package/bin/pikku-channels.ts +17 -12
- package/bin/pikku-fetch.ts +3 -3
- package/bin/pikku-function-types.ts +4 -4
- package/bin/pikku-functions.ts +35 -0
- package/bin/{pikku-routes-map.ts → pikku-http-map.ts} +10 -10
- package/bin/{pikku-http.ts → pikku-http-routes.ts} +17 -10
- package/bin/pikku-nextjs.ts +9 -9
- package/bin/pikku-openapi.ts +10 -6
- package/bin/pikku-rpc.ts +22 -0
- package/bin/pikku-scheduler.ts +15 -13
- package/bin/pikku-schemas.ts +10 -6
- package/bin/pikku-websocket.ts +1 -1
- package/bin/pikku.ts +2 -2
- package/cli.schema.json +2 -2
- package/dist/bin/pikku-all.js +37 -16
- package/dist/bin/pikku-channels-map.js +4 -4
- package/dist/bin/pikku-channels.js +6 -10
- package/dist/bin/pikku-fetch.d.ts +1 -1
- package/dist/bin/pikku-fetch.js +3 -3
- package/dist/bin/pikku-function-types.js +4 -4
- package/dist/bin/pikku-functions.d.ts +3 -0
- package/dist/bin/pikku-functions.js +9 -0
- package/dist/bin/{pikku-routes-map.d.ts → pikku-http-map.d.ts} +1 -1
- package/dist/bin/{pikku-routes-map.js → pikku-http-map.js} +7 -7
- package/dist/bin/{pikku-http.js → pikku-http-routes.js} +6 -11
- package/dist/bin/pikku-nextjs.d.ts +1 -1
- package/dist/bin/pikku-nextjs.js +8 -8
- package/dist/bin/pikku-openapi.d.ts +1 -1
- package/dist/bin/pikku-openapi.js +6 -6
- package/dist/bin/pikku-rpc.d.ts +3 -0
- package/dist/bin/pikku-rpc.js +8 -0
- package/dist/bin/pikku-scheduler.js +7 -10
- package/dist/bin/pikku-schemas.d.ts +1 -1
- package/dist/bin/pikku-schemas.js +6 -6
- package/dist/bin/pikku-websocket.js +1 -1
- package/dist/bin/pikku.js +2 -2
- package/dist/src/inspector-glob.d.ts +1 -1
- package/dist/src/inspector-glob.js +2 -2
- package/dist/src/pikku-cli-config.d.ts +10 -4
- package/dist/src/pikku-cli-config.js +22 -4
- package/dist/src/{schema/schema-generator.d.ts → schema-generator.d.ts} +1 -1
- package/dist/src/{schema/schema-generator.js → schema-generator.js} +29 -8
- package/dist/src/{core/serialize-import-map.js → serialize-import-map.js} +2 -1
- package/dist/src/serialize-pikku-types.js +136 -0
- package/dist/src/{scheduler/serialize-schedulers.d.ts → serialize-scheduler-meta.d.ts} +0 -1
- package/dist/src/serialize-scheduler-meta.js +10 -0
- package/dist/src/{channels/serialize-typed-channel-map.js → serialize-typed-channel-map.js} +7 -4
- package/dist/src/{http/serialize-typed-route-map.js → serialize-typed-function-map.js} +2 -2
- package/dist/src/serialize-typed-http-map.d.ts +4 -0
- package/dist/src/serialize-typed-http-map.js +107 -0
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.js +17 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/inspector-glob.ts +2 -2
- package/src/pikku-cli-config.ts +44 -8
- package/src/{schema/schema-generator.ts → schema-generator.ts} +31 -9
- package/src/{core/serialize-import-map.ts → serialize-import-map.ts} +2 -1
- package/src/serialize-pikku-types.ts +143 -0
- package/src/serialize-scheduler-meta.ts +18 -0
- package/src/{channels/serialize-typed-channel-map.ts → serialize-typed-channel-map.ts} +8 -6
- package/src/{http/serialize-typed-route-map.ts → serialize-typed-function-map.ts} +3 -2
- package/src/serialize-typed-http-map.ts +151 -0
- package/src/utils.ts +29 -5
- package/dist/src/channels/serialize-channels.d.ts +0 -3
- package/dist/src/channels/serialize-channels.js +0 -19
- package/dist/src/core/serialize-pikku-types.js +0 -48
- package/dist/src/http/serialize-route-imports.d.ts +0 -1
- package/dist/src/http/serialize-route-imports.js +0 -13
- package/dist/src/http/serialize-route-meta.d.ts +0 -2
- package/dist/src/http/serialize-route-meta.js +0 -6
- package/dist/src/scheduler/serialize-schedulers.js +0 -22
- package/src/channels/serialize-channels.ts +0 -34
- package/src/core/serialize-pikku-types.ts +0 -55
- package/src/http/serialize-route-imports.ts +0 -24
- package/src/http/serialize-route-meta.ts +0 -10
- package/src/scheduler/serialize-schedulers.ts +0 -41
- /package/dist/bin/{pikku-http.d.ts → pikku-http-routes.d.ts} +0 -0
- /package/dist/src/{openapi/openapi-spec-generator.d.ts → openapi-spec-generator.d.ts} +0 -0
- /package/dist/src/{openapi/openapi-spec-generator.js → openapi-spec-generator.js} +0 -0
- /package/dist/src/{http/serialize-fetch-wrapper.d.ts → serialize-fetch-wrapper.d.ts} +0 -0
- /package/dist/src/{http/serialize-fetch-wrapper.js → serialize-fetch-wrapper.js} +0 -0
- /package/dist/src/{core/serialize-import-map.d.ts → serialize-import-map.d.ts} +0 -0
- /package/dist/src/{nextjs/serialize-nextjs-backend-wrapper.d.ts → serialize-nextjs-backend-wrapper.d.ts} +0 -0
- /package/dist/src/{nextjs/serialize-nextjs-backend-wrapper.js → serialize-nextjs-backend-wrapper.js} +0 -0
- /package/dist/src/{nextjs/serialize-nextjs-http-wrapper.d.ts → serialize-nextjs-http-wrapper.d.ts} +0 -0
- /package/dist/src/{nextjs/serialize-nextjs-http-wrapper.js → serialize-nextjs-http-wrapper.js} +0 -0
- /package/dist/src/{core/serialize-pikku-types.d.ts → serialize-pikku-types.d.ts} +0 -0
- /package/dist/src/{channels/serialize-typed-channel-map.d.ts → serialize-typed-channel-map.d.ts} +0 -0
- /package/dist/src/{http/serialize-typed-route-map.d.ts → serialize-typed-function-map.d.ts} +0 -0
- /package/dist/src/{channels/serialize-websocket-wrapper.d.ts → serialize-websocket-wrapper.d.ts} +0 -0
- /package/dist/src/{channels/serialize-websocket-wrapper.js → serialize-websocket-wrapper.js} +0 -0
- /package/src/{openapi/openapi-spec-generator.ts → openapi-spec-generator.ts} +0 -0
- /package/src/{http/serialize-fetch-wrapper.ts → serialize-fetch-wrapper.ts} +0 -0
- /package/src/{nextjs/serialize-nextjs-backend-wrapper.ts → serialize-nextjs-backend-wrapper.ts} +0 -0
- /package/src/{nextjs/serialize-nextjs-http-wrapper.ts → serialize-nextjs-http-wrapper.ts} +0 -0
- /package/src/{channels/serialize-websocket-wrapper.ts → serialize-websocket-wrapper.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @pikku/cli
|
|
2
2
|
|
|
3
|
+
## 0.7.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 534fdef: feat: adding rpc (locally for now)
|
|
8
|
+
- Updated dependencies [534fdef]
|
|
9
|
+
- @pikku/inspector@0.7.3
|
|
10
|
+
- @pikku/core@0.7.3
|
|
11
|
+
|
|
12
|
+
## 0.7.0
|
|
13
|
+
|
|
14
|
+
- Now function first. No breaking changes for end user here, just internals
|
|
15
|
+
|
|
3
16
|
## 0.6.20
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/bin/pikku-all.ts
CHANGED
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
writeFileInDir,
|
|
8
8
|
} from '../src/utils.js'
|
|
9
9
|
import { getPikkuCLIConfig, PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
10
|
-
import { pikkuHTTP } from './pikku-http.js'
|
|
10
|
+
import { pikkuHTTP } from './pikku-http-routes.js'
|
|
11
11
|
import { pikkuFunctionTypes } from './pikku-function-types.js'
|
|
12
|
-
import { pikkuHTTPMap } from './pikku-
|
|
12
|
+
import { pikkuHTTPMap } from './pikku-http-map.js'
|
|
13
13
|
import { existsSync } from 'fs'
|
|
14
14
|
import { pikkuFetch } from './pikku-fetch.js'
|
|
15
15
|
import { pikkuChannelsMap } from './pikku-channels-map.js'
|
|
@@ -21,19 +21,25 @@ import { pikkuSchemas } from './pikku-schemas.js'
|
|
|
21
21
|
import { pikkuWebSocket } from './pikku-websocket.js'
|
|
22
22
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
23
23
|
import chokidar from 'chokidar'
|
|
24
|
+
import { pikkuFunctions } from './pikku-functions.js'
|
|
25
|
+
import { pikkuRPC } from './pikku-rpc.js'
|
|
24
26
|
|
|
25
27
|
const runAll = async (cliConfig: PikkuCLIConfig, options: PikkuCLIOptions) => {
|
|
28
|
+
const metaImports: string[] = []
|
|
26
29
|
const imports: string[] = []
|
|
27
|
-
const addImport = (from: string) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const addImport = (from: string, type: 'meta' | 'events' | 'other') => {
|
|
31
|
+
const statement = `import '${getFileImportRelativePath(cliConfig.bootstrapFile, from, cliConfig.packageMappings)}'`
|
|
32
|
+
if (type === 'meta') {
|
|
33
|
+
metaImports.push(statement)
|
|
34
|
+
} else {
|
|
35
|
+
imports.push(statement)
|
|
36
|
+
}
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
let typesDeclarationFileExists = true
|
|
34
40
|
let visitState = await inspectorGlob(
|
|
35
41
|
cliConfig.rootDir,
|
|
36
|
-
cliConfig.
|
|
42
|
+
cliConfig.srcDirectories,
|
|
37
43
|
cliConfig.filters
|
|
38
44
|
)
|
|
39
45
|
|
|
@@ -42,38 +48,52 @@ const runAll = async (cliConfig: PikkuCLIConfig, options: PikkuCLIOptions) => {
|
|
|
42
48
|
}
|
|
43
49
|
await pikkuFunctionTypes(cliConfig, options, visitState)
|
|
44
50
|
|
|
45
|
-
// This is needed since the
|
|
51
|
+
// This is needed since the addHTTPRoute function will add the routes to the visitState
|
|
46
52
|
if (!typesDeclarationFileExists) {
|
|
47
53
|
logInfo(`• Type file first created, inspecting again...\x1b[0m`)
|
|
48
54
|
visitState = await inspectorGlob(
|
|
49
55
|
cliConfig.rootDir,
|
|
50
|
-
cliConfig.
|
|
56
|
+
cliConfig.srcDirectories,
|
|
51
57
|
cliConfig.filters
|
|
52
58
|
)
|
|
53
59
|
}
|
|
54
60
|
|
|
61
|
+
const functions = pikkuFunctions(cliConfig, visitState)
|
|
62
|
+
if (!functions) {
|
|
63
|
+
logInfo(`• No functions found, skipping remaining steps...\x1b[0m`)
|
|
64
|
+
process.exit(1)
|
|
65
|
+
}
|
|
66
|
+
addImport(cliConfig.functionsMetaFile, 'meta')
|
|
67
|
+
addImport(cliConfig.functionsFile, 'events')
|
|
68
|
+
|
|
69
|
+
await pikkuRPC(cliConfig, visitState)
|
|
70
|
+
addImport(cliConfig.rpcFile, 'meta')
|
|
71
|
+
|
|
55
72
|
const routes = await pikkuHTTP(cliConfig, visitState)
|
|
56
73
|
if (routes) {
|
|
57
74
|
await pikkuHTTPMap(cliConfig, visitState)
|
|
58
75
|
await pikkuFetch(cliConfig)
|
|
59
|
-
addImport(cliConfig.
|
|
76
|
+
addImport(cliConfig.httpRoutesMetaFile, 'meta')
|
|
77
|
+
addImport(cliConfig.httpRoutesFile, 'events')
|
|
60
78
|
}
|
|
61
79
|
|
|
62
80
|
const scheduled = await pikkuScheduler(cliConfig, visitState)
|
|
63
81
|
if (scheduled) {
|
|
64
|
-
addImport(cliConfig.
|
|
82
|
+
addImport(cliConfig.schedulersMetaFile, 'meta')
|
|
83
|
+
addImport(cliConfig.schedulersFile, 'events')
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
const channels = await pikkuChannels(cliConfig, visitState)
|
|
68
87
|
if (channels) {
|
|
69
88
|
await pikkuChannelsMap(cliConfig, visitState)
|
|
70
89
|
await pikkuWebSocket(cliConfig)
|
|
71
|
-
addImport(cliConfig.
|
|
90
|
+
addImport(cliConfig.channelsMetaFile, 'meta')
|
|
91
|
+
addImport(cliConfig.channelsFile, 'events')
|
|
72
92
|
}
|
|
73
93
|
|
|
74
94
|
const schemas = await pikkuSchemas(cliConfig, visitState)
|
|
75
95
|
if (schemas) {
|
|
76
|
-
addImport(`${cliConfig.schemaDirectory}/register.gen.ts
|
|
96
|
+
addImport(`${cliConfig.schemaDirectory}/register.gen.ts`, 'other')
|
|
77
97
|
}
|
|
78
98
|
|
|
79
99
|
if (cliConfig.nextBackendFile || cliConfig.nextHTTPFile) {
|
|
@@ -84,17 +104,20 @@ const runAll = async (cliConfig: PikkuCLIConfig, options: PikkuCLIOptions) => {
|
|
|
84
104
|
logInfo(`• OpenAPI requires a reinspection to pickup new generated types..`)
|
|
85
105
|
visitState = await inspectorGlob(
|
|
86
106
|
cliConfig.rootDir,
|
|
87
|
-
cliConfig.
|
|
107
|
+
cliConfig.srcDirectories,
|
|
88
108
|
cliConfig.filters
|
|
89
109
|
)
|
|
90
110
|
await pikkuOpenAPI(cliConfig, visitState)
|
|
91
111
|
}
|
|
92
112
|
|
|
93
|
-
await writeFileInDir(
|
|
113
|
+
await writeFileInDir(
|
|
114
|
+
cliConfig.bootstrapFile,
|
|
115
|
+
[...metaImports, ...imports].join('\n')
|
|
116
|
+
)
|
|
94
117
|
}
|
|
95
118
|
|
|
96
119
|
const watch = (cliConfig: PikkuCLIConfig, options: PikkuCLIOptions) => {
|
|
97
|
-
const configWatcher = chokidar.watch(cliConfig.
|
|
120
|
+
const configWatcher = chokidar.watch(cliConfig.srcDirectories, {
|
|
98
121
|
ignoreInitial: true,
|
|
99
122
|
ignored: /.*\.gen\.tsx?/,
|
|
100
123
|
})
|
|
@@ -105,9 +128,9 @@ const watch = (cliConfig: PikkuCLIConfig, options: PikkuCLIOptions) => {
|
|
|
105
128
|
watcher.close()
|
|
106
129
|
|
|
107
130
|
logInfo(
|
|
108
|
-
`• Watching directories: \n - ${cliConfig.
|
|
131
|
+
`• Watching directories: \n - ${cliConfig.srcDirectories.join('\n - ')}`
|
|
109
132
|
)
|
|
110
|
-
watcher = chokidar.watch(cliConfig.
|
|
133
|
+
watcher = chokidar.watch(cliConfig.srcDirectories, {
|
|
111
134
|
ignoreInitial: true,
|
|
112
135
|
ignored: /.*\.gen\.ts/,
|
|
113
136
|
})
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PikkuCLIOptions,
|
|
8
8
|
writeFileInDir,
|
|
9
9
|
} from '../src/utils.js'
|
|
10
|
-
import { serializeTypedChannelsMap } from '../src/
|
|
10
|
+
import { serializeTypedChannelsMap } from '../src/serialize-typed-channel-map.js'
|
|
11
11
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
12
12
|
|
|
13
13
|
export const pikkuChannelsMap = async (
|
|
@@ -22,7 +22,7 @@ export const pikkuChannelsMap = async (
|
|
|
22
22
|
const content = serializeTypedChannelsMap(
|
|
23
23
|
channelsMapDeclarationFile,
|
|
24
24
|
packageMappings,
|
|
25
|
-
state.
|
|
25
|
+
state.functions.typesMap,
|
|
26
26
|
state.channels.meta
|
|
27
27
|
)
|
|
28
28
|
await writeFileInDir(channelsMapDeclarationFile, content)
|
|
@@ -34,13 +34,13 @@ async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
|
34
34
|
logPikkuLogo()
|
|
35
35
|
const cliConfig = await getPikkuCLIConfig(
|
|
36
36
|
cliOptions.config,
|
|
37
|
-
['rootDir', '
|
|
37
|
+
['rootDir', 'srcDirectories', 'httpRoutesFile'],
|
|
38
38
|
cliOptions.tags,
|
|
39
39
|
false
|
|
40
40
|
)
|
|
41
41
|
const visitState = await inspectorGlob(
|
|
42
42
|
cliConfig.rootDir,
|
|
43
|
-
cliConfig.
|
|
43
|
+
cliConfig.srcDirectories,
|
|
44
44
|
cliConfig.filters
|
|
45
45
|
)
|
|
46
46
|
await pikkuChannelsMap(cliConfig, visitState)
|
package/bin/pikku-channels.ts
CHANGED
|
@@ -5,12 +5,9 @@ import {
|
|
|
5
5
|
logCommandInfoAndTime,
|
|
6
6
|
logPikkuLogo,
|
|
7
7
|
PikkuCLIOptions,
|
|
8
|
+
serializeFileImports,
|
|
8
9
|
writeFileInDir,
|
|
9
10
|
} from '../src/utils.js'
|
|
10
|
-
import {
|
|
11
|
-
serializeChannels,
|
|
12
|
-
serializeChannelMeta,
|
|
13
|
-
} from '../src/channels/serialize-channels.js'
|
|
14
11
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
15
12
|
|
|
16
13
|
export const pikkuChannels = async (
|
|
@@ -22,13 +19,21 @@ export const pikkuChannels = async (
|
|
|
22
19
|
'Found channels',
|
|
23
20
|
[visitState.channels.files.size === 0],
|
|
24
21
|
async () => {
|
|
25
|
-
const { channelsFile, packageMappings } = cliConfig
|
|
22
|
+
const { channelsFile, channelsMetaFile, packageMappings } = cliConfig
|
|
26
23
|
const { channels } = visitState
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
await writeFileInDir(
|
|
25
|
+
channelsFile,
|
|
26
|
+
serializeFileImports(
|
|
27
|
+
'addChannel',
|
|
28
|
+
channelsFile,
|
|
29
|
+
channels.files,
|
|
30
|
+
packageMappings
|
|
31
|
+
)
|
|
32
|
+
)
|
|
33
|
+
await writeFileInDir(
|
|
34
|
+
channelsMetaFile,
|
|
35
|
+
`import { pikkuState } from '@pikku/core'\npikkuState('channel', 'meta', ${JSON.stringify(channels.meta, null, 2)})`
|
|
36
|
+
)
|
|
32
37
|
}
|
|
33
38
|
)
|
|
34
39
|
}
|
|
@@ -38,12 +43,12 @@ async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
|
38
43
|
|
|
39
44
|
const cliConfig = await getPikkuCLIConfig(
|
|
40
45
|
cliOptions.config,
|
|
41
|
-
['rootDir', '
|
|
46
|
+
['rootDir', 'srcDirectories', 'httpRoutesFile'],
|
|
42
47
|
cliOptions.tags
|
|
43
48
|
)
|
|
44
49
|
const visitState = await inspectorGlob(
|
|
45
50
|
cliConfig.rootDir,
|
|
46
|
-
cliConfig.
|
|
51
|
+
cliConfig.srcDirectories,
|
|
47
52
|
cliConfig.filters
|
|
48
53
|
)
|
|
49
54
|
await pikkuChannels(cliConfig, visitState)
|
package/bin/pikku-fetch.ts
CHANGED
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
writeFileInDir,
|
|
8
8
|
} from '../src/utils.js'
|
|
9
9
|
import { getPikkuCLIConfig, PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
10
|
-
import { serializeFetchWrapper } from '../src/
|
|
10
|
+
import { serializeFetchWrapper } from '../src/serialize-fetch-wrapper.js'
|
|
11
11
|
|
|
12
12
|
export const pikkuFetch = async ({
|
|
13
13
|
fetchFile,
|
|
14
|
-
|
|
14
|
+
httpRoutesMapDeclarationFile,
|
|
15
15
|
packageMappings,
|
|
16
16
|
}: PikkuCLIConfig) => {
|
|
17
17
|
await logCommandInfoAndTime(
|
|
@@ -25,7 +25,7 @@ export const pikkuFetch = async ({
|
|
|
25
25
|
|
|
26
26
|
const routesMapDeclarationPath = getFileImportRelativePath(
|
|
27
27
|
fetchFile,
|
|
28
|
-
|
|
28
|
+
httpRoutesMapDeclarationFile,
|
|
29
29
|
packageMappings
|
|
30
30
|
)
|
|
31
31
|
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
PikkuCLIOptions,
|
|
10
10
|
writeFileInDir,
|
|
11
11
|
} from '../src/utils.js'
|
|
12
|
-
import { pikkuHTTP } from './pikku-http.js'
|
|
12
|
+
import { pikkuHTTP } from './pikku-http-routes.js'
|
|
13
13
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
14
|
-
import { serializePikkuTypes } from '../src/
|
|
14
|
+
import { serializePikkuTypes } from '../src/serialize-pikku-types.js'
|
|
15
15
|
|
|
16
16
|
export const pikkuFunctionTypes = async (
|
|
17
17
|
{ typesDeclarationFile: typesFile, packageMappings }: PikkuCLIConfig,
|
|
@@ -54,13 +54,13 @@ async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
|
54
54
|
|
|
55
55
|
const cliConfig = await getPikkuCLIConfig(
|
|
56
56
|
cliOptions.config,
|
|
57
|
-
['rootDir', '
|
|
57
|
+
['rootDir', 'srcDirectories', 'typesDeclarationFile'],
|
|
58
58
|
cliOptions.tags
|
|
59
59
|
)
|
|
60
60
|
|
|
61
61
|
const visitState = await inspectorGlob(
|
|
62
62
|
cliConfig.rootDir,
|
|
63
|
-
cliConfig.
|
|
63
|
+
cliConfig.srcDirectories,
|
|
64
64
|
cliConfig.filters
|
|
65
65
|
)
|
|
66
66
|
await pikkuHTTP(cliConfig, visitState)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
2
|
+
import { InspectorState } from '@pikku/inspector'
|
|
3
|
+
import {
|
|
4
|
+
logCommandInfoAndTime,
|
|
5
|
+
serializeFileImports,
|
|
6
|
+
writeFileInDir,
|
|
7
|
+
} from '../src/utils.js'
|
|
8
|
+
|
|
9
|
+
export const pikkuFunctions = async (
|
|
10
|
+
cliConfig: PikkuCLIConfig,
|
|
11
|
+
visitState: InspectorState
|
|
12
|
+
) => {
|
|
13
|
+
return await logCommandInfoAndTime(
|
|
14
|
+
'Finding Pikku functions',
|
|
15
|
+
'Found Pikku functions',
|
|
16
|
+
[visitState.functions.files.size === 0],
|
|
17
|
+
async () => {
|
|
18
|
+
const { functionsFile, functionsMetaFile, packageMappings } = cliConfig
|
|
19
|
+
const { functions } = visitState
|
|
20
|
+
await writeFileInDir(
|
|
21
|
+
functionsFile,
|
|
22
|
+
serializeFileImports(
|
|
23
|
+
'addFunction',
|
|
24
|
+
functionsFile,
|
|
25
|
+
functions.files,
|
|
26
|
+
packageMappings
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
await writeFileInDir(
|
|
30
|
+
functionsMetaFile,
|
|
31
|
+
`import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta', ${JSON.stringify(functions.meta, null, 2)})`
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
}
|
|
@@ -7,26 +7,26 @@ import {
|
|
|
7
7
|
PikkuCLIOptions,
|
|
8
8
|
writeFileInDir,
|
|
9
9
|
} from '../src/utils.js'
|
|
10
|
-
import { serializeTypedRoutesMap } from '../src/
|
|
10
|
+
import { serializeTypedRoutesMap } from '../src/serialize-typed-http-map.js'
|
|
11
11
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
12
12
|
|
|
13
13
|
export const pikkuHTTPMap = async (
|
|
14
|
-
{
|
|
15
|
-
{ http }: InspectorState
|
|
14
|
+
{ httpRoutesMapDeclarationFile, packageMappings }: PikkuCLIConfig,
|
|
15
|
+
{ http, functions }: InspectorState
|
|
16
16
|
) => {
|
|
17
17
|
return await logCommandInfoAndTime(
|
|
18
|
-
'Creating
|
|
19
|
-
'Created
|
|
18
|
+
'Creating HTTP map',
|
|
19
|
+
'Created HTTP map',
|
|
20
20
|
[http.files.size === 0],
|
|
21
21
|
async () => {
|
|
22
22
|
const content = serializeTypedRoutesMap(
|
|
23
|
-
|
|
23
|
+
httpRoutesMapDeclarationFile,
|
|
24
24
|
packageMappings,
|
|
25
|
-
|
|
25
|
+
functions.typesMap,
|
|
26
26
|
http.meta,
|
|
27
27
|
http.metaInputTypes
|
|
28
28
|
)
|
|
29
|
-
await writeFileInDir(
|
|
29
|
+
await writeFileInDir(httpRoutesMapDeclarationFile, content)
|
|
30
30
|
}
|
|
31
31
|
)
|
|
32
32
|
}
|
|
@@ -35,12 +35,12 @@ async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
|
35
35
|
logPikkuLogo()
|
|
36
36
|
const cliConfig = await getPikkuCLIConfig(
|
|
37
37
|
cliOptions.config,
|
|
38
|
-
['rootDir', '
|
|
38
|
+
['rootDir', 'srcDirectories', 'httpRoutesFile'],
|
|
39
39
|
cliOptions.tags
|
|
40
40
|
)
|
|
41
41
|
const visitState = await inspectorGlob(
|
|
42
42
|
cliConfig.rootDir,
|
|
43
|
-
cliConfig.
|
|
43
|
+
cliConfig.srcDirectories,
|
|
44
44
|
cliConfig.filters
|
|
45
45
|
)
|
|
46
46
|
await pikkuHTTPMap(cliConfig, visitState)
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Command } from 'commander'
|
|
2
2
|
import { getPikkuCLIConfig, PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
3
|
-
import { serializeHTTPRoutesMeta } from '../src/http/serialize-route-meta.js'
|
|
4
3
|
import { InspectorState } from '@pikku/inspector'
|
|
5
4
|
import {
|
|
6
5
|
logCommandInfoAndTime,
|
|
7
6
|
logPikkuLogo,
|
|
8
7
|
PikkuCLIOptions,
|
|
8
|
+
serializeFileImports,
|
|
9
9
|
writeFileInDir,
|
|
10
10
|
} from '../src/utils.js'
|
|
11
|
-
import { serializeRoutes } from '../src/http/serialize-route-imports.js'
|
|
12
11
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
13
12
|
|
|
14
13
|
export const pikkuHTTP = async (
|
|
@@ -20,13 +19,21 @@ export const pikkuHTTP = async (
|
|
|
20
19
|
'Found HTTP routes',
|
|
21
20
|
[visitState.http.files.size === 0],
|
|
22
21
|
async () => {
|
|
23
|
-
const {
|
|
22
|
+
const { httpRoutesFile, httpRoutesMetaFile, packageMappings } = cliConfig
|
|
24
23
|
const { http } = visitState
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
await writeFileInDir(
|
|
25
|
+
httpRoutesFile,
|
|
26
|
+
serializeFileImports(
|
|
27
|
+
'addHTTPRoute',
|
|
28
|
+
httpRoutesFile,
|
|
29
|
+
http.files,
|
|
30
|
+
packageMappings
|
|
31
|
+
)
|
|
32
|
+
)
|
|
33
|
+
await writeFileInDir(
|
|
34
|
+
httpRoutesMetaFile,
|
|
35
|
+
`import { pikkuState } from '@pikku/core'\npikkuState('http', 'meta', ${JSON.stringify(http.meta, null, 2)})`
|
|
36
|
+
)
|
|
30
37
|
}
|
|
31
38
|
)
|
|
32
39
|
}
|
|
@@ -36,12 +43,12 @@ async function action(cliOptions: PikkuCLIOptions): Promise<void> {
|
|
|
36
43
|
|
|
37
44
|
const cliConfig = await getPikkuCLIConfig(
|
|
38
45
|
cliOptions.config,
|
|
39
|
-
['rootDir', '
|
|
46
|
+
['rootDir', 'srcDirectories', 'httpRoutesFile'],
|
|
40
47
|
cliOptions.tags
|
|
41
48
|
)
|
|
42
49
|
const visitState = await inspectorGlob(
|
|
43
50
|
cliConfig.rootDir,
|
|
44
|
-
cliConfig.
|
|
51
|
+
cliConfig.srcDirectories,
|
|
45
52
|
cliConfig.filters
|
|
46
53
|
)
|
|
47
54
|
await pikkuHTTP(cliConfig, visitState)
|
package/bin/pikku-nextjs.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from 'commander'
|
|
2
|
-
import { serializeNextJsBackendWrapper as serializeNextBackendWrapper } from '../src/
|
|
3
|
-
import { serializeNextJsHTTPWrapper as serializeNextHTTPWrapper } from '../src/
|
|
2
|
+
import { serializeNextJsBackendWrapper as serializeNextBackendWrapper } from '../src/serialize-nextjs-backend-wrapper.js'
|
|
3
|
+
import { serializeNextJsHTTPWrapper as serializeNextHTTPWrapper } from '../src/serialize-nextjs-http-wrapper.js'
|
|
4
4
|
import {
|
|
5
5
|
getFileImportRelativePath,
|
|
6
6
|
getPikkuFilesAndMethods,
|
|
@@ -17,8 +17,8 @@ export const pikkuNext = async (
|
|
|
17
17
|
{
|
|
18
18
|
nextBackendFile,
|
|
19
19
|
nextHTTPFile,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
httpRoutesFile,
|
|
21
|
+
httpRoutesMapDeclarationFile,
|
|
22
22
|
schemaDirectory,
|
|
23
23
|
packageMappings,
|
|
24
24
|
fetchFile,
|
|
@@ -69,13 +69,13 @@ export const pikkuNext = async (
|
|
|
69
69
|
|
|
70
70
|
const routesPath = getFileImportRelativePath(
|
|
71
71
|
nextBackendFile,
|
|
72
|
-
|
|
72
|
+
httpRoutesFile,
|
|
73
73
|
packageMappings
|
|
74
74
|
)
|
|
75
75
|
|
|
76
76
|
const routesMapDeclarationPath = getFileImportRelativePath(
|
|
77
77
|
nextBackendFile,
|
|
78
|
-
|
|
78
|
+
httpRoutesMapDeclarationFile,
|
|
79
79
|
packageMappings
|
|
80
80
|
)
|
|
81
81
|
const schemasPath = getFileImportRelativePath(
|
|
@@ -98,13 +98,13 @@ export const pikkuNext = async (
|
|
|
98
98
|
if (nextHTTPFile) {
|
|
99
99
|
const routesPath = getFileImportRelativePath(
|
|
100
100
|
nextHTTPFile,
|
|
101
|
-
|
|
101
|
+
httpRoutesFile,
|
|
102
102
|
packageMappings
|
|
103
103
|
)
|
|
104
104
|
|
|
105
105
|
const routesMapDeclarationPath = getFileImportRelativePath(
|
|
106
106
|
nextHTTPFile,
|
|
107
|
-
|
|
107
|
+
httpRoutesMapDeclarationFile,
|
|
108
108
|
packageMappings
|
|
109
109
|
)
|
|
110
110
|
|
|
@@ -128,7 +128,7 @@ export const action = async (options: PikkuCLIOptions): Promise<void> => {
|
|
|
128
128
|
)
|
|
129
129
|
const visitState = await inspectorGlob(
|
|
130
130
|
cliConfig.rootDir,
|
|
131
|
-
cliConfig.
|
|
131
|
+
cliConfig.srcDirectories,
|
|
132
132
|
cliConfig.filters
|
|
133
133
|
)
|
|
134
134
|
await pikkuNext(cliConfig, visitState, options)
|
package/bin/pikku-openapi.ts
CHANGED
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
PikkuCLIOptions,
|
|
6
6
|
writeFileInDir,
|
|
7
7
|
} from '../src/utils.js'
|
|
8
|
-
import { generateSchemas } from '../src/schema
|
|
9
|
-
import { generateOpenAPISpec } from '../src/openapi
|
|
8
|
+
import { generateSchemas } from '../src/schema-generator.js'
|
|
9
|
+
import { generateOpenAPISpec } from '../src/openapi-spec-generator.js'
|
|
10
10
|
import { getPikkuCLIConfig, PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
11
11
|
import { InspectorState } from '@pikku/inspector'
|
|
12
12
|
import { stringify } from 'yaml'
|
|
@@ -14,7 +14,7 @@ import { inspectorGlob } from '../src/inspector-glob.js'
|
|
|
14
14
|
|
|
15
15
|
export const pikkuOpenAPI = async (
|
|
16
16
|
{ tsconfig, openAPI }: PikkuCLIConfig,
|
|
17
|
-
{ http }: InspectorState
|
|
17
|
+
{ http, functions }: InspectorState
|
|
18
18
|
) => {
|
|
19
19
|
await logCommandInfoAndTime(
|
|
20
20
|
'Creating OpenAPI spec',
|
|
@@ -24,7 +24,11 @@ export const pikkuOpenAPI = async (
|
|
|
24
24
|
if (!openAPI?.outputFile) {
|
|
25
25
|
throw new Error('openAPI is required')
|
|
26
26
|
}
|
|
27
|
-
const schemas = await generateSchemas(
|
|
27
|
+
const schemas = await generateSchemas(
|
|
28
|
+
tsconfig,
|
|
29
|
+
[http.typesMap, functions.typesMap],
|
|
30
|
+
http.meta
|
|
31
|
+
)
|
|
28
32
|
const openAPISpec = await generateOpenAPISpec(
|
|
29
33
|
http.meta,
|
|
30
34
|
schemas,
|
|
@@ -50,12 +54,12 @@ async function action({ config, tags }: PikkuCLIOptions): Promise<void> {
|
|
|
50
54
|
logPikkuLogo()
|
|
51
55
|
const cliConfig = await getPikkuCLIConfig(
|
|
52
56
|
config,
|
|
53
|
-
['rootDir', '
|
|
57
|
+
['rootDir', 'httpRoutesFile', 'openAPI', 'schemaDirectory', 'tsconfig'],
|
|
54
58
|
tags
|
|
55
59
|
)
|
|
56
60
|
const visitState = await inspectorGlob(
|
|
57
61
|
cliConfig.rootDir,
|
|
58
|
-
cliConfig.
|
|
62
|
+
cliConfig.srcDirectories,
|
|
59
63
|
cliConfig.filters
|
|
60
64
|
)
|
|
61
65
|
await pikkuOpenAPI(cliConfig, visitState)
|
package/bin/pikku-rpc.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PikkuCLIConfig } from '../src/pikku-cli-config.js'
|
|
2
|
+
import { InspectorState } from '@pikku/inspector'
|
|
3
|
+
import { logCommandInfoAndTime, writeFileInDir } from '../src/utils.js'
|
|
4
|
+
|
|
5
|
+
export const pikkuRPC = async (
|
|
6
|
+
cliConfig: PikkuCLIConfig,
|
|
7
|
+
visitState: InspectorState
|
|
8
|
+
) => {
|
|
9
|
+
return await logCommandInfoAndTime(
|
|
10
|
+
'Finding RPCs tasks',
|
|
11
|
+
'Found rpcs',
|
|
12
|
+
[visitState.functions.files.size === 0],
|
|
13
|
+
async () => {
|
|
14
|
+
const { rpcFile } = cliConfig
|
|
15
|
+
const { rpc } = visitState
|
|
16
|
+
await writeFileInDir(
|
|
17
|
+
rpcFile,
|
|
18
|
+
`import { pikkuState } from '@pikku/core'\npikkuState('rpc', 'meta', ${JSON.stringify(rpc.meta, null, 2)})`
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
)
|
|
22
|
+
}
|
package/bin/pikku-scheduler.ts
CHANGED
|
@@ -5,12 +5,10 @@ import {
|
|
|
5
5
|
logCommandInfoAndTime,
|
|
6
6
|
logPikkuLogo,
|
|
7
7
|
PikkuCLIOptions,
|
|
8
|
+
serializeFileImports,
|
|
8
9
|
writeFileInDir,
|
|
9
10
|
} from '../src/utils.js'
|
|
10
|
-
import {
|
|
11
|
-
serializeSchedulerMeta,
|
|
12
|
-
serializeSchedulers,
|
|
13
|
-
} from '../src/scheduler/serialize-schedulers.js'
|
|
11
|
+
import { serializeSchedulerMeta } from '../src/serialize-scheduler-meta.js'
|
|
14
12
|
import { inspectorGlob } from '../src/inspector-glob.js'
|
|
15
13
|
|
|
16
14
|
export const pikkuScheduler = async (
|
|
@@ -22,17 +20,21 @@ export const pikkuScheduler = async (
|
|
|
22
20
|
'Found scheduled tasks',
|
|
23
21
|
[visitState.scheduledTasks.files.size === 0],
|
|
24
22
|
async () => {
|
|
25
|
-
const { schedulersFile, packageMappings } = cliConfig
|
|
23
|
+
const { schedulersFile, schedulersMetaFile, packageMappings } = cliConfig
|
|
26
24
|
const { scheduledTasks } = visitState
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
await writeFileInDir(
|
|
26
|
+
schedulersMetaFile,
|
|
27
|
+
serializeSchedulerMeta(scheduledTasks.meta)
|
|
28
|
+
)
|
|
29
|
+
await writeFileInDir(
|
|
30
|
+
schedulersFile,
|
|
31
|
+
serializeFileImports(
|
|
32
|
+
'addSerializedTasks',
|
|
29
33
|
schedulersFile,
|
|
30
34
|
scheduledTasks.files,
|
|
31
35
|
packageMappings
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
]
|
|
35
|
-
await writeFileInDir(schedulersFile, content.join('\n\n'))
|
|
36
|
+
)
|
|
37
|
+
)
|
|
36
38
|
}
|
|
37
39
|
)
|
|
38
40
|
}
|
|
@@ -42,12 +44,12 @@ async function action(options: PikkuCLIOptions): Promise<void> {
|
|
|
42
44
|
|
|
43
45
|
const cliConfig = await getPikkuCLIConfig(
|
|
44
46
|
options.config,
|
|
45
|
-
['rootDir', '
|
|
47
|
+
['rootDir', 'srcDirectories', 'httpRoutesFile'],
|
|
46
48
|
options.tags
|
|
47
49
|
)
|
|
48
50
|
const visitState = await inspectorGlob(
|
|
49
51
|
cliConfig.rootDir,
|
|
50
|
-
cliConfig.
|
|
52
|
+
cliConfig.srcDirectories,
|
|
51
53
|
cliConfig.filters
|
|
52
54
|
)
|
|
53
55
|
await pikkuScheduler(cliConfig, visitState)
|