From 575a06a41b8fd239eb44fbf3fd811482dc9e65b4 Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Fri, 23 Jan 2026 00:21:19 +0100 Subject: [PATCH] fix: node-22 runtime again, bum-1.1 not working --- appwrite.config.json | 20 +++--- functions/aemet/.gitignore | 17 +---- functions/aemet/.prettierrc.json | 6 ++ functions/aemet/README.md | 11 ++- functions/aemet/bun.lock | 35 ---------- functions/aemet/env.d.ts | 8 --- functions/aemet/package-lock.json | 111 ++++++++++++++++++++++++++++++ functions/aemet/package.json | 5 +- functions/aemet/src/main.ts | 2 +- functions/aemet/tsconfig.json | 15 ++++ 10 files changed, 152 insertions(+), 78 deletions(-) create mode 100644 functions/aemet/.prettierrc.json delete mode 100644 functions/aemet/bun.lock delete mode 100644 functions/aemet/env.d.ts create mode 100644 functions/aemet/package-lock.json create mode 100644 functions/aemet/tsconfig.json diff --git a/appwrite.config.json b/appwrite.config.json index 08516d5..3c0fc93 100644 --- a/appwrite.config.json +++ b/appwrite.config.json @@ -40,22 +40,24 @@ }, "functions": [ { - "$id": "697270190009ebe7e1a1", + "$id": "6972ac200017d1159562", "name": "aemet", - "runtime": "bun-1.1", - "path": "functions/aemet", - "entrypoint": "src/main.ts", + "runtime": "node-22", + "specification": "s-1vcpu-512mb", "execute": [ "any" ], - "enabled": true, - "logging": true, "events": [], + "scopes": [ + "users.read" + ], "schedule": "", "timeout": 15, - "commands": "bun install", - "scopes": [], - "specification": "s-0.5vcpu-512mb" + "enabled": true, + "logging": true, + "entrypoint": "dist/main.js", + "commands": "npm install && npm run build", + "path": "functions/aemet" } ] } diff --git a/functions/aemet/.gitignore b/functions/aemet/.gitignore index 42cbc54..46afb6b 100644 --- a/functions/aemet/.gitignore +++ b/functions/aemet/.gitignore @@ -1,4 +1,3 @@ -### Node ### # Logs logs *.log @@ -103,6 +102,7 @@ dist # vuepress v2.x temp and cache directory .temp +.cache # Docusaurus cache and generated files .docusaurus @@ -129,20 +129,5 @@ dist .yarn/install-state.gz .pnp.* -### Node Patch ### -# Serverless Webpack directories -.webpack/ - -# Optional stylelint cache - -# SvelteKit build / generate output -.svelte-kit - -# End of https://www.toptal.com/developers/gitignore/api/node - -# OS -## Mac -.DS_Store - # Directory used by Appwrite CLI for local development .appwrite \ No newline at end of file diff --git a/functions/aemet/.prettierrc.json b/functions/aemet/.prettierrc.json new file mode 100644 index 0000000..0a72520 --- /dev/null +++ b/functions/aemet/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": true +} diff --git a/functions/aemet/README.md b/functions/aemet/README.md index c7f43bf..47cc077 100644 --- a/functions/aemet/README.md +++ b/functions/aemet/README.md @@ -1,6 +1,4 @@ -# ⚡ Bun Starter Function - -A simple starter function. Edit `src/main.ts` to get started and create something awesome! 🚀 +# aemet ## 🧰 Usage @@ -37,12 +35,11 @@ Sample `200` Response: | Setting | Value | | ----------------- | ------------- | -| Runtime | Bun (1.0) | -| Entrypoint | `src/main.ts` | -| Build Commands | `bun install` | +| Runtime | Node (18.0) | +| Entrypoint | `src/main.js` | +| Build Commands | `npm install` | | Permissions | `any` | | Timeout (Seconds) | 15 | -| Scopes | `users.read` | ## 🔒 Environment Variables diff --git a/functions/aemet/bun.lock b/functions/aemet/bun.lock deleted file mode 100644 index 8d9a6ec..0000000 --- a/functions/aemet/bun.lock +++ /dev/null @@ -1,35 +0,0 @@ -{ - "lockfileVersion": 1, - "configVersion": 1, - "workspaces": { - "": { - "name": "aemet", - "dependencies": { - "fast-xml-parser": "^5.3.3", - "node-appwrite": "^20.2.1", - "typescript": "^5.4.5", - }, - "devDependencies": { - "@types/node": "^22.19.0", - "prettier": "^3.2.5", - }, - }, - }, - "packages": { - "@types/node": ["@types/node@22.19.7", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw=="], - - "fast-xml-parser": ["fast-xml-parser@5.3.3", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA=="], - - "node-appwrite": ["node-appwrite@20.3.0", "", { "dependencies": { "node-fetch-native-with-agent": "1.7.2" } }, "sha512-vaxlpkNTtjkccyngwc9HRSwQQasZ/CJri6KMZ62mlDAM1YdvOgqIM8EYJwvhx/fiHdyjfxithFcmnvzUR9TGTQ=="], - - "node-fetch-native-with-agent": ["node-fetch-native-with-agent@1.7.2", "", {}, "sha512-5MaOOCuJEvcckoz7/tjdx1M6OusOY6Xc5f459IaruGStWnKzlI1qpNgaAwmn4LmFYcsSlj+jBMk84wmmRxfk5g=="], - - "prettier": ["prettier@3.8.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg=="], - - "strnum": ["strnum@2.1.2", "", {}, "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ=="], - - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - - "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - } -} diff --git a/functions/aemet/env.d.ts b/functions/aemet/env.d.ts deleted file mode 100644 index c84c36a..0000000 --- a/functions/aemet/env.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare module "bun" { - interface Env { - APPWRITE_FUNCTION_API_ENDPOINT: string; - APPWRITE_FUNCTION_PROJECT_ID: string; - } -} - -export {}; diff --git a/functions/aemet/package-lock.json b/functions/aemet/package-lock.json new file mode 100644 index 0000000..a1688de --- /dev/null +++ b/functions/aemet/package-lock.json @@ -0,0 +1,111 @@ +{ + "name": "aemet", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "aemet", + "version": "1.0.0", + "dependencies": { + "fast-xml-parser": "^5.3.3", + "node-appwrite": "^20.2.1", + "typescript": "^5.4.5" + }, + "devDependencies": { + "@types/node": "^22.19.0", + "prettier": "^3.2.5" + } + }, + "node_modules/@types/node": { + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.3.tgz", + "integrity": "sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/node-appwrite": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/node-appwrite/-/node-appwrite-20.2.1.tgz", + "integrity": "sha512-RweIh+3RHjprsxhWaJzcQr/UDMBMsZCma50TIJ9t3onVgs5jAT9aqFnsMlaaC9QZn1sXpPUQV90W6uvtm64DnQ==", + "license": "BSD-3-Clause", + "dependencies": { + "node-fetch-native-with-agent": "1.7.2" + } + }, + "node_modules/node-fetch-native-with-agent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-fetch-native-with-agent/-/node-fetch-native-with-agent-1.7.2.tgz", + "integrity": "sha512-5MaOOCuJEvcckoz7/tjdx1M6OusOY6Xc5f459IaruGStWnKzlI1qpNgaAwmn4LmFYcsSlj+jBMk84wmmRxfk5g==", + "license": "MIT" + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/strnum": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", + "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/functions/aemet/package.json b/functions/aemet/package.json index 4d390c4..85bce6e 100644 --- a/functions/aemet/package.json +++ b/functions/aemet/package.json @@ -2,10 +2,11 @@ "name": "aemet", "version": "1.0.0", "description": "", - "main": "src/main.ts", + "main": "src/main.js", "type": "module", "scripts": { - "format": "prettier --write ." + "format": "prettier --write .", + "build": "tsc" }, "dependencies": { "fast-xml-parser": "^5.3.3", diff --git a/functions/aemet/src/main.ts b/functions/aemet/src/main.ts index 960aa51..9991fc7 100644 --- a/functions/aemet/src/main.ts +++ b/functions/aemet/src/main.ts @@ -18,7 +18,7 @@ export default async ({ req, res, log, error }: any) => { throw new Error(`Error! status: ${response.status}`); } - const decoder = new TextDecoder('iso-8859-1'); // It should be iso-8859-15 but Bun 1.1 does not support it + const decoder = new TextDecoder('iso-8859-15'); let xml = decoder.decode(await response.arrayBuffer()) const parser = new XMLParser(); diff --git a/functions/aemet/tsconfig.json b/functions/aemet/tsconfig.json new file mode 100644 index 0000000..ad43694 --- /dev/null +++ b/functions/aemet/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "rootDir": "src", + "resolveJsonModule": true, + "allowJs": true, + "outDir": "dist", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitAny": true, + "skipLibCheck": true + } +}