@bluelibs/runner-dev 6.0.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/README.md CHANGED
@@ -22,18 +22,20 @@ npx @bluelibs/runner-dev
22
22
  ```
23
23
 
24
24
  ```ts
25
+ import { r } from "@bluelibs/runner";
25
26
  import { dev } from "@bluelibs/runner-dev";
26
27
 
27
- const app = resource({
28
- register: [
28
+ const app = r
29
+ .resource("app")
30
+ .register([
29
31
  // your resources,
30
32
  dev, // if you are fine with defaults or
31
33
  dev.with({
32
34
  port: 1337, // default,
33
35
  maxEntries: 10000, // how many logs to keep in the store.
34
36
  }),
35
- ],
36
- });
37
+ ])
38
+ .build();
37
39
  ```
38
40
 
39
41
  ## What you get
@@ -85,20 +87,20 @@ const app = resource({
85
87
  Register the Dev resources in your Runner root:
86
88
 
87
89
  ```ts
88
- import { resource } from "@bluelibs/runner";
90
+ import { r } from "@bluelibs/runner";
89
91
  import { dev } from "@bluelibs/runner-dev";
90
92
 
91
- export const app = resource({
92
- id: "app",
93
- register: [
93
+ export const app = r
94
+ .resource("app")
95
+ .register([
94
96
  // You can omit .with() if you are fine with defaults.
95
97
  dev.with({
96
98
  port: 1337, // default
97
99
  maxEntries: 1000, // default
98
100
  }),
99
101
  // rest of your app.
100
- ],
101
- });
102
+ ])
103
+ .build();
102
104
  ```
103
105
 
104
106
  ### Accessing the UI
@@ -224,15 +226,15 @@ runner-dev new resource-middleware soft-delete --ns app --dir src --export
224
226
 
225
227
  Flags for artifact scaffolding:
226
228
 
227
- - `--ns` / `--namespace`: namespace used when generating the id (default: `app`)
228
- - `--id <id>`: explicit id override (for example: `app.tasks.save`)
229
+ - `--ns` / `--namespace`: namespace used for folders only, mapped to `<dir>/<ns>/<type>` (default: `app`)
230
+ - `--id <id>`: explicit local id override (for example: `save-user`)
229
231
  - `--dir <dir>`: base directory under which files are created (default: `src`)
230
232
  - `--export`: append a re-export to an `index.ts` in the target folder for better auto-import UX
231
233
  - `--dry` / `--dry-run`: print the generated file without writing it
232
234
 
233
235
  Conventions:
234
236
 
235
- - Generated ids follow: `<namespace>.(resources|tasks|events|tags|task-middleware|resource-middleware).<kebab-name>`
237
+ - Generated ids are local ids only and default to the kebab-cased artifact name
236
238
  - Folders:
237
239
  - resources: `src/resources`
238
240
  - tasks: `src/tasks`
@@ -654,42 +656,40 @@ All Dev UI modals (code viewer, execute, trace view, log details, stats overlay)
654
656
  - Define an event:
655
657
 
656
658
  ```ts
657
- import { event } from "@bluelibs/runner";
659
+ import { r } from "@bluelibs/runner";
658
660
 
659
- export const userCreated = event<{ id: string; name: string }>({
660
- id: "evt.user.created",
661
- });
661
+ export const userCreated = r.event<{ id: string; name: string }>("userCreated").build();
662
662
  ```
663
663
 
664
664
  - Use it in a task:
665
665
 
666
666
  ```ts
667
- import { task } from "@bluelibs/runner";
667
+ import { r } from "@bluelibs/runner";
668
668
  import { userCreated } from "./events";
669
669
 
670
- export const createUser = task({
671
- id: "task.user.create",
672
- dependencies: { userCreated },
673
- async run(input: { name: string }, { userCreated }) {
670
+ export const createUser = r
671
+ .task<{ name: string }>("createUser")
672
+ .dependencies({ userCreated })
673
+ .run(async (input, { userCreated }) => {
674
674
  const id = crypto.randomUUID();
675
675
  await userCreated({ id, name: input.name });
676
676
  return { id };
677
- },
678
- });
677
+ })
678
+ .build();
679
679
  ```
680
680
 
681
681
  - Emit logs:
682
682
 
683
683
  ```ts
684
- import { globals, task } from "@bluelibs/runner";
684
+ import { globals, r } from "@bluelibs/runner";
685
685
 
686
- export const logSomething = task({
687
- id: "task.log",
688
- dependencies: { logger: globals.resources.logger },
689
- async run(_i, { logger }) {
686
+ export const logSomething = r
687
+ .task("logSomething")
688
+ .dependencies({ logger: globals.resources.logger })
689
+ .run(async (_i, { logger }) => {
690
690
  logger.info("Hello world!");
691
- },
692
- });
691
+ })
692
+ .build();
693
693
  ```
694
694
 
695
695
  ## Notes on Overrides
@@ -726,12 +726,12 @@ The hot-swapping system enables:
726
726
  Add the swap manager to your app:
727
727
 
728
728
  ```ts
729
- import { resource } from "@bluelibs/runner";
729
+ import { r } from "@bluelibs/runner";
730
730
  import { resources as dev } from "@bluelibs/runner-dev";
731
731
 
732
- export const app = resource({
733
- id: "app",
734
- register: [
732
+ export const app = r
733
+ .resource("app")
734
+ .register([
735
735
  // Core dev resources
736
736
  dev.live,
737
737
  dev.introspector,
@@ -741,8 +741,8 @@ export const app = resource({
741
741
 
742
742
  // GraphQL server with swap mutations
743
743
  dev.server.with({ port: 1337 }),
744
- ],
745
- });
744
+ ])
745
+ .build();
746
746
  ```
747
747
 
748
748
  ### GraphQL API
@@ -14,20 +14,8 @@ async function scaffoldArtifact({ kind, name, namespace, baseDir, dryRun = false
14
14
  const kebab = (0, common_1.toKebabCase)(name);
15
15
  const camel = (0, common_1.toCamelCase)(name);
16
16
  const pascal = (0, common_1.toPascalCase)(name);
17
- const id = explicitId ||
18
- `${namespace}.${kind === "resource"
19
- ? "resources"
20
- : kind === "task"
21
- ? "tasks"
22
- : kind === "event"
23
- ? "events"
24
- : kind === "hook"
25
- ? "hooks"
26
- : kind === "tag"
27
- ? "tags"
28
- : kind === "task-middleware" || kind === "resource-middleware"
29
- ? "middleware"
30
- : kind}.${kebab}`;
17
+ const id = explicitId || kebab;
18
+ (0, common_1.validateLocalId)(id);
31
19
  // Build directory as: <baseDir>/<namespace segments>/<type-collection>
32
20
  const nsSegments = namespace
33
21
  .split(".")
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../../src/cli/generators/artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../../src/cli/generators/artifact.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@ export type ArtifactKind = "project" | "resource" | "task" | "event" | "hook" |
2
2
  export declare function toKebabCase(input: string): string;
3
3
  export declare function toCamelCase(input: string): string;
4
4
  export declare function toPascalCase(input: string): string;
5
+ export declare function validateLocalId(id: string): void;
@@ -3,6 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toKebabCase = toKebabCase;
4
4
  exports.toCamelCase = toCamelCase;
5
5
  exports.toPascalCase = toPascalCase;
6
+ exports.validateLocalId = validateLocalId;
7
+ const RESERVED_LOCAL_IDS = new Set([
8
+ "tasks",
9
+ "resources",
10
+ "events",
11
+ "hooks",
12
+ "tags",
13
+ "errors",
14
+ "asyncContexts",
15
+ ]);
6
16
  function toKebabCase(input) {
7
17
  return input
8
18
  .replace(/([a-z])([A-Z])/g, "$1-$2")
@@ -21,4 +31,16 @@ function toPascalCase(input) {
21
31
  const s = toCamelCase(input);
22
32
  return s.charAt(0).toUpperCase() + s.slice(1);
23
33
  }
34
+ function validateLocalId(id) {
35
+ const trimmedId = id.trim();
36
+ if (!trimmedId) {
37
+ throw new Error("Definition id cannot be empty.");
38
+ }
39
+ if (trimmedId.includes(".")) {
40
+ throw new Error(`Definition id "${trimmedId}" is invalid. Use a local id without dots, for example "create-user".`);
41
+ }
42
+ if (RESERVED_LOCAL_IDS.has(trimmedId)) {
43
+ throw new Error(`Definition id "${trimmedId}" is reserved. Choose a different local id.`);
44
+ }
45
+ }
24
46
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/cli/generators/common.ts"],"names":[],"mappings":";;AAUA,kCAMC;AAED,kCAMC;AAED,oCAGC;AAnBD,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACrE,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,IAAI,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/cli/generators/common.ts"],"names":[],"mappings":";;AAoBA,kCAMC;AAED,kCAMC;AAED,oCAGC;AAED,0CAkBC;AAjDD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,OAAO;IACP,WAAW;IACX,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;IACR,eAAe;CAChB,CAAC,CAAC;AAEH,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACrE,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,IAAI,MAAM,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,eAAe,CAAC,EAAU;IACxC,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,uEAAuE,CACnG,CAAC;IACJ,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,6CAA6C,CACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -37,9 +37,9 @@ function printNewHelp() {
37
37
  [format_1.c.yellow("--run-tests"), "Run 'npm test' after project scaffold"],
38
38
  [
39
39
  format_1.c.yellow("--ns=<namespace>"),
40
- "Namespace for id (default: app). Also maps to path as <dir>/<ns>/<type>.",
40
+ "Namespace for folders (default: app). Maps to <dir>/<ns>/<type>.",
41
41
  ],
42
- [format_1.c.yellow("--id=<id>"), "Explicit id override (ex: app.tasks.save)"],
42
+ [format_1.c.yellow("--id=<id>"), "Explicit local id override (ex: save-user)"],
43
43
  [format_1.c.yellow("--dir=<dir>"), "Base directory (default: src)"],
44
44
  [format_1.c.yellow("--export"), "Append export to <dir>/.../index.ts"],
45
45
  [format_1.c.yellow("--dry"), "Print file to stdout, do not write"],
@@ -1 +1 @@
1
- {"version":3,"file":"printNewHelp.js","sourceRoot":"","sources":["../../../src/cli/generators/printNewHelp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"printNewHelp.js","sourceRoot":"","sources":["../../../src/cli/generators/printNewHelp.ts"],"names":[],"mappings":"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"}
@@ -2,21 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mainTs = mainTs;
4
4
  function mainTs(projectName) {
5
- return `import { run, resource } from '@bluelibs/runner';
5
+ return `import { r, run } from '@bluelibs/runner';
6
6
  import { dev } from '@bluelibs/runner-dev';
7
7
 
8
8
  // Minimal Runner app using runner-dev's dev resource
9
- const app = resource({
10
- id: 'app.${projectName}',
11
- register: [
9
+ const app = r.resource('${projectName}')
10
+ .register([
12
11
  dev.with({ port: 1337 }),
13
- ],
14
- });
12
+ ])
13
+ .build();
15
14
 
16
15
  run(app)
17
- .then(() => {
18
- // eslint-disable-next-line no-console
19
- console.log('Runner app started on http://localhost:1337');
16
+ .then(({ logger }) => {
17
+ logger.info('Runner app started on http://localhost:1337');
20
18
  })
21
19
  .catch((err) => {
22
20
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"main.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.ts.ts"],"names":[],"mappings":";;AAAA,wBAuBC;AAvBD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO;;;;;aAKI,WAAW;;;;;;;;;;;;;;;;CAgBvB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"main.ts.js","sourceRoot":"","sources":["../../../../../../src/cli/generators/scaffold/templates/src/main.ts.ts"],"names":[],"mappings":";;AAAA,wBAqBC;AArBD,SAAgB,MAAM,CAAC,WAAmB;IACxC,OAAO;;;;0BAIiB,WAAW;;;;;;;;;;;;;;;CAepC,CAAC;AACF,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 { resource } from '@bluelibs/runner';
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} = resource({
23
- id: '${id}',
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: { /* other resources */ },
30
- init: async (config: ${pascal}Config, deps): Promise<${pascal}Value> => {
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: async (value, config, deps) => { /* clean up */ },
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 { task } from '@bluelibs/runner';
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} = task({
51
- id: '${id}',
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: { /* resources */ },
58
- run: async (_input: ${pascal}Input, deps): Promise<${pascal}Result> => {
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 { event } from '@bluelibs/runner';
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} = event<${pascal}Payload>({
75
- id: '${id}',
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 { hook } from '@bluelibs/runner';
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} = hook({
93
- id: '${id}',
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: someEvent, // import your event and set it here
99
- // dependencies: { /* resources */ },
100
- run: async (event, deps) => {
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 { tag } from '@bluelibs/runner';
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} = tag<${pascal}Config, ${pascal}InputContract, ${pascal}ResultContract>({
123
- id: '${id}',
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 { taskMiddleware } from '@bluelibs/runner';
133
+ import { r } from '@bluelibs/runner';
134
134
 
135
135
  export interface ${pascal}Config {
136
136
  // Configuration passed via .with({ ... })
@@ -144,43 +144,43 @@ export interface ${pascal}Output {
144
144
  // The task output after middleware
145
145
  }
146
146
 
147
- export const ${camel} = taskMiddleware<${pascal}Config, ${pascal}Input, ${pascal}Output>({
148
- id: '${id}',
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
- },
152
+ })
153
153
  // Auto-apply globally via resource.subtree({ tasks: { middleware: [${camel}] } })
154
154
  // or intercept executions with globals.resources.taskRunner.intercept(...).
155
- run: async ({ task, next }, deps, config) => {
155
+ .run(async ({ task, next }, deps, config) => {
156
156
  // pre-process task.input
157
157
  const result = await next(task.input as ${pascal}Input);
158
158
  // post-process result
159
159
  return result as ${pascal}Output;
160
- },
161
- });
160
+ })
161
+ .build();
162
162
  `;
163
163
  }
164
164
  function resourceMiddlewareTemplate({ header, id, camel, pascal, }) {
165
165
  return `${header}
166
- import { resourceMiddleware } from '@bluelibs/runner';
166
+ import { r } from '@bluelibs/runner';
167
167
 
168
168
  export interface ${pascal}Config {
169
169
  // Configuration passed via .with({ ... })
170
170
  }
171
171
 
172
- export const ${camel} = resourceMiddleware<${pascal}Config>({
173
- id: '${id}',
174
- meta: {
172
+ export const ${camel} = r
173
+ .resourceMiddleware<${pascal}Config>('${id}')
174
+ .meta({
175
175
  title: '${pascal} Resource Middleware',
176
176
  description: 'TODO: Add description for ${pascal} resource middleware',
177
- },
178
- run: async ({ next }, deps, config) => {
177
+ })
178
+ .run(async ({ next }, deps, config) => {
179
179
  const value = await next();
180
180
  // Wrap or augment the resource value here
181
181
  return value;
182
- },
183
- });
182
+ })
183
+ .build();
184
184
  `;
185
185
  }
186
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,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;SACX,EAAE;;cAEG,MAAM;8CAC0B,MAAM;;;;yBAI3B,MAAM,0BAA0B,MAAM;;mBAE5C,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;SACX,EAAE;;cAEG,MAAM;8CAC0B,MAAM;;;;wBAI5B,MAAM,yBAAyB,MAAM;mBAC1C,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,YAAY,MAAM;SAC7B,EAAE;;cAEG,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;SACX,EAAE;;cAEG,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,UAAU,MAAM,WAAW,MAAM,kBAAkB,MAAM;SACpE,EAAE;;cAEG,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,qBAAqB,MAAM,WAAW,MAAM,UAAU,MAAM;SACvE,EAAE;;cAEG,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,yBAAyB,MAAM;SAC1C,EAAE;;cAEG,MAAM;8CAC0B,MAAM;;;;;;;;CAQnD,CAAC;AACF,CAAC"}
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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const v = "6.0.0";
1
+ declare const v = "6.0.1";
2
2
  export default v;
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // Auto-generated by scripts/sync-version.ts. Do not edit manually.
4
- const v = "6.0.0";
4
+ const v = "6.0.1";
5
5
  exports.default = v;
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelibs/runner-dev",
3
- "version": "6.0.0",
3
+ "version": "6.0.1",
4
4
  "description": "BlueLibs Runner DevTools",
5
5
  "main": "dist/index.js",
6
6
  "repository": {