swallowkit 1.0.0-beta.22 → 1.0.0-beta.24
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.ja.md +9 -4
- package/README.md +9 -4
- package/dist/cli/commands/dev.d.ts +14 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +187 -54
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +33 -18
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +0 -3
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +3 -172
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/core/project/validation.js +2 -2
- package/dist/core/project/validation.js.map +1 -1
- package/dist/core/scaffold/model-parser.d.ts.map +1 -1
- package/dist/core/scaffold/model-parser.js +5 -6
- package/dist/core/scaffold/model-parser.js.map +1 -1
- package/dist/core/scaffold/native-schema-generator.d.ts +13 -0
- package/dist/core/scaffold/native-schema-generator.d.ts.map +1 -0
- package/dist/core/scaffold/native-schema-generator.js +677 -0
- package/dist/core/scaffold/native-schema-generator.js.map +1 -0
- package/dist/utils/python-uv.d.ts +21 -0
- package/dist/utils/python-uv.d.ts.map +1 -0
- package/dist/utils/python-uv.js +112 -0
- package/dist/utils/python-uv.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/dev.test.ts +95 -0
- package/src/__tests__/model-parser.test.ts +44 -64
- package/src/__tests__/python-uv.test.ts +48 -0
- package/src/__tests__/scaffold.test.ts +54 -26
- package/src/cli/commands/dev.ts +258 -74
- package/src/cli/commands/init.ts +45 -19
- package/src/cli/commands/scaffold.ts +3 -213
- package/src/core/project/validation.ts +2 -2
- package/src/core/scaffold/model-parser.ts +7 -7
- package/src/core/scaffold/native-schema-generator.ts +798 -0
- package/src/utils/python-uv.ts +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-schema-generator.js","sourceRoot":"","sources":["../../../src/core/scaffold/native-schema-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const SWALLOWKIT_PYTHON_VERSION = "3.11";
|
|
2
|
+
export interface ProjectLocalUvPaths {
|
|
3
|
+
stateDir: string;
|
|
4
|
+
cacheDir: string;
|
|
5
|
+
pythonInstallDir: string;
|
|
6
|
+
toolDir: string;
|
|
7
|
+
toolBinDir: string;
|
|
8
|
+
localUvInstallDir: string;
|
|
9
|
+
localUvExecutable: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function getPythonProjectRoot(functionsDir: string): string;
|
|
12
|
+
export declare function getProjectLocalUvPaths(projectRoot: string): ProjectLocalUvPaths;
|
|
13
|
+
export declare function buildProjectLocalUvEnv(baseEnv: NodeJS.ProcessEnv, projectRoot: string): NodeJS.ProcessEnv;
|
|
14
|
+
export declare function buildProjectLocalUvInstallerEnv(baseEnv: NodeJS.ProcessEnv, projectRoot: string): NodeJS.ProcessEnv;
|
|
15
|
+
export declare function getProjectLocalUvInstallerCommand(): {
|
|
16
|
+
command: string;
|
|
17
|
+
args: string[];
|
|
18
|
+
};
|
|
19
|
+
export declare function buildUvVenvArgs(venvDir: string, pythonVersion?: string): string[];
|
|
20
|
+
export declare function buildUvPipInstallArgs(pythonExecutable: string, requirementsPath: string): string[];
|
|
21
|
+
//# sourceMappingURL=python-uv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-uv.d.ts","sourceRoot":"","sources":["../../src/utils/python-uv.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAe/E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,UAAU,CAiBnB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,UAAU,CAQnB;AAED,wBAAgB,iCAAiC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBvF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,SAA4B,GAAG,MAAM,EAAE,CAEpG;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAElG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SWALLOWKIT_PYTHON_VERSION = void 0;
|
|
37
|
+
exports.getPythonProjectRoot = getPythonProjectRoot;
|
|
38
|
+
exports.getProjectLocalUvPaths = getProjectLocalUvPaths;
|
|
39
|
+
exports.buildProjectLocalUvEnv = buildProjectLocalUvEnv;
|
|
40
|
+
exports.buildProjectLocalUvInstallerEnv = buildProjectLocalUvInstallerEnv;
|
|
41
|
+
exports.getProjectLocalUvInstallerCommand = getProjectLocalUvInstallerCommand;
|
|
42
|
+
exports.buildUvVenvArgs = buildUvVenvArgs;
|
|
43
|
+
exports.buildUvPipInstallArgs = buildUvPipInstallArgs;
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
exports.SWALLOWKIT_PYTHON_VERSION = "3.11";
|
|
46
|
+
function getPythonProjectRoot(functionsDir) {
|
|
47
|
+
return path.dirname(functionsDir);
|
|
48
|
+
}
|
|
49
|
+
function getProjectLocalUvPaths(projectRoot) {
|
|
50
|
+
const stateDir = path.join(projectRoot, ".uv");
|
|
51
|
+
const localUvInstallDir = path.join(stateDir, "bin");
|
|
52
|
+
return {
|
|
53
|
+
stateDir,
|
|
54
|
+
cacheDir: path.join(stateDir, "cache"),
|
|
55
|
+
pythonInstallDir: path.join(stateDir, "python"),
|
|
56
|
+
toolDir: path.join(stateDir, "tools"),
|
|
57
|
+
toolBinDir: path.join(stateDir, "tools", "bin"),
|
|
58
|
+
localUvInstallDir,
|
|
59
|
+
localUvExecutable: process.platform === "win32"
|
|
60
|
+
? path.join(localUvInstallDir, "uv.exe")
|
|
61
|
+
: path.join(localUvInstallDir, "uv"),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function buildProjectLocalUvEnv(baseEnv, projectRoot) {
|
|
65
|
+
const uvPaths = getProjectLocalUvPaths(projectRoot);
|
|
66
|
+
const env = {
|
|
67
|
+
...baseEnv,
|
|
68
|
+
UV_CACHE_DIR: uvPaths.cacheDir,
|
|
69
|
+
UV_PYTHON_INSTALL_DIR: uvPaths.pythonInstallDir,
|
|
70
|
+
UV_TOOL_DIR: uvPaths.toolDir,
|
|
71
|
+
UV_TOOL_BIN_DIR: uvPaths.toolBinDir,
|
|
72
|
+
UV_PYTHON_PREFERENCE: "managed",
|
|
73
|
+
UV_MANAGED_PYTHON: "true",
|
|
74
|
+
};
|
|
75
|
+
if (process.platform === "win32") {
|
|
76
|
+
env.UV_PYTHON_NO_REGISTRY = "true";
|
|
77
|
+
}
|
|
78
|
+
return env;
|
|
79
|
+
}
|
|
80
|
+
function buildProjectLocalUvInstallerEnv(baseEnv, projectRoot) {
|
|
81
|
+
const uvPaths = getProjectLocalUvPaths(projectRoot);
|
|
82
|
+
return {
|
|
83
|
+
...buildProjectLocalUvEnv(baseEnv, projectRoot),
|
|
84
|
+
UV_UNMANAGED_INSTALL: uvPaths.localUvInstallDir,
|
|
85
|
+
UV_NO_MODIFY_PATH: "1",
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function getProjectLocalUvInstallerCommand() {
|
|
89
|
+
if (process.platform === "win32") {
|
|
90
|
+
return {
|
|
91
|
+
command: "powershell",
|
|
92
|
+
args: [
|
|
93
|
+
"-NoProfile",
|
|
94
|
+
"-ExecutionPolicy",
|
|
95
|
+
"Bypass",
|
|
96
|
+
"-Command",
|
|
97
|
+
"$ProgressPreference = 'SilentlyContinue'; irm https://astral.sh/uv/install.ps1 | iex",
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
command: "sh",
|
|
103
|
+
args: ["-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function buildUvVenvArgs(venvDir, pythonVersion = exports.SWALLOWKIT_PYTHON_VERSION) {
|
|
107
|
+
return ["venv", venvDir, "--python", pythonVersion, "--managed-python"];
|
|
108
|
+
}
|
|
109
|
+
function buildUvPipInstallArgs(pythonExecutable, requirementsPath) {
|
|
110
|
+
return ["pip", "install", "--python", pythonExecutable, "-r", requirementsPath];
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=python-uv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-uv.js","sourceRoot":"","sources":["../../src/utils/python-uv.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import * as http from "http";
|
|
1
2
|
import { readFileSync } from "fs";
|
|
2
3
|
import * as path from "path";
|
|
3
4
|
import {
|
|
5
|
+
buildFunctionsBaseUrl,
|
|
4
6
|
buildFunctionsStartArgs,
|
|
7
|
+
buildFunctionsCoreToolsCommand,
|
|
5
8
|
buildNextDevArgs,
|
|
6
9
|
buildDevCommand,
|
|
7
10
|
buildPythonFunctionsEnv,
|
|
11
|
+
compareVersionNumbers,
|
|
8
12
|
DevOptions,
|
|
13
|
+
getFunctionsReadinessTimeoutMs,
|
|
14
|
+
getCSharpFunctionsBuildArtifactPaths,
|
|
9
15
|
getPythonVirtualEnvPaths,
|
|
16
|
+
parseCoreToolsVersion,
|
|
17
|
+
waitForHttpServerReady,
|
|
10
18
|
} from "../cli/commands/dev";
|
|
11
19
|
import { CLI_VERSION, createProgram, normalizeDevCommandArgv } from "../cli/index";
|
|
12
20
|
|
|
@@ -23,6 +31,32 @@ describe("dev command helpers", () => {
|
|
|
23
31
|
expect(buildFunctionsStartArgs("7076")).toEqual(["start", "--port", "7076"]);
|
|
24
32
|
});
|
|
25
33
|
|
|
34
|
+
it("parses the Core Tools version from CLI output", () => {
|
|
35
|
+
expect(parseCoreToolsVersion("4.6.0+ab90faafcab539d63cd3d0ce5faf1bca4395fccc")).toBe("4.6.0");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("compares Core Tools versions numerically", () => {
|
|
39
|
+
expect(compareVersionNumbers("4.0.5198", "4.6.0")).toBeLessThan(0);
|
|
40
|
+
expect(compareVersionNumbers("4.6.0", "4.6.0")).toBe(0);
|
|
41
|
+
expect(compareVersionNumbers("4.10.0", "4.6.0")).toBeGreaterThan(0);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("falls back to npm Core Tools for older C# isolated hosts", () => {
|
|
45
|
+
expect(buildFunctionsCoreToolsCommand("csharp", "4.0.5198")).toEqual({
|
|
46
|
+
command: "npm",
|
|
47
|
+
argsPrefix: ["exec", "--yes", "azure-functions-core-tools@4", "--"],
|
|
48
|
+
label: "npm exec azure-functions-core-tools@4 (installed func 4.0.5198 is too old for C# isolated)",
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("keeps the installed func command for supported Core Tools versions", () => {
|
|
53
|
+
expect(buildFunctionsCoreToolsCommand("csharp", "4.6.0")).toEqual({
|
|
54
|
+
command: "func",
|
|
55
|
+
argsPrefix: [],
|
|
56
|
+
label: "func 4.6.0",
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
26
60
|
it("uses webpack mode for npm-based Next.js dev", () => {
|
|
27
61
|
expect(buildNextDevArgs("npm", "3012")).toEqual(["next", "dev", "--port", "3012", "--webpack"]);
|
|
28
62
|
});
|
|
@@ -31,6 +65,48 @@ describe("dev command helpers", () => {
|
|
|
31
65
|
expect(buildNextDevArgs("pnpm", "3012")).toEqual(["exec", "next", "dev", "--port", "3012", "--webpack"]);
|
|
32
66
|
});
|
|
33
67
|
|
|
68
|
+
it("builds the Azure Functions base URL from host and port", () => {
|
|
69
|
+
expect(buildFunctionsBaseUrl(undefined, "7071")).toBe("http://localhost:7071");
|
|
70
|
+
expect(buildFunctionsBaseUrl("127.0.0.1", "7072")).toBe("http://127.0.0.1:7072");
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("gives C# more startup time before reporting readiness timeout", () => {
|
|
74
|
+
expect(getFunctionsReadinessTimeoutMs("csharp")).toBeGreaterThan(getFunctionsReadinessTimeoutMs("typescript"));
|
|
75
|
+
expect(getFunctionsReadinessTimeoutMs("csharp")).toBeGreaterThan(getFunctionsReadinessTimeoutMs("python"));
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it("waits until an HTTP server responds before reporting ready", async () => {
|
|
79
|
+
const server = http.createServer((_request, response) => {
|
|
80
|
+
response.writeHead(404);
|
|
81
|
+
response.end("not found");
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
await new Promise<void>((resolve) => {
|
|
85
|
+
server.listen(0, "127.0.0.1", () => resolve());
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const address = server.address();
|
|
89
|
+
if (!address || typeof address === "string") {
|
|
90
|
+
throw new Error("Failed to determine ephemeral port.");
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
try {
|
|
94
|
+
await expect(
|
|
95
|
+
waitForHttpServerReady(`http://127.0.0.1:${address.port}`, 2_000, 50)
|
|
96
|
+
).resolves.toBe(true);
|
|
97
|
+
} finally {
|
|
98
|
+
await new Promise<void>((resolve, reject) => {
|
|
99
|
+
server.close((error) => {
|
|
100
|
+
if (error) {
|
|
101
|
+
reject(error);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
resolve();
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
34
110
|
it("builds Python virtual environment paths under functions/.venv", () => {
|
|
35
111
|
const functionsDir = path.join("C:\\repo", "functions");
|
|
36
112
|
const paths = getPythonVirtualEnvPaths(functionsDir);
|
|
@@ -40,6 +116,15 @@ describe("dev command helpers", () => {
|
|
|
40
116
|
expect(paths.pythonExecutable.endsWith(process.platform === "win32" ? path.join("Scripts", "python.exe") : path.join("bin", "python"))).toBe(true);
|
|
41
117
|
});
|
|
42
118
|
|
|
119
|
+
it("targets C# bin and obj directories for build cleanup", () => {
|
|
120
|
+
const functionsDir = path.join("C:\\repo", "functions");
|
|
121
|
+
|
|
122
|
+
expect(getCSharpFunctionsBuildArtifactPaths(functionsDir)).toEqual([
|
|
123
|
+
path.join(functionsDir, "bin"),
|
|
124
|
+
path.join(functionsDir, "obj"),
|
|
125
|
+
]);
|
|
126
|
+
});
|
|
127
|
+
|
|
43
128
|
it("injects Python virtual environment settings for Functions", () => {
|
|
44
129
|
const functionsDir = path.join("C:\\repo", "functions");
|
|
45
130
|
const env = buildPythonFunctionsEnv({ PATH: "C:\\Windows\\System32" }, functionsDir);
|
|
@@ -154,4 +239,14 @@ describe("dev CLI parser", () => {
|
|
|
154
239
|
expect(optionsBeforeCommand).toMatchObject(expected);
|
|
155
240
|
expect(optionsBeforeCommand).toMatchObject(optionsAfterCommand);
|
|
156
241
|
});
|
|
242
|
+
|
|
243
|
+
it("keeps Azure Functions enabled by default", async () => {
|
|
244
|
+
const options = await parseDevOptions([
|
|
245
|
+
"node",
|
|
246
|
+
"swallowkit",
|
|
247
|
+
"dev",
|
|
248
|
+
]);
|
|
249
|
+
|
|
250
|
+
expect(options.noFunctions).toBe(false);
|
|
251
|
+
});
|
|
157
252
|
});
|
|
@@ -1,72 +1,52 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { parseModelFile } from "../core/scaffold/model-parser";
|
|
2
4
|
|
|
3
|
-
describe("
|
|
4
|
-
it("
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
describe("parseModelFile", () => {
|
|
6
|
+
it("preserves array and enum metadata for schemas with defaults", async () => {
|
|
7
|
+
const tempDir = fs.mkdtempSync(path.join(process.cwd(), ".tmp-model-parser-"));
|
|
8
|
+
const modelPath = path.join(tempDir, "product.ts");
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
export type Todo = z.infer<typeof Todo>;
|
|
13
|
-
`;
|
|
14
|
-
expect(parsePartitionKey(content)).toBe("/id");
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it("extracts explicit partitionKey with single quotes", () => {
|
|
18
|
-
const content = `
|
|
19
|
-
import { z } from 'zod/v4';
|
|
10
|
+
try {
|
|
11
|
+
fs.writeFileSync(
|
|
12
|
+
modelPath,
|
|
13
|
+
`import { z } from 'zod/v4';
|
|
20
14
|
|
|
21
|
-
export const
|
|
15
|
+
export const Product = z.object({
|
|
22
16
|
id: z.string(),
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
name: z.string().min(1),
|
|
18
|
+
price: z.number().min(0),
|
|
19
|
+
tags: z.array(z.string()).default([]),
|
|
20
|
+
status: z.enum(['draft', 'active', 'archived']).default('draft'),
|
|
21
|
+
createdAt: z.string().optional(),
|
|
22
|
+
updatedAt: z.string().optional(),
|
|
25
23
|
});
|
|
26
|
-
export type Order = z.infer<typeof Order>;
|
|
27
|
-
export const partitionKey = '/tenantId';
|
|
28
|
-
`;
|
|
29
|
-
expect(parsePartitionKey(content)).toBe("/tenantId");
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it("extracts explicit partitionKey with double quotes", () => {
|
|
33
|
-
const content = `
|
|
34
|
-
export const User = z.object({ id: z.string(), email: z.string() });
|
|
35
|
-
export const partitionKey = "/email";
|
|
36
|
-
`;
|
|
37
|
-
expect(parsePartitionKey(content)).toBe("/email");
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it("extracts /id as explicit partitionKey", () => {
|
|
41
|
-
const content = `
|
|
42
|
-
export const Todo = z.object({ id: z.string() });
|
|
43
|
-
export const partitionKey = '/id';
|
|
44
|
-
`;
|
|
45
|
-
expect(parsePartitionKey(content)).toBe("/id");
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it("handles nested/hierarchical partition key paths", () => {
|
|
49
|
-
const content = `
|
|
50
|
-
export const partitionKey = '/address/city';
|
|
51
|
-
`;
|
|
52
|
-
expect(parsePartitionKey(content)).toBe("/address/city");
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it("ignores commented-out partitionKey", () => {
|
|
56
|
-
const content = `
|
|
57
|
-
// export const partitionKey = '/tenantId';
|
|
58
|
-
export const Todo = z.object({ id: z.string() });
|
|
59
|
-
`;
|
|
60
|
-
// The regex matches inside comments too — this is acceptable since
|
|
61
|
-
// the pattern follows the same approach as parseConnectorConfig/parseAuthPolicy
|
|
62
|
-
// In practice, commented-out exports are rare in model files
|
|
63
|
-
expect(parsePartitionKey(content)).toBe("/tenantId");
|
|
64
|
-
});
|
|
65
24
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
25
|
+
export type Product = z.infer<typeof Product>;
|
|
26
|
+
`,
|
|
27
|
+
"utf-8"
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
const model = await parseModelFile(modelPath);
|
|
31
|
+
expect(model.fields).toEqual(
|
|
32
|
+
expect.arrayContaining([
|
|
33
|
+
expect.objectContaining({
|
|
34
|
+
name: "tags",
|
|
35
|
+
type: "string",
|
|
36
|
+
isArray: true,
|
|
37
|
+
isOptional: true,
|
|
38
|
+
}),
|
|
39
|
+
expect.objectContaining({
|
|
40
|
+
name: "status",
|
|
41
|
+
type: "string",
|
|
42
|
+
isArray: false,
|
|
43
|
+
isOptional: true,
|
|
44
|
+
enumValues: ["draft", "active", "archived"],
|
|
45
|
+
}),
|
|
46
|
+
])
|
|
47
|
+
);
|
|
48
|
+
} finally {
|
|
49
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
50
|
+
}
|
|
71
51
|
});
|
|
72
52
|
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import {
|
|
3
|
+
buildProjectLocalUvEnv,
|
|
4
|
+
buildUvPipInstallArgs,
|
|
5
|
+
buildUvVenvArgs,
|
|
6
|
+
getProjectLocalUvPaths,
|
|
7
|
+
getPythonProjectRoot,
|
|
8
|
+
} from "../utils/python-uv";
|
|
9
|
+
|
|
10
|
+
describe("python uv helpers", () => {
|
|
11
|
+
it("keeps uv-managed state inside the project", () => {
|
|
12
|
+
const projectRoot = "C:\\repo";
|
|
13
|
+
const uvPaths = getProjectLocalUvPaths(projectRoot);
|
|
14
|
+
|
|
15
|
+
expect(uvPaths.stateDir).toBe(path.join(projectRoot, ".uv"));
|
|
16
|
+
expect(uvPaths.cacheDir).toBe(path.join(projectRoot, ".uv", "cache"));
|
|
17
|
+
expect(uvPaths.pythonInstallDir).toBe(path.join(projectRoot, ".uv", "python"));
|
|
18
|
+
expect(uvPaths.localUvExecutable.endsWith(process.platform === "win32" ? path.join(".uv", "bin", "uv.exe") : path.join(".uv", "bin", "uv"))).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("derives the project root from the functions directory", () => {
|
|
22
|
+
expect(getPythonProjectRoot(path.join("C:\\repo", "functions"))).toBe("C:\\repo");
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("builds project-local uv environment variables", () => {
|
|
26
|
+
const env = buildProjectLocalUvEnv({ PATH: "C:\\Windows\\System32" }, "C:\\repo");
|
|
27
|
+
|
|
28
|
+
expect(env.UV_CACHE_DIR).toBe(path.join("C:\\repo", ".uv", "cache"));
|
|
29
|
+
expect(env.UV_PYTHON_INSTALL_DIR).toBe(path.join("C:\\repo", ".uv", "python"));
|
|
30
|
+
expect(env.UV_TOOL_DIR).toBe(path.join("C:\\repo", ".uv", "tools"));
|
|
31
|
+
expect(env.UV_TOOL_BIN_DIR).toBe(path.join("C:\\repo", ".uv", "tools", "bin"));
|
|
32
|
+
expect(env.UV_MANAGED_PYTHON).toBe("true");
|
|
33
|
+
expect(env.UV_PYTHON_PREFERENCE).toBe("managed");
|
|
34
|
+
expect(env.UV_PYTHON_NO_REGISTRY).toBe(process.platform === "win32" ? "true" : undefined);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("builds uv commands for venv creation and requirements installation", () => {
|
|
38
|
+
expect(buildUvVenvArgs(".venv")).toEqual(["venv", ".venv", "--python", "3.11", "--managed-python"]);
|
|
39
|
+
expect(buildUvPipInstallArgs(path.join("C:\\repo", "functions", ".venv", "Scripts", "python.exe"), "requirements.txt")).toEqual([
|
|
40
|
+
"pip",
|
|
41
|
+
"install",
|
|
42
|
+
"--python",
|
|
43
|
+
path.join("C:\\repo", "functions", ".venv", "Scripts", "python.exe"),
|
|
44
|
+
"-r",
|
|
45
|
+
"requirements.txt",
|
|
46
|
+
]);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -1,39 +1,67 @@
|
|
|
1
1
|
import * as path from "path";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
NSWAG_CONSOLECORE_VERSION,
|
|
4
|
+
buildCSharpCodegenToolManifestSource,
|
|
5
|
+
buildPythonCodegenRequirementsSource,
|
|
6
|
+
getCSharpNativeGeneratorArgs,
|
|
7
|
+
getCSharpSchemaModelPath,
|
|
8
|
+
getCSharpSchemaOptionPath,
|
|
9
|
+
getPythonNativeGeneratorArgs,
|
|
10
|
+
getPythonSchemaModelPath,
|
|
11
|
+
} from "../core/scaffold/native-schema-generator";
|
|
3
12
|
|
|
4
|
-
describe("
|
|
5
|
-
it("
|
|
6
|
-
const
|
|
7
|
-
const globalPropertyIndex = args.indexOf("--global-property");
|
|
13
|
+
describe("native schema generators", () => {
|
|
14
|
+
it("writes a dotnet tool manifest for NSwag", () => {
|
|
15
|
+
const manifest = JSON.parse(buildCSharpCodegenToolManifestSource());
|
|
8
16
|
|
|
9
|
-
expect(
|
|
10
|
-
expect(
|
|
17
|
+
expect(manifest.version).toBe(1);
|
|
18
|
+
expect(manifest.tools["nswag.consolecore"].version).toBe(NSWAG_CONSOLECORE_VERSION);
|
|
19
|
+
expect(manifest.tools["nswag.consolecore"].commands).toEqual(["nswag"]);
|
|
11
20
|
});
|
|
12
21
|
|
|
13
|
-
it("
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
expect(globalPropertyIndex).toBeGreaterThanOrEqual(0);
|
|
18
|
-
expect(args[globalPropertyIndex + 1]).toBe(
|
|
19
|
-
"models,apis=false,supportingFiles=false,modelDocs=false,modelTests=false"
|
|
20
|
-
);
|
|
22
|
+
it("pins python schema generation requirements without Java", () => {
|
|
23
|
+
expect(buildPythonCodegenRequirementsSource()).toContain("datamodel-code-generator");
|
|
24
|
+
expect(buildPythonCodegenRequirementsSource()).not.toContain("openapi-generator");
|
|
21
25
|
});
|
|
22
26
|
|
|
23
|
-
it("
|
|
24
|
-
const
|
|
27
|
+
it("builds NSwag arguments for model-only C# generation", () => {
|
|
28
|
+
const outputPath = path.join("C:\\temp\\generated\\csharp-models", ".native-temp", "Contracts.cs");
|
|
29
|
+
const args = getCSharpNativeGeneratorArgs("C:\\temp\\todo.openapi.json", outputPath);
|
|
25
30
|
|
|
26
|
-
expect(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
expect(args.slice(0, 4)).toEqual(["tool", "run", "nswag", "openapi2csclient"]);
|
|
32
|
+
expect(args).toContain("/GenerateClientClasses:false");
|
|
33
|
+
expect(args).toContain("/GenerateDtoTypes:true");
|
|
34
|
+
expect(args).toContain("/GenerateNullableReferenceTypes:true");
|
|
35
|
+
expect(args).toContain(`/output:${outputPath}`);
|
|
31
36
|
});
|
|
32
37
|
|
|
33
|
-
it("
|
|
34
|
-
const
|
|
38
|
+
it("builds datamodel-code-generator arguments for python assets", () => {
|
|
39
|
+
const outputPath = path.join("C:\\temp\\generated\\python-models", ".native-temp", "models.py");
|
|
40
|
+
const args = getPythonNativeGeneratorArgs("C:\\temp\\todo.openapi.json", outputPath);
|
|
41
|
+
|
|
42
|
+
expect(args).toEqual(
|
|
43
|
+
expect.arrayContaining([
|
|
44
|
+
"-m",
|
|
45
|
+
"datamodel_code_generator",
|
|
46
|
+
"--input-file-type",
|
|
47
|
+
"openapi",
|
|
48
|
+
"--output-model-type",
|
|
49
|
+
"pydantic_v2.BaseModel",
|
|
50
|
+
"--disable-timestamp",
|
|
51
|
+
outputPath,
|
|
52
|
+
])
|
|
53
|
+
);
|
|
54
|
+
});
|
|
35
55
|
|
|
36
|
-
|
|
37
|
-
expect(
|
|
56
|
+
it("keeps generated asset paths under functions/generated", () => {
|
|
57
|
+
expect(getCSharpSchemaModelPath("C:\\temp\\generated\\csharp-models", "Product")).toBe(
|
|
58
|
+
path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Model", "Product.cs")
|
|
59
|
+
);
|
|
60
|
+
expect(getCSharpSchemaOptionPath("C:\\temp\\generated\\csharp-models")).toBe(
|
|
61
|
+
path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Client", "Option.cs")
|
|
62
|
+
);
|
|
63
|
+
expect(getPythonSchemaModelPath("C:\\temp\\generated\\python-models", "Product")).toBe(
|
|
64
|
+
path.join("C:\\temp\\generated\\python-models", "backend_models", "models", "product.py")
|
|
65
|
+
);
|
|
38
66
|
});
|
|
39
67
|
});
|