@bluelibs/runner-dev 5.3.0 → 6.0.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/AI.md +25 -3
- package/README.md +190 -55
- package/dist/cli/generators/artifact.js +2 -14
- package/dist/cli/generators/artifact.js.map +1 -1
- package/dist/cli/generators/common.d.ts +1 -0
- package/dist/cli/generators/common.js +22 -0
- package/dist/cli/generators/common.js.map +1 -1
- package/dist/cli/generators/printNewHelp.js +2 -2
- package/dist/cli/generators/printNewHelp.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/package.json.d.ts +2 -2
- package/dist/cli/generators/scaffold/templates/package.json.js +2 -2
- package/dist/cli/generators/scaffold/templates/src/main.ts.js +7 -9
- package/dist/cli/generators/scaffold/templates/src/main.ts.js.map +1 -1
- package/dist/cli/generators/scaffold.js +1 -135
- package/dist/cli/generators/scaffold.js.map +1 -1
- package/dist/cli/generators/templates.js +64 -63
- package/dist/cli/generators/templates.js.map +1 -1
- package/dist/generated/resolvers-types.d.ts +376 -144
- package/dist/index.d.ts +39 -43
- package/dist/resources/cli.config.resource.d.ts +1 -1
- package/dist/resources/cli.config.resource.js +2 -2
- package/dist/resources/cli.config.resource.js.map +1 -1
- package/dist/resources/coverage.resource.d.ts +2 -2
- package/dist/resources/coverage.resource.js +3 -3
- package/dist/resources/coverage.resource.js.map +1 -1
- package/dist/resources/dev.resource.d.ts +1 -1
- package/dist/resources/dev.resource.js +2 -2
- package/dist/resources/dev.resource.js.map +1 -1
- package/dist/resources/docs.generator.resource.d.ts +4 -4
- package/dist/resources/docs.generator.resource.js +2 -2
- package/dist/resources/docs.generator.resource.js.map +1 -1
- package/dist/resources/graphql-accumulator.resource.d.ts +2 -2
- package/dist/resources/graphql-accumulator.resource.js +6 -3
- package/dist/resources/graphql-accumulator.resource.js.map +1 -1
- package/dist/resources/graphql.cli.resource.d.ts +1 -1
- package/dist/resources/graphql.cli.resource.js +2 -2
- package/dist/resources/graphql.cli.resource.js.map +1 -1
- package/dist/resources/graphql.query.cli.task.d.ts +14 -16
- package/dist/resources/graphql.query.cli.task.js +3 -3
- package/dist/resources/graphql.query.cli.task.js.map +1 -1
- package/dist/resources/graphql.query.task.d.ts +18 -20
- package/dist/resources/graphql.query.task.js +4 -4
- package/dist/resources/graphql.query.task.js.map +1 -1
- package/dist/resources/http.tag.d.ts +1 -1
- package/dist/resources/http.tag.js +2 -2
- package/dist/resources/http.tag.js.map +1 -1
- package/dist/resources/introspector.cli.resource.d.ts +2 -2
- package/dist/resources/introspector.cli.resource.js +14 -6
- package/dist/resources/introspector.cli.resource.js.map +1 -1
- package/dist/resources/introspector.resource.d.ts +3 -3
- package/dist/resources/introspector.resource.js +4 -5
- package/dist/resources/introspector.resource.js.map +1 -1
- package/dist/resources/live.resource.d.ts +4 -6
- package/dist/resources/live.resource.js +38 -25
- package/dist/resources/live.resource.js.map +1 -1
- package/dist/resources/models/Introspector.d.ts +28 -14
- package/dist/resources/models/Introspector.js +334 -161
- package/dist/resources/models/Introspector.js.map +1 -1
- package/dist/resources/models/durable.runtime.js +36 -10
- package/dist/resources/models/durable.runtime.js.map +1 -1
- package/dist/resources/models/durable.tools.d.ts +1 -1
- package/dist/resources/models/durable.tools.js +6 -3
- package/dist/resources/models/durable.tools.js.map +1 -1
- package/dist/resources/models/initializeFromStore.js +54 -21
- package/dist/resources/models/initializeFromStore.js.map +1 -1
- package/dist/resources/models/initializeFromStore.utils.d.ts +7 -6
- package/dist/resources/models/initializeFromStore.utils.js +302 -25
- package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
- package/dist/resources/models/introspector.tools.js +18 -6
- package/dist/resources/models/introspector.tools.js.map +1 -1
- package/dist/resources/routeHandlers/getDocsData.d.ts +4 -0
- package/dist/resources/routeHandlers/getDocsData.js +28 -0
- package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +26 -25
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +10 -9
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
- package/dist/resources/server.resource.d.ts +20 -22
- package/dist/resources/server.resource.js +6 -6
- package/dist/resources/server.resource.js.map +1 -1
- package/dist/resources/swap.cli.resource.d.ts +4 -4
- package/dist/resources/swap.cli.resource.js +2 -2
- package/dist/resources/swap.cli.resource.js.map +1 -1
- package/dist/resources/swap.resource.d.ts +7 -7
- package/dist/resources/swap.resource.js +188 -38
- package/dist/resources/swap.resource.js.map +1 -1
- package/dist/resources/swap.tools.d.ts +3 -2
- package/dist/resources/swap.tools.js +27 -27
- package/dist/resources/swap.tools.js.map +1 -1
- package/dist/resources/telemetry.resource.d.ts +1 -1
- package/dist/resources/telemetry.resource.js +46 -43
- package/dist/resources/telemetry.resource.js.map +1 -1
- package/dist/runner-compat.d.ts +85 -0
- package/dist/runner-compat.js +178 -0
- package/dist/runner-compat.js.map +1 -0
- package/dist/runner-node-compat.d.ts +2 -0
- package/dist/runner-node-compat.js +28 -0
- package/dist/runner-node-compat.js.map +1 -0
- package/dist/schema/index.js +4 -8
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/model.d.ts +80 -23
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/query.js +2 -1
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/types/AllType.js +6 -3
- package/dist/schema/types/AllType.js.map +1 -1
- package/dist/schema/types/BaseElementCommon.js +2 -2
- package/dist/schema/types/ErrorType.js +1 -1
- package/dist/schema/types/ErrorType.js.map +1 -1
- package/dist/schema/types/EventType.js +19 -2
- package/dist/schema/types/EventType.js.map +1 -1
- package/dist/schema/types/LaneSummaryTypes.d.ts +3 -0
- package/dist/schema/types/LaneSummaryTypes.js +19 -0
- package/dist/schema/types/LaneSummaryTypes.js.map +1 -0
- package/dist/schema/types/LiveType.js +67 -0
- package/dist/schema/types/LiveType.js.map +1 -1
- package/dist/schema/types/ResourceType.js +100 -19
- package/dist/schema/types/ResourceType.js.map +1 -1
- package/dist/schema/types/RunOptionsType.js +41 -5
- package/dist/schema/types/RunOptionsType.js.map +1 -1
- package/dist/schema/types/TagType.js +35 -4
- package/dist/schema/types/TagType.js.map +1 -1
- package/dist/schema/types/TaskType.js +5 -0
- package/dist/schema/types/TaskType.js.map +1 -1
- package/dist/schema/types/index.d.ts +2 -2
- package/dist/schema/types/index.js +6 -7
- package/dist/schema/types/index.js.map +1 -1
- package/dist/schema/types/middleware/common.d.ts +3 -2
- package/dist/schema/types/middleware/common.js +19 -13
- package/dist/schema/types/middleware/common.js.map +1 -1
- package/dist/ui/.vite/manifest.json +2 -2
- package/dist/ui/assets/docs-Btkv97Ls.js +302 -0
- package/dist/ui/assets/docs-Btkv97Ls.js.map +1 -0
- package/dist/ui/assets/docs-CipvKUxZ.css +1 -0
- package/dist/utils/lane-resources.d.ts +55 -0
- package/dist/utils/lane-resources.js +143 -0
- package/dist/utils/lane-resources.js.map +1 -0
- package/dist/utils/zod.js +36 -3
- package/dist/utils/zod.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/readmes/runner-AI.md +740 -0
- package/readmes/runner-durable-workflows.md +2247 -0
- package/readmes/runner-full-guide.md +5869 -0
- package/readmes/runner-remote-lanes.md +909 -0
- package/dist/ui/assets/docs-BhRuaJ5l.css +0 -1
- package/dist/ui/assets/docs-H4oDZj7p.js +0 -302
- package/dist/ui/assets/docs-H4oDZj7p.js.map +0 -1
|
@@ -32,141 +32,7 @@ const initUtils_1 = require("./initUtils");
|
|
|
32
32
|
const templates = __importStar(require("./scaffold/templates"));
|
|
33
33
|
async function scaffold(opts) {
|
|
34
34
|
const { targetDir, projectName } = opts;
|
|
35
|
-
//
|
|
36
|
-
const _pkg = {
|
|
37
|
-
name: projectName,
|
|
38
|
-
version: "0.1.0",
|
|
39
|
-
private: true,
|
|
40
|
-
type: "module",
|
|
41
|
-
scripts: {
|
|
42
|
-
dev: "tsx watch src/main.ts",
|
|
43
|
-
start: "node --enable-source-maps dist/main.js",
|
|
44
|
-
build: "tsc -p tsconfig.json",
|
|
45
|
-
test: "jest",
|
|
46
|
-
"test:watch": "jest --watch",
|
|
47
|
-
"schema:sdl": "runner-dev schema sdl",
|
|
48
|
-
},
|
|
49
|
-
dependencies: {
|
|
50
|
-
"@bluelibs/runner": "^5.2.0",
|
|
51
|
-
},
|
|
52
|
-
devDependencies: {
|
|
53
|
-
"@bluelibs/runner-dev": "^5.0.0",
|
|
54
|
-
typescript: "^5.6.3",
|
|
55
|
-
tsx: "^4.19.2",
|
|
56
|
-
jest: "^29.7.0",
|
|
57
|
-
"ts-jest": "^29.1.1",
|
|
58
|
-
"@types/jest": "^29.5.12",
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
const _tsconfig = {
|
|
62
|
-
compilerOptions: {
|
|
63
|
-
target: "ESNext",
|
|
64
|
-
module: "Node16",
|
|
65
|
-
moduleResolution: "node16",
|
|
66
|
-
strict: true,
|
|
67
|
-
esModuleInterop: true,
|
|
68
|
-
forceConsistentCasingInFileNames: true,
|
|
69
|
-
declaration: true,
|
|
70
|
-
outDir: "dist",
|
|
71
|
-
rootDir: "src",
|
|
72
|
-
skipLibCheck: true,
|
|
73
|
-
resolveJsonModule: true,
|
|
74
|
-
lib: ["ESNext"],
|
|
75
|
-
},
|
|
76
|
-
include: ["src"],
|
|
77
|
-
};
|
|
78
|
-
const _jestConfig = `/** @type {import('jest').Config} */
|
|
79
|
-
module.exports = {
|
|
80
|
-
preset: 'ts-jest/presets/default-esm',
|
|
81
|
-
testEnvironment: 'node',
|
|
82
|
-
roots: ['<rootDir>/src'],
|
|
83
|
-
moduleFileExtensions: ['ts', 'tsx', 'js'],
|
|
84
|
-
extensionsToTreatAsEsm: ['.ts', '.tsx'],
|
|
85
|
-
transform: {
|
|
86
|
-
'^.+\\.(ts|tsx)$': [
|
|
87
|
-
'ts-jest',
|
|
88
|
-
{
|
|
89
|
-
useESM: true,
|
|
90
|
-
tsconfig: 'tsconfig.jest.json',
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
`;
|
|
96
|
-
const _tsconfigJest = {
|
|
97
|
-
extends: "./tsconfig.json",
|
|
98
|
-
compilerOptions: {
|
|
99
|
-
module: "CommonJS",
|
|
100
|
-
moduleResolution: "node",
|
|
101
|
-
target: "ES2019",
|
|
102
|
-
esModuleInterop: true,
|
|
103
|
-
isolatedModules: false,
|
|
104
|
-
},
|
|
105
|
-
include: ["src/**/*.ts", "src/**/*.tsx"],
|
|
106
|
-
};
|
|
107
|
-
const _mainTs = `
|
|
108
|
-
import { run, resource } from '@bluelibs/runner';
|
|
109
|
-
import { dev } from '@bluelibs/runner-dev';
|
|
110
|
-
|
|
111
|
-
// Minimal Runner app using runner-dev's dev resource
|
|
112
|
-
const app = resource({
|
|
113
|
-
id: 'app.${projectName}',
|
|
114
|
-
register: [
|
|
115
|
-
dev.with({ port: 1337 }),
|
|
116
|
-
],
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
run(app)
|
|
120
|
-
.then(() => {
|
|
121
|
-
// eslint-disable-next-line no-console
|
|
122
|
-
console.log('Runner app started on http://localhost:1337');
|
|
123
|
-
})
|
|
124
|
-
.catch((err) => {
|
|
125
|
-
// eslint-disable-next-line no-console
|
|
126
|
-
console.error(err);
|
|
127
|
-
process.exit(1);
|
|
128
|
-
});
|
|
129
|
-
`;
|
|
130
|
-
const _exampleTest = `describe('smoke', () => {
|
|
131
|
-
it('works', () => {
|
|
132
|
-
expect(1 + 1).toBe(2);
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
`;
|
|
136
|
-
const _readme = `# ${projectName}
|
|
137
|
-
|
|
138
|
-
Generated by \`runner-dev new\`.
|
|
139
|
-
|
|
140
|
-
## Quick start
|
|
141
|
-
|
|
142
|
-
1. Install dependencies:
|
|
143
|
-
- npm install
|
|
144
|
-
2. Start the dev server:
|
|
145
|
-
- npm run dev
|
|
146
|
-
|
|
147
|
-
The server starts on http://localhost:1337
|
|
148
|
-
|
|
149
|
-
- GraphQL endpoint: http://localhost:1337/graphql (how to query your guts and live telemetry)
|
|
150
|
-
- Voyager UI: http://localhost:1337/voyager (how the guts of your app look like)
|
|
151
|
-
- Project docs: http://localhost:1337/docs (beautiful docs with live telemetry and easy task and event dispatching)
|
|
152
|
-
|
|
153
|
-
## Scripts
|
|
154
|
-
|
|
155
|
-
- dev: Run with tsx watch (TypeScript ESM)
|
|
156
|
-
- build: Type-check and emit to dist
|
|
157
|
-
- start: Run built app
|
|
158
|
-
- test: Run Jest
|
|
159
|
-
|
|
160
|
-
## Useful CLI commands
|
|
161
|
-
|
|
162
|
-
These commands are available from \`@bluelibs/runner-dev\`:
|
|
163
|
-
|
|
164
|
-
- Query your API:
|
|
165
|
-
- ENDPOINT=http://localhost:1337/graphql npx runner-dev query 'query { tasks { id } }' --format pretty
|
|
166
|
-
- Print the GraphQL schema SDL:
|
|
167
|
-
- npx runner-dev schema sdl --endpoint http://localhost:1337/graphql
|
|
168
|
-
|
|
169
|
-
`;
|
|
35
|
+
// Generation is fully delegated to templates.*
|
|
170
36
|
// Use template renderers
|
|
171
37
|
await (0, initUtils_1.writeJson)(path_1.default.join(targetDir, "package.json"), templates.packageJson(projectName));
|
|
172
38
|
await (0, initUtils_1.writeJson)(path_1.default.join(targetDir, "tsconfig.json"), templates.tsconfig());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/generators/scaffold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/generators/scaffold.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,4BAkCC;AA3CD,gDAAwB;AACxB,2CAA8E;AAC9E,gEAAkD;AAO3C,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAExC,+CAA+C;IAE/C,yBAAyB;IACzB,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CACnC,CAAC;IACF,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EACvC,SAAS,CAAC,UAAU,EAAE,CACvB,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAC1C,SAAS,CAAC,YAAY,EAAE,CACzB,CAAC;IAEF,MAAM,IAAA,qBAAS,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EACtC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,EAC3C,SAAS,CAAC,QAAQ,EAAE,CACrB,CAAC;IACF,MAAM,IAAA,qBAAS,EACb,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;IACF,MAAM,IAAA,0BAAc,EAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -9,7 +9,7 @@ exports.taskMiddlewareTemplate = taskMiddlewareTemplate;
|
|
|
9
9
|
exports.resourceMiddlewareTemplate = resourceMiddlewareTemplate;
|
|
10
10
|
function resourceTemplate({ header, id, camel, pascal, }) {
|
|
11
11
|
return `${header}
|
|
12
|
-
import {
|
|
12
|
+
import { r } from '@bluelibs/runner';
|
|
13
13
|
|
|
14
14
|
export interface ${pascal}Config {
|
|
15
15
|
// Add your config shape here
|
|
@@ -19,25 +19,25 @@ export interface ${pascal}Value {
|
|
|
19
19
|
// The resource value (what init returns)
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export const ${camel} =
|
|
23
|
-
|
|
24
|
-
meta
|
|
22
|
+
export const ${camel} = r
|
|
23
|
+
.resource<${pascal}Config>('${id}')
|
|
24
|
+
.meta({
|
|
25
25
|
title: '${pascal} Resource',
|
|
26
26
|
description: 'TODO: Add description for ${pascal} resource',
|
|
27
|
-
}
|
|
28
|
-
// tags
|
|
29
|
-
// dependencies
|
|
30
|
-
init
|
|
27
|
+
})
|
|
28
|
+
// .tags([])
|
|
29
|
+
// .dependencies({ /* other resources */ })
|
|
30
|
+
.init(async (config, deps): Promise<${pascal}Value> => {
|
|
31
31
|
// Initialize and return the resource value
|
|
32
32
|
return {} as ${pascal}Value;
|
|
33
|
-
}
|
|
34
|
-
// dispose
|
|
35
|
-
|
|
33
|
+
})
|
|
34
|
+
// .dispose(async (value, config, deps) => { /* clean up */ })
|
|
35
|
+
.build();
|
|
36
36
|
`;
|
|
37
37
|
}
|
|
38
38
|
function taskTemplate({ header, id, camel, pascal, }) {
|
|
39
39
|
return `${header}
|
|
40
|
-
import {
|
|
40
|
+
import { r } from '@bluelibs/runner';
|
|
41
41
|
|
|
42
42
|
export interface ${pascal}Input {
|
|
43
43
|
// Define input fields
|
|
@@ -47,65 +47,65 @@ export interface ${pascal}Result {
|
|
|
47
47
|
// Define result fields
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export const ${camel} =
|
|
51
|
-
|
|
52
|
-
meta
|
|
50
|
+
export const ${camel} = r
|
|
51
|
+
.task<${pascal}Input>('${id}')
|
|
52
|
+
.meta({
|
|
53
53
|
title: '${pascal} Task',
|
|
54
54
|
description: 'TODO: Add description for ${pascal} task',
|
|
55
|
-
}
|
|
56
|
-
// middleware
|
|
57
|
-
// dependencies
|
|
58
|
-
run
|
|
55
|
+
})
|
|
56
|
+
// .middleware([])
|
|
57
|
+
// .dependencies({ /* resources */ })
|
|
58
|
+
.run(async (_input, deps): Promise<${pascal}Result> => {
|
|
59
59
|
return {} as ${pascal}Result;
|
|
60
|
-
}
|
|
61
|
-
// inputSchema
|
|
62
|
-
// resultSchema
|
|
63
|
-
|
|
60
|
+
})
|
|
61
|
+
// .inputSchema(...)
|
|
62
|
+
// .resultSchema(...)
|
|
63
|
+
.build();
|
|
64
64
|
`;
|
|
65
65
|
}
|
|
66
66
|
function eventTemplate({ header, id, camel, pascal, }) {
|
|
67
67
|
return `${header}
|
|
68
|
-
import {
|
|
68
|
+
import { r } from '@bluelibs/runner';
|
|
69
69
|
|
|
70
70
|
export interface ${pascal}Payload {
|
|
71
71
|
// Define event payload
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export const ${camel} =
|
|
75
|
-
|
|
76
|
-
meta
|
|
74
|
+
export const ${camel} = r
|
|
75
|
+
.event<${pascal}Payload>('${id}')
|
|
76
|
+
.meta({
|
|
77
77
|
title: '${pascal} Event',
|
|
78
78
|
description: 'TODO: Add description for ${pascal} event',
|
|
79
|
-
}
|
|
80
|
-
// tags
|
|
81
|
-
|
|
79
|
+
})
|
|
80
|
+
// .tags([])
|
|
81
|
+
.build();
|
|
82
82
|
`;
|
|
83
83
|
}
|
|
84
84
|
function hookTemplate({ header, id, camel, pascal, }) {
|
|
85
85
|
return `${header}
|
|
86
|
-
import {
|
|
86
|
+
import { r } from '@bluelibs/runner';
|
|
87
87
|
|
|
88
88
|
export interface ${pascal}Payload {
|
|
89
89
|
// The payload delivered to the hook from the event
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
export const ${camel} =
|
|
93
|
-
|
|
94
|
-
meta
|
|
92
|
+
export const ${camel} = r
|
|
93
|
+
.hook('${id}')
|
|
94
|
+
.meta({
|
|
95
95
|
title: '${pascal} Hook',
|
|
96
96
|
description: 'TODO: Add description for ${pascal} hook',
|
|
97
|
-
}
|
|
98
|
-
// on
|
|
99
|
-
// dependencies
|
|
100
|
-
run
|
|
97
|
+
})
|
|
98
|
+
// .on(someEvent) // import your event and set it here
|
|
99
|
+
// .dependencies({ /* resources */ })
|
|
100
|
+
.run(async (event, deps) => {
|
|
101
101
|
// Implement hook reaction logic
|
|
102
|
-
}
|
|
103
|
-
|
|
102
|
+
})
|
|
103
|
+
.build();
|
|
104
104
|
`;
|
|
105
105
|
}
|
|
106
106
|
function tagTemplate({ header, id, camel, pascal, }) {
|
|
107
107
|
return `${header}
|
|
108
|
-
import {
|
|
108
|
+
import { r } from '@bluelibs/runner';
|
|
109
109
|
|
|
110
110
|
export interface ${pascal}Config {
|
|
111
111
|
// Optional config carried by the tag (available via extract())
|
|
@@ -119,18 +119,18 @@ export interface ${pascal}ResultContract {
|
|
|
119
119
|
// Optional contract for results
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export const ${camel} =
|
|
123
|
-
|
|
124
|
-
meta
|
|
122
|
+
export const ${camel} = r
|
|
123
|
+
.tag<${pascal}Config, ${pascal}InputContract, ${pascal}ResultContract>('${id}')
|
|
124
|
+
.meta({
|
|
125
125
|
title: '${pascal} Tag',
|
|
126
126
|
description: 'TODO: Add description for ${pascal} tag',
|
|
127
|
-
}
|
|
128
|
-
|
|
127
|
+
})
|
|
128
|
+
.build();
|
|
129
129
|
`;
|
|
130
130
|
}
|
|
131
131
|
function taskMiddlewareTemplate({ header, id, camel, pascal, }) {
|
|
132
132
|
return `${header}
|
|
133
|
-
import {
|
|
133
|
+
import { r } from '@bluelibs/runner';
|
|
134
134
|
|
|
135
135
|
export interface ${pascal}Config {
|
|
136
136
|
// Configuration passed via .with({ ... })
|
|
@@ -144,42 +144,43 @@ export interface ${pascal}Output {
|
|
|
144
144
|
// The task output after middleware
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
export const ${camel} =
|
|
148
|
-
|
|
149
|
-
meta
|
|
147
|
+
export const ${camel} = r
|
|
148
|
+
.taskMiddleware<${pascal}Config, ${pascal}Input, ${pascal}Output>('${id}')
|
|
149
|
+
.meta({
|
|
150
150
|
title: '${pascal} Task Middleware',
|
|
151
151
|
description: 'TODO: Add description for ${pascal} task middleware',
|
|
152
|
-
}
|
|
153
|
-
//
|
|
154
|
-
|
|
152
|
+
})
|
|
153
|
+
// Auto-apply globally via resource.subtree({ tasks: { middleware: [${camel}] } })
|
|
154
|
+
// or intercept executions with globals.resources.taskRunner.intercept(...).
|
|
155
|
+
.run(async ({ task, next }, deps, config) => {
|
|
155
156
|
// pre-process task.input
|
|
156
157
|
const result = await next(task.input as ${pascal}Input);
|
|
157
158
|
// post-process result
|
|
158
159
|
return result as ${pascal}Output;
|
|
159
|
-
}
|
|
160
|
-
|
|
160
|
+
})
|
|
161
|
+
.build();
|
|
161
162
|
`;
|
|
162
163
|
}
|
|
163
164
|
function resourceMiddlewareTemplate({ header, id, camel, pascal, }) {
|
|
164
165
|
return `${header}
|
|
165
|
-
import {
|
|
166
|
+
import { r } from '@bluelibs/runner';
|
|
166
167
|
|
|
167
168
|
export interface ${pascal}Config {
|
|
168
169
|
// Configuration passed via .with({ ... })
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
export const ${camel} =
|
|
172
|
-
|
|
173
|
-
meta
|
|
172
|
+
export const ${camel} = r
|
|
173
|
+
.resourceMiddleware<${pascal}Config>('${id}')
|
|
174
|
+
.meta({
|
|
174
175
|
title: '${pascal} Resource Middleware',
|
|
175
176
|
description: 'TODO: Add description for ${pascal} resource middleware',
|
|
176
|
-
}
|
|
177
|
-
run
|
|
177
|
+
})
|
|
178
|
+
.run(async ({ next }, deps, config) => {
|
|
178
179
|
const value = await next();
|
|
179
180
|
// Wrap or augment the resource value here
|
|
180
181
|
return value;
|
|
181
|
-
}
|
|
182
|
-
|
|
182
|
+
})
|
|
183
|
+
.build();
|
|
183
184
|
`;
|
|
184
185
|
}
|
|
185
186
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/cli/generators/templates.ts"],"names":[],"mappings":";;AAOA,4CAgCC;AAED,oCAgCC;AAED,sCAsBC;AAED,oCA0BC;AAED,kCA6BC;AAED,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/cli/generators/templates.ts"],"names":[],"mappings":";;AAOA,4CAgCC;AAED,oCAgCC;AAED,sCAsBC;AAED,oCA0BC;AAED,kCA6BC;AAED,wDAqCC;AAED,gEA0BC;AAxND,SAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;mBAIN,MAAM;;;;eAIV,KAAK;cACN,MAAM,YAAY,EAAE;;cAEpB,MAAM;8CAC0B,MAAM;;;;wCAIZ,MAAM;;mBAE3B,MAAM;;;;CAIxB,CAAC;AACF,CAAC;AAED,SAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;mBAIN,MAAM;;;;eAIV,KAAK;UACV,MAAM,WAAW,EAAE;;cAEf,MAAM;8CAC0B,MAAM;;;;uCAIb,MAAM;mBAC1B,MAAM;;;;;CAKxB,CAAC;AACF,CAAC;AAED,SAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;eAIV,KAAK;WACT,MAAM,aAAa,EAAE;;cAElB,MAAM;8CAC0B,MAAM;;;;CAInD,CAAC;AACF,CAAC;AAED,SAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;eAIV,KAAK;WACT,EAAE;;cAEC,MAAM;8CAC0B,MAAM;;;;;;;;CAQnD,CAAC;AACF,CAAC;AAED,SAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;mBAIN,MAAM;;;;mBAIN,MAAM;;;;eAIV,KAAK;SACX,MAAM,WAAW,MAAM,kBAAkB,MAAM,oBAAoB,EAAE;;cAEhE,MAAM;8CAC0B,MAAM;;;CAGnD,CAAC;AACF,CAAC;AAED,SAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;mBAIN,MAAM;;;;mBAIN,MAAM;;;;eAIV,KAAK;oBACA,MAAM,WAAW,MAAM,UAAU,MAAM,YAAY,EAAE;;cAE3D,MAAM;8CAC0B,MAAM;;wEAEoB,KAAK;;;;8CAI/B,MAAM;;uBAE7B,MAAM;;;CAG5B,CAAC;AACF,CAAC;AAED,SAAgB,0BAA0B,CAAC,EACzC,MAAM,EACN,EAAE,EACF,KAAK,EACL,MAAM,GACS;IACf,OAAO,GAAG,MAAM;;;mBAGC,MAAM;;;;eAIV,KAAK;wBACI,MAAM,YAAY,EAAE;;cAE9B,MAAM;8CAC0B,MAAM;;;;;;;;CAQnD,CAAC;AACF,CAAC"}
|