commit 29ce9074536866ab7be2a9421890be1efb35078b Author: xion Date: Wed Jul 16 18:49:30 2025 +0800 temp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9726dce --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +data.json \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..a5aa07b --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +//npm.xiongxiao.me/:_authToken=${ME_NPM_TOKEN} +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/apps/ai-cli/gen/data.ts b/apps/ai-cli/gen/data.ts new file mode 100644 index 0000000..b169223 --- /dev/null +++ b/apps/ai-cli/gen/data.ts @@ -0,0 +1,48 @@ +import glob from 'fast-glob'; +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; + +export interface FileInfo { + name: string; + path: string; + preview: boolean; +} + +export const getList = async (dir: string): Promise => { + try { + const files = await glob('**/*', { + cwd: dir, + dot: false, + onlyFiles: true, + ignore: ['**/node_modules/**', '**/dist/**', '**/.git/**'] + }); + return files; + } catch (error) { + console.error('获取文件列表失败:', error); + return []; + } +}; + +export const getJson = async (dir: string): Promise<{ files: FileInfo[] }> => { + const fileList = await getList(dir); + + const filesData: FileInfo[] = fileList.map(filePath => ({ + name: path.basename(filePath), + path: filePath, + preview: false + })); + + return { files: filesData }; +}; + +export const saveJsonToFile = async (dir: string, outputPath: string = 'data.json'): Promise => { + try { + const jsonData = await getJson(dir); + await fs.writeFile(outputPath, JSON.stringify(jsonData, null, 2), 'utf-8'); + console.log(`JSON数据已保存到 ${outputPath}`); + } catch (error) { + console.error('保存JSON数据失败:', error); + } +}; + +saveJsonToFile('.') \ No newline at end of file diff --git a/apps/ai-cli/gen/readme.md b/apps/ai-cli/gen/readme.md new file mode 100644 index 0000000..2cd4903 --- /dev/null +++ b/apps/ai-cli/gen/readme.md @@ -0,0 +1,18 @@ + +## data.json + +列出当前文件夹的所有的文件列表,然后,生成一个json的数组。 + +数据格式是: + +data.json的格式是 +{ + "files": [ + { + "name": "文件名", + "path": "文件路径", + "preview": false + }] +} + +文件路径默认是相对运行的路径,preview默认为false \ No newline at end of file diff --git a/apps/ai-cli/index.html b/apps/ai-cli/index.html new file mode 100644 index 0000000..5578165 --- /dev/null +++ b/apps/ai-cli/index.html @@ -0,0 +1 @@ +test ai-cli \ No newline at end of file diff --git a/apps/ai-cli/package.json b/apps/ai-cli/package.json new file mode 100644 index 0000000..46367a4 --- /dev/null +++ b/apps/ai-cli/package.json @@ -0,0 +1,15 @@ +{ + "name": "@kevisual/ai-cli", + "version": "0.0.1", + "description": "", + "main": "index.js", + "basename": "/root/ai-cli", + "scripts": { + "pub": "ev deploy . -k ai-cli -v 0.0.1 -u" + }, + "keywords": [], + "author": "abearxiong (https://www.xiongxiao.me)", + "license": "MIT", + "packageManager": "pnpm@10.6.2", + "type": "module" +} diff --git a/apps/ai-cli/readme.md b/apps/ai-cli/readme.md new file mode 100644 index 0000000..4c3d4c6 --- /dev/null +++ b/apps/ai-cli/readme.md @@ -0,0 +1,2 @@ +# 关于ai的工具库 + diff --git a/package.json b/package.json new file mode 100644 index 0000000..ecf8c18 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "@kevisual/easy-tools", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "abearxiong (https://www.xiongxiao.me)", + "license": "MIT", + "packageManager": "pnpm@10.7.0", + "type": "module", + "publishConfig": { + "access": "public" + }, + "files": [ + "apps" + ], + "devDependencies": { + "@types/node": "^24.0.14", + "fast-glob": "^3.3.3" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..aae1673 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,168 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@types/node': + specifier: ^24.0.14 + version: 24.0.14 + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 + + apps/ai-cli: {} + +packages: + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@types/node@24.0.14': + resolution: {integrity: sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + +snapshots: + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@types/node@24.0.14': + dependencies: + undici-types: 7.8.0 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + picomatch@2.3.1: {} + + queue-microtask@1.2.3: {} + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + undici-types@7.8.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..855160b --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - apps/* \ No newline at end of file