windmill-ts 0.4.3 → 0.6.0

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-ts",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "description": "Type-safe client for Windmill",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": "dist/src/index.js",
@@ -22,8 +22,9 @@
22
22
  "commander": "^12.1.0",
23
23
  "dedent": "^1.5.3",
24
24
  "json-schema-to-zod": "^2.4.1",
25
- "ora": "^8.1.1",
25
+ "listr2": "^8.2.5",
26
26
  "p-queue": "^8.0.1",
27
+ "rxjs": "^7.8.1",
27
28
  "to-valid-identifier": "^0.1.1",
28
29
  "windmill-client": "^1.422.0",
29
30
  "zod": "^3.23.8"
@@ -11,23 +11,34 @@ export const runWithBuffer = async (cb) => {
11
11
  const result = await run(buffer, allResourceTypes, cb);
12
12
  return { buffer, result };
13
13
  };
14
- export const generateSchemas = async ({ generator, mapName, }) => {
14
+ export const generateSchemas = async ({ generator, mapName, observer, }) => {
15
15
  const { write } = getContext();
16
- const pathToSchemaMap = new Map();
17
- for await (const { path, schema } of generator) {
18
- if (schema == null) {
19
- continue;
16
+ try {
17
+ const pathToSchemaMap = new Map();
18
+ observer.next("Fetching resources...");
19
+ for await (const { path, schema } of generator) {
20
+ if (schema == null) {
21
+ continue;
22
+ }
23
+ const schemaName = toValidIdentifier(`${mapName}_${path}`);
24
+ const zodSchema = schemaToZod(schema);
25
+ await write(`const ${schemaName} = lazyObject(() => ${zodSchema});`);
26
+ pathToSchemaMap.set(path, schemaName);
27
+ }
28
+ observer.next("Generating schemas...");
29
+ await write(`const ${mapName} = lazyObject(() => ({`);
30
+ for (const [scriptPath, schemaName] of pathToSchemaMap) {
31
+ await write(`${JSON.stringify(scriptPath)}: ${schemaName},`);
20
32
  }
21
- const schemaName = toValidIdentifier(`${mapName}_${path}`);
22
- const zodSchema = schemaToZod(schema);
23
- await write(`const ${schemaName} = lazyObject(() => ${zodSchema});`);
24
- pathToSchemaMap.set(path, schemaName);
33
+ await write("} as const))");
34
+ observer.next("Done");
35
+ }
36
+ catch (err) {
37
+ observer.error(err);
25
38
  }
26
- await write(`const ${mapName} = lazyObject(() => ({`);
27
- for (const [scriptPath, schemaName] of pathToSchemaMap) {
28
- await write(`${JSON.stringify(scriptPath)}: ${schemaName},`);
39
+ finally {
40
+ observer.complete();
29
41
  }
30
- await write("} as const))");
31
42
  };
32
43
  export const schemaToZod = (schema, options) => {
33
44
  const { resourceTypeToSchema = resourceTypeToUnion } = options ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/generator/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/generator/common.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,23 @@ const preamble = dedent `
13
13
  return wmill.runFlow(flowPath, schema.parse(args));
14
14
  };
15
15
 
16
+ type RunFlowAsyncOptions = {
17
+ detached?: boolean;
18
+ };
19
+
16
20
  export const runFlowAsync = <Path extends keyof typeof ${mapName}>(
17
21
  flowPath: Path,
18
22
  args: z.input<(typeof ${mapName})[Path]>,
23
+ options?: RunFlowAsyncOptions,
19
24
  ) => {
25
+ const { detached = false } = options ?? {};
20
26
  const schema = ${mapName}[flowPath];
21
27
 
22
- return wmill.runFlowAsync(flowPath, schema.parse(args));
28
+ const runner = detached
29
+ ? runDetached
30
+ : <T extends unknown>(cb: () => Promise<T>) => cb();
31
+
32
+ return runner(() => wmill.runFlowAsync(flowPath, schema.parse(args)));
23
33
  };
24
34
 
25
35
  export const getFlowArgsSchema = <Path extends keyof typeof ${mapName}>(
@@ -28,12 +38,13 @@ const preamble = dedent `
28
38
  return ${mapName}[flowPath];
29
39
  }
30
40
  `;
31
- export const generateFlows = async () => {
41
+ export const generateFlows = async (observer) => {
32
42
  const { write } = getContext();
33
43
  await write(preamble);
34
44
  return generateSchemas({
35
45
  generator: listFlows(),
36
46
  mapName,
47
+ observer,
37
48
  });
38
49
  };
39
50
  //# sourceMappingURL=flows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/generator/flows.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,QAAQ,GAAG,MAAM,CAAA;sDAC+B,OAAO;;4BAEjC,OAAO;;qBAEd,OAAO;;;;;2DAK+B,OAAO;;4BAEtC,OAAO;;qBAEd,OAAO;;;;;gEAKoC,OAAO;;;aAG1D,OAAO;;CAEnB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,SAAS,EAAE;QACtB,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/generator/flows.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,QAAQ,GAAG,MAAM,CAAA;sDAC+B,OAAO;;4BAEjC,OAAO;;qBAEd,OAAO;;;;;;;;;2DAS+B,OAAO;;4BAEtC,OAAO;;;;qBAId,OAAO;;;;;;;;;gEASoC,OAAO;;;aAG1D,OAAO;;CAEnB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,SAAS,EAAE;QACtB,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -6,11 +6,33 @@ import { generateScripts } from "./scripts.js";
6
6
  import { generateResources } from "./resources.js";
7
7
  import { generateFlows } from "./flows.js";
8
8
  import { runWithBuffer } from "./common.js";
9
- export const generate = async (output) => {
9
+ import { Listr } from "listr2";
10
+ import { Observable } from "rxjs";
11
+ const subtasks = {
12
+ "Generate resources": generateResources,
13
+ "Generate scripts": generateScripts,
14
+ "Generate flows": generateFlows,
15
+ };
16
+ export const generate = async (output, options) => {
17
+ const { spinners = false } = options ?? {};
10
18
  const allResourceTypes = await listResourceTypes();
11
19
  return run(output, allResourceTypes, async () => {
12
20
  await writePreamble();
13
- const results = await Promise.all([generateResources, generateScripts, generateFlows].map((fn) => runWithBuffer(fn)));
21
+ const tasks = new Listr(Object.entries(subtasks).map(([name, fn], idx) => {
22
+ return {
23
+ title: name,
24
+ task: (ctx) => new Observable((subscriber) => {
25
+ runWithBuffer(() => fn(subscriber)).then((result) => {
26
+ ctx.results ??= [];
27
+ ctx.results[idx] = result;
28
+ });
29
+ }),
30
+ rendererOptions: {
31
+ persistentOutput: true,
32
+ },
33
+ };
34
+ }), { concurrent: true });
35
+ const { results } = await tasks.run();
14
36
  for (const { buffer } of results) {
15
37
  await pipeline(buffer, output, { end: false });
16
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAgB,EAAE,EAAE;IACjD,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEnD,OAAO,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,iBAAiB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC7D,aAAa,CAAC,EAAE,CAAC,CAClB,CACF,CAAC;QAEF,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAc,MAAM,MAAM,CAAC;AAQ9C,MAAM,QAAQ,GAAG;IACf,oBAAoB,EAAE,iBAAiB;IACvC,kBAAkB,EAAE,eAAe;IACnC,gBAAgB,EAAE,aAAa;CACyC,CAAC;AAM3E,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAgB,EAAE,OAAyB,EAAE,EAAE;IAC5E,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE3C,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEnD,OAAO,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;YAC/C,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACZ,IAAI,UAAU,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC5B,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBAClD,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;wBACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBAC5B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;gBACJ,eAAe,EAAE;oBACf,gBAAgB,EAAE,IAAI;iBACvB;aACF,CAAC;QACJ,CAAC,CAAC,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAEtC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -25,6 +25,19 @@ const preamble = dedent `
25
25
  }
26
26
  }) as T;
27
27
  }
28
+
29
+ export const runDetached = async <T extends unknown>(cb: () => Promise<T>) => {
30
+ const originalRootFlowJobId = process.env["WM_ROOT_FLOW_JOB_ID"];
31
+ delete (process.env as Record<string, string | undefined>)[
32
+ "WM_ROOT_FLOW_JOB_ID"
33
+ ];
34
+
35
+ const result = await cb();
36
+
37
+ process.env["WM_ROOT_FLOW_JOB_ID"] = originalRootFlowJobId!;
38
+
39
+ return result;
40
+ };
28
41
  `;
29
42
  export const writePreamble = async () => {
30
43
  const { write } = getContext();
@@ -1 +1 @@
1
- {"version":3,"file":"preamble.js","sourceRoot":"","sources":["../../../src/generator/preamble.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,QAAQ,GAAG,MAAM,CAAA;;;;IAInB;AACA;;qEAEqE,CAAC,EACxE;;;;;;;;;;;;;;;;;;CAkBD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"preamble.js","sourceRoot":"","sources":["../../../src/generator/preamble.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,QAAQ,GAAG,MAAM,CAAA;;;;IAInB;AACA;;qEAEqE,CAAC,EACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC,CAAC"}
@@ -14,9 +14,10 @@ const preamble = dedent `
14
14
  return schema.parse(data);
15
15
  }
16
16
  `;
17
- export const generateResources = async () => {
17
+ export const generateResources = async (observer) => {
18
18
  const { write, allResourceTypes } = getContext();
19
19
  await write(preamble);
20
+ observer.next("Fetching all resources...");
20
21
  const resourcesByType = new Map();
21
22
  for await (const { resource_type: resourceTypeName, path, } of listResources()) {
22
23
  if (!(resourceTypeName in allResourceTypes)) {
@@ -25,6 +26,7 @@ export const generateResources = async () => {
25
26
  const paths = resourcesByType.get(resourceTypeName) ?? [];
26
27
  resourcesByType.set(resourceTypeName, [...paths, path]);
27
28
  }
29
+ observer.next("Generating schemas...");
28
30
  for (const [resourceTypeName, paths] of resourcesByType) {
29
31
  const resourceType = allResourceTypes[resourceTypeName];
30
32
  const typeSchemaName = resourceTypeSchemaName(resourceType.name);
@@ -50,6 +52,8 @@ export const generateResources = async () => {
50
52
  await write(`${JSON.stringify(resourceTypeName)}: z.infer<typeof ${typeSchemaName}>,`);
51
53
  }
52
54
  await write("}");
55
+ observer.next("Done");
56
+ observer.complete();
53
57
  };
54
58
  export const resourceReferencesSchemaName = (resourceType) => toValidIdentifier(`${resourceType}_references`);
55
59
  export const resourceTypeSchemaName = (resourceType) => toValidIdentifier(`${resourceType}_type`);
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,23 @@ const preamble = dedent `
13
13
  return wmill.runScript(scriptPath, null, schema.parse(args));
14
14
  };
15
15
 
16
+ type RunScriptAsyncOptions = {
17
+ detached?: boolean;
18
+ };
19
+
16
20
  export const runScriptAsync = <Path extends keyof typeof ${mapName}>(
17
21
  scriptPath: Path,
18
22
  args: z.input<(typeof ${mapName})[Path]>,
23
+ options?: RunScriptAsyncOptions,
19
24
  ) => {
25
+ const { detached = false } = options ?? {};
20
26
  const schema = ${mapName}[scriptPath];
21
27
 
22
- return wmill.runScriptAsync(scriptPath, null, schema.parse(args));
28
+ const runner = detached
29
+ ? runDetached
30
+ : <T extends unknown>(cb: () => Promise<T>) => cb();
31
+
32
+ return runner(() => wmill.runScriptAsync(scriptPath, null, schema.parse(args)));
23
33
  };
24
34
 
25
35
  export const getScriptArgsSchema = <Path extends keyof typeof ${mapName}>(
@@ -28,12 +38,13 @@ const preamble = dedent `
28
38
  return ${mapName}[scriptPath];
29
39
  }
30
40
  `;
31
- export const generateScripts = async () => {
41
+ export const generateScripts = async (observer) => {
32
42
  const { write } = getContext();
33
43
  await write(preamble);
34
44
  return generateSchemas({
35
45
  generator: listScripts(),
36
46
  mapName,
47
+ observer,
37
48
  });
38
49
  };
39
50
  //# sourceMappingURL=scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/generator/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,MAAM,QAAQ,GAAG,MAAM,CAAA;wDACiC,OAAO;;4BAEnC,OAAO;;qBAEd,OAAO;;;;;6DAKiC,OAAO;;4BAExC,OAAO;;qBAEd,OAAO;;;;;kEAKsC,OAAO;;;aAG5D,OAAO;;CAEnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,WAAW,EAAE;QACxB,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/generator/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,MAAM,QAAQ,GAAG,MAAM,CAAA;wDACiC,OAAO;;4BAEnC,OAAO;;qBAEd,OAAO;;;;;;;;;6DASiC,OAAO;;4BAExC,OAAO;;;;qBAId,OAAO;;;;;;;;;kEASsC,OAAO;;;aAG5D,OAAO;;CAEnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAG,CAAC;IAEhC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,WAAW,EAAE;QACxB,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC"}
package/dist/src/index.js CHANGED
@@ -5,7 +5,6 @@ import { setup } from "./windmill/client.js";
5
5
  import { getActiveWorkspaceName, getWorkspace } from "./windmill/workspace.js";
6
6
  import { generate } from "./generator/index.js";
7
7
  import * as fs from "node:fs";
8
- import ora from "ora";
9
8
  import chalk from "chalk";
10
9
  const program = new Command();
11
10
  program
@@ -32,15 +31,7 @@ program
32
31
  }
33
32
  setup(workspace);
34
33
  const stream = isStdout ? process.stdout : fs.createWriteStream(output);
35
- let spinner = null;
36
- if (!isStdout) {
37
- spinner = ora("Generating...").start();
38
- }
39
- await generate(stream);
40
- spinner?.stop();
41
- if (!isStdout) {
42
- console.error(chalk.green("🚀 Done!"));
43
- }
34
+ await generate(stream, { spinners: !isStdout });
44
35
  });
45
36
  program.parse();
46
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACxC,WAAW,CAAC,iBAAiB,CAAC;KAC9B,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAClE,MAAM,CACL,wBAAwB,EACxB,0EAA0E,CAC3E;KACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA+B,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,GAAG,CAAC;IAEhC,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,kDAAkD,aAAa,GAAG,CACnE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,mCAAmC,CACpE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,OAAO,GAAe,IAAI,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,EAAE,IAAI,EAAE,CAAC;IAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACxC,WAAW,CAAC,iBAAiB,CAAC;KAC9B,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAClE,MAAM,CACL,wBAAwB,EACxB,0EAA0E,CAC3E;KACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA+B,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,GAAG,CAAC;IAEhC,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,kDAAkD,aAAa,GAAG,CACnE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,mCAAmC,CACpE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAExE,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-ts",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "description": "Type-safe client for Windmill",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": "dist/src/index.js",
@@ -18,8 +18,9 @@
18
18
  "commander": "^12.1.0",
19
19
  "dedent": "^1.5.3",
20
20
  "json-schema-to-zod": "^2.4.1",
21
- "ora": "^8.1.1",
21
+ "listr2": "^8.2.5",
22
22
  "p-queue": "^8.0.1",
23
+ "rxjs": "^7.8.1",
23
24
  "to-valid-identifier": "^0.1.1",
24
25
  "windmill-client": "^1.422.0",
25
26
  "zod": "^3.23.8"