windmill-ts 0.7.1 → 0.8.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/README.md +36 -0
- package/dist/package.json +2 -1
- package/dist/src/config/index.js +6 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/config/loader.js +67 -0
- package/dist/src/config/loader.js.map +1 -0
- package/dist/src/config/schema.js +25 -0
- package/dist/src/config/schema.js.map +1 -0
- package/dist/src/generator/context.js +2 -1
- package/dist/src/generator/context.js.map +1 -1
- package/dist/src/generator/index.js +19 -7
- package/dist/src/generator/index.js.map +1 -1
- package/dist/src/generator/preamble.js +26 -15
- package/dist/src/generator/preamble.js.map +1 -1
- package/dist/src/generator/resources.js +15 -3
- package/dist/src/generator/resources.js.map +1 -1
- package/dist/src/index.js +14 -2
- package/dist/src/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -55,6 +55,42 @@ To output to stdout instead of a file, use `-` as the output path:
|
|
|
55
55
|
npx windmill-ts -
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## Configuration
|
|
59
|
+
|
|
60
|
+
windmill-ts can be configured using a YAML configuration file. The configuration file can be named either `windmill-ts.yaml` or `windmill-ts.yml` and should be placed in your project root directory.
|
|
61
|
+
|
|
62
|
+
The configuration file supports the following options:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
# Resource configuration
|
|
66
|
+
resources:
|
|
67
|
+
# Map of resource type to default resource path
|
|
68
|
+
# By default, if there is only one resource of a given type,
|
|
69
|
+
# it will be set as the default implicitly.
|
|
70
|
+
# You can override this behavior by:
|
|
71
|
+
# 1. Setting a specific resource path as the default
|
|
72
|
+
# 2. Setting null to disable the implicit default behavior
|
|
73
|
+
defaults:
|
|
74
|
+
# Override the default for "postgresql" resources to always use this path
|
|
75
|
+
postgresql: "f/prod/postgresql"
|
|
76
|
+
# Disable implicit default for "s3" resources even if there's only one
|
|
77
|
+
s3: null
|
|
78
|
+
# Set a specific default for "mysql" resources
|
|
79
|
+
mysql: "f/dev/mysql"
|
|
80
|
+
|
|
81
|
+
# Script generation configuration
|
|
82
|
+
scripts:
|
|
83
|
+
# Whether to generate script-related code (default: true)
|
|
84
|
+
enabled: true
|
|
85
|
+
|
|
86
|
+
# Flow generation configuration
|
|
87
|
+
flows:
|
|
88
|
+
# Whether to generate flow-related code (default: true)
|
|
89
|
+
enabled: true
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The configuration file is optional. If not provided, windmill-ts will use default values. For resources, this means that when there is exactly one resource of a given type, it will be set as the default implicitly. You can override this behavior in the configuration file by either specifying a different default path or setting it to `null` to disable the implicit default behavior.
|
|
93
|
+
|
|
58
94
|
## Generated Client Usage
|
|
59
95
|
|
|
60
96
|
The generated client provides type-safe functions for running scripts and flows,
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "windmill-ts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Type-safe client for Windmill",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"bin": "dist/src/index.js",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"rxjs": "^7.8.1",
|
|
28
28
|
"to-valid-identifier": "^0.1.1",
|
|
29
29
|
"windmill-client": "^1.422.0",
|
|
30
|
+
"yaml": "^2.7.0",
|
|
30
31
|
"zod": "^3.23.8"
|
|
31
32
|
},
|
|
32
33
|
"repository": {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { parse } from "yaml";
|
|
2
|
+
import { readFile, access } from "fs/promises";
|
|
3
|
+
import { join, dirname } from "path";
|
|
4
|
+
import { ConfigSchema } from "./schema.js";
|
|
5
|
+
const CONFIG_FILE_NAMES = ["windmill-ts.yaml", "windmill-ts.yml"];
|
|
6
|
+
const fileExists = async (path) => {
|
|
7
|
+
try {
|
|
8
|
+
await access(path);
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const findNearestConfig = async (startDir) => {
|
|
16
|
+
let currentDir = startDir;
|
|
17
|
+
while (true) {
|
|
18
|
+
// Check for all possible files in parallel
|
|
19
|
+
const configPaths = CONFIG_FILE_NAMES.map((name) => join(currentDir, name));
|
|
20
|
+
const boundaryPaths = [
|
|
21
|
+
join(currentDir, "package.json"),
|
|
22
|
+
join(currentDir, ".git"),
|
|
23
|
+
];
|
|
24
|
+
const [configExists, boundaryExists] = await Promise.all([
|
|
25
|
+
Promise.all(configPaths.map(fileExists)),
|
|
26
|
+
Promise.all(boundaryPaths.map(fileExists)),
|
|
27
|
+
]);
|
|
28
|
+
// Check if multiple config files exist
|
|
29
|
+
const existingConfigs = configPaths.filter((_, index) => configExists[index]);
|
|
30
|
+
if (existingConfigs.length > 1) {
|
|
31
|
+
throw new Error(`Multiple configuration files found in ${currentDir}: ${existingConfigs.join(", ")}. Please use only one configuration file.`);
|
|
32
|
+
}
|
|
33
|
+
// If we found exactly one config file, return its path
|
|
34
|
+
if (existingConfigs.length === 1) {
|
|
35
|
+
return existingConfigs[0];
|
|
36
|
+
}
|
|
37
|
+
// If we found a boundary marker, stop searching
|
|
38
|
+
if (boundaryExists.some((exists) => exists)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
// Move up one directory
|
|
42
|
+
const parentDir = dirname(currentDir);
|
|
43
|
+
// If we're at the root directory and haven't found anything
|
|
44
|
+
if (parentDir === currentDir) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
currentDir = parentDir;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export const loadConfig = async (cwd) => {
|
|
51
|
+
try {
|
|
52
|
+
const configPath = await findNearestConfig(cwd);
|
|
53
|
+
if (!configPath) {
|
|
54
|
+
return ConfigSchema.parse({});
|
|
55
|
+
}
|
|
56
|
+
const contents = await readFile(configPath, "utf-8");
|
|
57
|
+
const parsed = parse(contents);
|
|
58
|
+
return ConfigSchema.parse(parsed);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error.code === "ENOENT") {
|
|
62
|
+
return ConfigSchema.parse({});
|
|
63
|
+
}
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const ResourceOptionsSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
// Map from resource type to default resource path
|
|
5
|
+
defaults: z.record(z.string(), z.string().nullable()).default({}),
|
|
6
|
+
})
|
|
7
|
+
.default({});
|
|
8
|
+
const ScriptOptionsSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
enabled: z.boolean().default(true),
|
|
11
|
+
})
|
|
12
|
+
.default({});
|
|
13
|
+
const FlowOptionsSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
enabled: z.boolean().default(true),
|
|
16
|
+
})
|
|
17
|
+
.default({});
|
|
18
|
+
export const ConfigSchema = z
|
|
19
|
+
.object({
|
|
20
|
+
resources: ResourceOptionsSchema,
|
|
21
|
+
scripts: ScriptOptionsSchema,
|
|
22
|
+
flows: FlowOptionsSchema,
|
|
23
|
+
})
|
|
24
|
+
.default({});
|
|
25
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,kDAAkD;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAClE,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnC,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,mBAAmB;IAC5B,KAAK,EAAE,iBAAiB;CACzB,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import { pipeline } from "node:stream/promises";
|
|
4
|
+
import { getConfig } from "../config/index.js";
|
|
4
5
|
const generateStore = new AsyncLocalStorage();
|
|
5
6
|
export const run = async (output, allResourceTypes, cb) => {
|
|
6
7
|
const write = (content, stream = output) => new Promise((resolve, reject) => stream.write(content + "\n", (err) => {
|
|
@@ -17,7 +18,7 @@ export const run = async (output, allResourceTypes, cb) => {
|
|
|
17
18
|
((content) => {
|
|
18
19
|
deferredWrites.push(content);
|
|
19
20
|
});
|
|
20
|
-
const result = await generateStore.run({ write, deferWrite, allResourceTypes }, cb);
|
|
21
|
+
const result = await generateStore.run({ write, deferWrite, allResourceTypes, config: await getConfig() }, cb);
|
|
21
22
|
// Execute deferred writes
|
|
22
23
|
if (deferredWrites.length > 0) {
|
|
23
24
|
const buffer = new PassThrough();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAC;AAS5D,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EACtB,MAAgB,EAChB,gBAA+B,EAC/B,EAAW,EACX,EAAE;IACF,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CACjD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;QACnC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CACH,CAAC;IAEJ,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAE,EAAE,CAC/B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,UAAU,GACd,UAAU,EAAE,EAAE,UAAU;QACxB,CAAC,CAAC,OAAe,EAAE,EAAE;YACnB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CACpC,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,EAAE,EAClE,EAAE,CACH,CAAC;IAEF,0BAA0B;IAC1B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAEjC,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QAElB,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -8,30 +8,42 @@ import { generateFlows } from "./flows.js";
|
|
|
8
8
|
import { runWithBuffer } from "./common.js";
|
|
9
9
|
import { Listr } from "listr2";
|
|
10
10
|
import { Observable } from "rxjs";
|
|
11
|
+
import { getConfig } from "../config/index.js";
|
|
11
12
|
const subtasks = {
|
|
12
|
-
"Generate resources":
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
"Generate resources": {
|
|
14
|
+
runner: generateResources,
|
|
15
|
+
isEnabled: () => true,
|
|
16
|
+
},
|
|
17
|
+
"Generate scripts": {
|
|
18
|
+
runner: generateScripts,
|
|
19
|
+
isEnabled: (config) => config.scripts.enabled,
|
|
20
|
+
},
|
|
21
|
+
"Generate flows": {
|
|
22
|
+
runner: generateFlows,
|
|
23
|
+
isEnabled: (config) => config.flows.enabled,
|
|
24
|
+
},
|
|
15
25
|
};
|
|
16
26
|
export const generate = async (output, options) => {
|
|
17
27
|
const { spinners = false } = options ?? {};
|
|
28
|
+
const config = await getConfig();
|
|
18
29
|
const allResourceTypes = await listResourceTypes();
|
|
19
30
|
return run(output, allResourceTypes, async () => {
|
|
20
31
|
await writePreamble();
|
|
21
|
-
const tasks = new Listr(Object.entries(subtasks).map(([name,
|
|
32
|
+
const tasks = new Listr(Object.entries(subtasks).map(([name, task], idx) => {
|
|
22
33
|
return {
|
|
23
34
|
title: name,
|
|
24
35
|
task: (ctx) => new Observable((subscriber) => {
|
|
25
36
|
ctx.results ??= [];
|
|
26
|
-
ctx.results[idx] = runWithBuffer(() =>
|
|
37
|
+
ctx.results[idx] = runWithBuffer(() => task.runner(subscriber));
|
|
27
38
|
}),
|
|
39
|
+
enabled: !config || task.isEnabled(config),
|
|
28
40
|
rendererOptions: {
|
|
29
41
|
persistentOutput: true,
|
|
30
42
|
},
|
|
31
43
|
};
|
|
32
|
-
}), { concurrent: true });
|
|
44
|
+
}), { concurrent: true, renderer: spinners ? "default" : "silent" });
|
|
33
45
|
const ctx = await tasks.run();
|
|
34
|
-
const results = await Promise.all(ctx.results);
|
|
46
|
+
const results = await Promise.all(ctx.results).then((results) => results.filter((result) => result != null));
|
|
35
47
|
for (const { buffer } of results) {
|
|
36
48
|
await pipeline(buffer, output, { end: false });
|
|
37
49
|
}
|
|
@@ -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;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAc,MAAM,MAAM,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;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAa/C,MAAM,QAAQ,GAAG;IACf,oBAAoB,EAAE;QACpB,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;KACtB;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;KAC9C;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;KAC5C;CACsC,CAAC;AAM1C,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,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,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,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;YACjD,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,GAAiB,EAAE,EAAE,CAC1B,IAAI,UAAU,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC5B,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;oBACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC;gBACJ,OAAO,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1C,eAAe,EAAE;oBACf,gBAAgB,EAAE,IAAI;iBACvB;aACF,CAAC;QACJ,CAAC,CAAC,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAChE,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9D,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAC3C,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"}
|
|
@@ -5,7 +5,7 @@ const preamble = dedent `
|
|
|
5
5
|
// This file is auto-generated by windmill-ts, do not modify it manually
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import * as wmill from 'windmill-client';
|
|
8
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
8
|
+
import type { AsyncLocalStorage } from 'node:async_hooks';
|
|
9
9
|
${
|
|
10
10
|
/* NOTE: Windmill has JSX enabled, so <T> is illegal.
|
|
11
11
|
The usual way to fix this is <T,>, but some formatters/editors
|
|
@@ -28,24 +28,35 @@ const preamble = dedent `
|
|
|
28
28
|
}) as T;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
let ${envStorageName}: AsyncLocalStorage<Record<string, string | undefined>> | null = null;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
if (typeof process !== 'undefined') {
|
|
34
|
+
const { AsyncLocalStorage } = await import('node:async_hooks');
|
|
35
|
+
${envStorageName} = new AsyncLocalStorage();
|
|
36
|
+
|
|
37
|
+
const originalProcessEnv = process.env;
|
|
38
|
+
process.env = new Proxy(originalProcessEnv, {
|
|
39
|
+
get: (target, prop, receiver) => {
|
|
40
|
+
const store = ${envStorageName}!.getStore();
|
|
41
|
+
if (store != null && prop in store && typeof prop === 'string') {
|
|
42
|
+
return store[prop];
|
|
43
|
+
}
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
return Reflect.get(target, prop, receiver);
|
|
46
|
+
},
|
|
47
|
+
set: (target, prop, value, receiver) => {
|
|
48
|
+
return Reflect.set(target, prop, value, receiver);
|
|
49
|
+
}
|
|
50
|
+
})
|
|
51
|
+
}
|
|
47
52
|
|
|
48
53
|
export const runDetached = async <T extends unknown>(cb: () => Promise<T>) => {
|
|
54
|
+
if (${envStorageName} == null) {
|
|
55
|
+
console.warn("Calling \`runDetached\` in a non-Node environment is unsupported.");
|
|
56
|
+
|
|
57
|
+
return cb();
|
|
58
|
+
}
|
|
59
|
+
|
|
49
60
|
return ${envStorageName}.run(
|
|
50
61
|
{ WM_JOB_ID: undefined, WM_ROOT_FLOW_JOB_ID: undefined },
|
|
51
62
|
() => cb(),
|
|
@@ -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,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,QAAQ,GAAG,MAAM,CAAA;;;;;IAKnB;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,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,QAAQ,GAAG,MAAM,CAAA;;;;;IAKnB;AACA;;qEAEqE,CAAC,EACxE;;;;;;;;;;;;;;;;;;;QAmBM,cAAc;;;;MAIhB,cAAc;;;;;wBAKI,cAAc;;;;;;;;;;;;;;UAc5B,cAAc;;;;;;aAMX,cAAc;;;;;CAK1B,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"}
|
|
@@ -35,7 +35,7 @@ export const generateResources = async (observer) => {
|
|
|
35
35
|
});
|
|
36
36
|
await write(`const ${typeSchemaName} = lazyObject(() => ${resourceTypeSchema});`);
|
|
37
37
|
const referencesSchemaName = resourceReferencesSchemaName(resourceType.name);
|
|
38
|
-
const referencesSchema = schemaToZod(makeReferencesSchema(paths));
|
|
38
|
+
const referencesSchema = schemaToZod(makeReferencesSchema(resourceType.name, paths));
|
|
39
39
|
await write(`const ${referencesSchemaName} = lazyObject(() => ${referencesSchema});`);
|
|
40
40
|
}
|
|
41
41
|
await write(`const ${resourceToTypeMap} = lazyObject(() => ({`);
|
|
@@ -57,12 +57,24 @@ export const generateResources = async (observer) => {
|
|
|
57
57
|
};
|
|
58
58
|
export const resourceReferencesSchemaName = (resourceType) => toValidIdentifier(`${resourceType}_references`);
|
|
59
59
|
export const resourceTypeSchemaName = (resourceType) => toValidIdentifier(`${resourceType}_type`);
|
|
60
|
-
const makeReferencesSchema = (paths) => {
|
|
60
|
+
const makeReferencesSchema = (resourceType, paths) => {
|
|
61
|
+
const { config } = getContext();
|
|
61
62
|
const refs = paths.map((path) => `$res:${path}`);
|
|
63
|
+
let defaultForType = resourceType in config.resources.defaults
|
|
64
|
+
? config.resources.defaults[resourceType]
|
|
65
|
+
: refs.length === 1
|
|
66
|
+
? refs[0]
|
|
67
|
+
: undefined;
|
|
68
|
+
if (defaultForType != null && !defaultForType.startsWith("$res:")) {
|
|
69
|
+
defaultForType = `$res:${defaultForType}`;
|
|
70
|
+
}
|
|
71
|
+
if (defaultForType != null && !refs.includes(defaultForType)) {
|
|
72
|
+
throw new Error(`Default for resource type ${resourceType} is not valid: ${defaultForType} not found in resources`);
|
|
73
|
+
}
|
|
62
74
|
return {
|
|
63
75
|
type: "string",
|
|
64
76
|
enum: refs,
|
|
65
|
-
...(
|
|
77
|
+
...(defaultForType != null && { default: defaultForType }),
|
|
66
78
|
};
|
|
67
79
|
};
|
|
68
80
|
//# sourceMappingURL=resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAE3C,MAAM,QAAQ,GAAG,MAAM,CAAA;gEACyC,iBAAiB;;+BAElD,iBAAiB;qBAC3B,iBAAiB;;;;;CAKrC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,UAAU,EAAG,CAAC;IAElD,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpD,IAAI,KAAK,EAAE,MAAM,EACf,aAAa,EAAE,gBAAgB,EAC/B,IAAI,GACL,IAAI,aAAa,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC1D,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,gBAAgB,CAAC,gBAAgB,CAAE,CAAC;QAEzD,MAAM,cAAc,GAAG,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,kBAAkB,GAAG,WAAW,CAAC,YAAY,CAAC,MAAe,EAAE;YACnE,oBAAoB,EAAE,sBAAsB;SAC7C,CAAC,CAAC;QAEH,MAAM,KAAK,CACT,SAAS,cAAc,uBAAuB,kBAAkB,IAAI,CACrE,CAAC;QAEF,MAAM,oBAAoB,GAAG,4BAA4B,CACvD,YAAY,CAAC,IAAI,CAClB,CAAC;QACF,MAAM,gBAAgB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -6,11 +6,21 @@ import { getActiveWorkspaceName, getWorkspace } from "./windmill/workspace.js";
|
|
|
6
6
|
import { generate } from "./generator/index.js";
|
|
7
7
|
import * as fs from "node:fs";
|
|
8
8
|
import chalk from "chalk";
|
|
9
|
+
import { getConfig } from "./config/index.js";
|
|
9
10
|
const program = new Command();
|
|
10
11
|
program
|
|
11
12
|
.name("windmill-ts")
|
|
12
13
|
.description("Type-safe Windmill client for TypeScript")
|
|
13
|
-
.version(packageJSON.version)
|
|
14
|
+
.version(packageJSON.version)
|
|
15
|
+
.hook("preAction", async () => {
|
|
16
|
+
const config = await getConfig();
|
|
17
|
+
if (!config.scripts.enabled) {
|
|
18
|
+
console.warn(chalk.yellow("⚠️ Script generation is disabled in config"));
|
|
19
|
+
}
|
|
20
|
+
if (!config.flows.enabled) {
|
|
21
|
+
console.warn(chalk.yellow("⚠️ Flow generation is disabled in config"));
|
|
22
|
+
}
|
|
23
|
+
});
|
|
14
24
|
program
|
|
15
25
|
.command("generate", { isDefault: true })
|
|
16
26
|
.description("Generate client")
|
|
@@ -31,7 +41,9 @@ program
|
|
|
31
41
|
}
|
|
32
42
|
setup(workspace);
|
|
33
43
|
const stream = isStdout ? process.stdout : fs.createWriteStream(output);
|
|
34
|
-
await generate(stream, {
|
|
44
|
+
await generate(stream, {
|
|
45
|
+
spinners: !isStdout,
|
|
46
|
+
});
|
|
35
47
|
});
|
|
36
48
|
program.parse();
|
|
37
49
|
//# 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,KAAK,MAAM,OAAO,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;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,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;KAC5B,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,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;QACrB,QAAQ,EAAE,CAAC,QAAQ;KACpB,CAAC,CAAC;AACL,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.8.0",
|
|
4
4
|
"description": "Type-safe client for Windmill",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"bin": "dist/src/index.js",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"rxjs": "^7.8.1",
|
|
24
24
|
"to-valid-identifier": "^0.1.1",
|
|
25
25
|
"windmill-client": "^1.422.0",
|
|
26
|
+
"yaml": "^2.7.0",
|
|
26
27
|
"zod": "^3.23.8"
|
|
27
28
|
},
|
|
28
29
|
"repository": {
|