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 +3 -2
- package/dist/src/generator/common.js +24 -13
- package/dist/src/generator/common.js.map +1 -1
- package/dist/src/generator/flows.js +13 -2
- package/dist/src/generator/flows.js.map +1 -1
- package/dist/src/generator/index.js +24 -2
- package/dist/src/generator/index.js.map +1 -1
- package/dist/src/generator/preamble.js +13 -0
- package/dist/src/generator/preamble.js.map +1 -1
- package/dist/src/generator/resources.js +5 -1
- package/dist/src/generator/resources.js.map +1 -1
- package/dist/src/generator/scripts.js +13 -2
- package/dist/src/generator/scripts.js.map +1 -1
- package/dist/src/index.js +1 -10
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -2
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "windmill-ts",
|
|
3
|
-
"version": "0.
|
|
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
|
-
"
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
33
|
+
await write("} as const))");
|
|
34
|
+
observer.next("Done");
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
observer.error(err);
|
|
25
38
|
}
|
|
26
|
-
|
|
27
|
-
|
|
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":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
|
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;
|
|
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
|
|
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":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
package/dist/src/index.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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
|
-
"
|
|
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"
|