* commit raw requirements Signed-off-by: pyranota <pyra@duck.com> * raw requirements Signed-off-by: pyranota <pyra@duck.com> * implement `parse_annotation` Signed-off-by: pyranota <pyra@duck.com> * more progress on wdeps Signed-off-by: pyranota <pyra@duck.com> * more progress Signed-off-by: pyranota <pyra@duck.com> * fixes Signed-off-by: pyranota <pyra@duck.com> * more progress Signed-off-by: pyranota <pyra@duck.com> * fixes Signed-off-by: pyranota <pyra@duck.com> * cli improvements + raw deps Signed-off-by: pyranota <pyra@duck.com> * cleanup Signed-off-by: pyranota <pyra@duck.com> * fix python versions Signed-off-by: pyranota <pyra@duck.com> * progress Signed-off-by: pyranota <pyra@duck.com> * update :) Signed-off-by: pyranota <pyra@duck.com> * add MaybeLock Signed-off-by: pyranota <pyra@duck.com> * go WIP Signed-off-by: pyranota <pyra@duck.com> * fix python ignoring py version from requirements Signed-off-by: pyranota <pyra@duck.com> * optimize php Signed-off-by: pyranota <pyra@duck.com> * require admin to alter Signed-off-by: pyranota <pyra@duck.com> * fix(cli): flow generateLocks raw deps Signed-off-by: pyranota <pyra@duck.com> * progress in checklist Signed-off-by: pyranota <pyra@duck.com> * fix agent workers Signed-off-by: pyranota <pyra@duck.com> * nits Signed-off-by: pyranota <pyra@duck.com> * nits Signed-off-by: pyranota <pyra@duck.com> * nit: remove default features Signed-off-by: pyranota <pyra@duck.com> * oh-wow Signed-off-by: pyranota <pyra@duck.com> * remove dbg! Signed-off-by: pyranota <pyra@duck.com> * nits Signed-off-by: pyranota <pyra@duck.com> * add indexes Signed-off-by: pyranota <pyra@duck.com> * cleanup Signed-off-by: pyranota <pyra@duck.com> * nits Signed-off-by: pyranota <pyra@duck.com> * remove todos Signed-off-by: pyranota <pyra@duck.com> * fix cli Signed-off-by: pyranota <pyra@duck.com> * add debug flag Signed-off-by: pyranota <pyra@duck.com> * cli: remove noise Signed-off-by: pyranota <pyra@duck.com> * fix cli Signed-off-by: pyranota <pyra@duck.com> * remove todos Signed-off-by: pyranota <pyra@duck.com> * trigger deps correctly Signed-off-by: pyranota <pyra@duck.com> * fix frontend Signed-off-by: pyranota <pyra@duck.com> * fix frontend again Signed-off-by: pyranota <pyra@duck.com> * finally fix frontend Signed-off-by: pyranota <pyra@duck.com> * ee repo ref Signed-off-by: pyranota <pyra@duck.com> * fix all Signed-off-by: pyranota <pyra@duck.com> * more fixes... Signed-off-by: pyranota <pyra@duck.com> * remove test Signed-off-by: pyranota <pyra@duck.com> * Update backend-test.yml * comment out legacy test Signed-off-by: pyranota <pyra@duck.com> * fix ci Signed-off-by: pyranota <pyra@duck.com> * fix ci? Signed-off-by: pyranota <pyra@duck.com> * comment out thing Signed-off-by: pyranota <pyra@duck.com> * ignore test Signed-off-by: pyranota <pyra@duck.com> * ci Signed-off-by: pyranota <pyra@duck.com> * base fixture Signed-off-by: pyranota <pyra@duck.com> * fix regression Signed-off-by: pyranota <pyra@duck.com> * fix docs links Signed-off-by: pyranota <pyra@duck.com> * update min version Signed-off-by: pyranota <pyra@duck.com> * simplify * implement cache for get_latest Signed-off-by: pyranota <pyra@duck.com> * move to workspace settings Signed-off-by: pyranota <pyra@duck.com> * sqlx + migration Signed-off-by: pyranota <pyra@duck.com> * more migrations Signed-off-by: pyranota <pyra@duck.com> * use box pin Signed-off-by: pyranota <pyra@duck.com> * nit Signed-off-by: pyranota <pyra@duck.com> --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
99 lines
2.8 KiB
TypeScript
99 lines
2.8 KiB
TypeScript
export type ScriptLanguage =
|
|
| "python3"
|
|
| "deno"
|
|
| "bun"
|
|
| "nativets"
|
|
| "go"
|
|
| "bash"
|
|
| "powershell"
|
|
| "postgresql"
|
|
| "mysql"
|
|
| "bigquery"
|
|
| "duckdb"
|
|
| "oracledb"
|
|
| "snowflake"
|
|
| "mssql"
|
|
| "graphql"
|
|
| "php"
|
|
| "rust"
|
|
| "csharp"
|
|
| "nu"
|
|
| "ansible"
|
|
| "ruby"
|
|
| "java";
|
|
// for related places search: ADD_NEW_LANG
|
|
|
|
// To make language support raw requirements:
|
|
// 1. Add value here
|
|
// 2. Modify backend to allow raw deps
|
|
export type WorkspaceDependenciesLanguage =
|
|
| { language: "bun", filename /** (raw requirements filename) */: "package.json" }
|
|
| { language: "python3", filename: "requirements.in" }
|
|
| { language: "php", filename: "composer.json" }
|
|
| { language: "go", filename: "go.mod" };
|
|
|
|
export const workspaceDependenciesLanguages: WorkspaceDependenciesLanguage[] = [
|
|
{ language: "bun", filename: "package.json" },
|
|
{ language: "python3", filename: "requirements.in" },
|
|
{ language: "php", filename: "composer.json" },
|
|
{ language: "go", filename: "go.mod" },
|
|
] as const;
|
|
|
|
export function inferContentTypeFromFilePath(
|
|
contentPath: string,
|
|
defaultTs: "bun" | "deno" | undefined
|
|
): ScriptLanguage {
|
|
if (contentPath.endsWith(".py")) {
|
|
return "python3";
|
|
} else if (contentPath.endsWith("fetch.ts")) {
|
|
return "nativets";
|
|
} else if (contentPath.endsWith("bun.ts")) {
|
|
return "bun";
|
|
} else if (contentPath.endsWith("deno.ts")) {
|
|
return "deno";
|
|
} else if (contentPath.endsWith(".ts")) {
|
|
return defaultTs ?? "bun";
|
|
} else if (contentPath.endsWith(".go")) {
|
|
return "go";
|
|
} else if (contentPath.endsWith(".my.sql")) {
|
|
return "mysql";
|
|
} else if (contentPath.endsWith(".bq.sql")) {
|
|
return "bigquery";
|
|
} else if (contentPath.endsWith(".odb.sql")) {
|
|
return "oracledb";
|
|
} else if (contentPath.endsWith(".duckdb.sql")) {
|
|
return "duckdb";
|
|
} else if (contentPath.endsWith(".sf.sql")) {
|
|
return "snowflake";
|
|
} else if (contentPath.endsWith(".ms.sql")) {
|
|
return "mssql";
|
|
} else if (contentPath.endsWith(".pg.sql")) {
|
|
return "postgresql";
|
|
} else if (contentPath.endsWith(".gql")) {
|
|
return "graphql";
|
|
} else if (contentPath.endsWith(".sh")) {
|
|
return "bash";
|
|
} else if (contentPath.endsWith(".ps1")) {
|
|
return "powershell";
|
|
} else if (contentPath.endsWith(".php")) {
|
|
return "php";
|
|
} else if (contentPath.endsWith(".rs")) {
|
|
return "rust";
|
|
} else if (contentPath.endsWith(".cs")) {
|
|
return "csharp";
|
|
} else if (contentPath.endsWith(".playbook.yml")) {
|
|
return "ansible";
|
|
} else if (contentPath.endsWith(".nu")) {
|
|
return "nu";
|
|
} else if (contentPath.endsWith(".java")) {
|
|
return "java";
|
|
} else if (contentPath.endsWith(".rb")) {
|
|
return "ruby";
|
|
// for related places search: ADD_NEW_LANG
|
|
} else {
|
|
throw new Error(
|
|
"Invalid language: " + contentPath.substring(contentPath.lastIndexOf("."))
|
|
);
|
|
}
|
|
}
|