From ac7248ec0774741ab5be8bc2b2bad085a4d2e159 Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 12 Feb 2026 07:54:17 +0000 Subject: [PATCH] chore: initialize bun project with dependencies --- .gitignore | 5 +++++ TODO.md | 20 ++++++++++++++++++++ bun.lock | 46 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 15 ++++++++++----- src/server.ts | 1 + tsconfig.json | 17 +++++++++++++++++ 6 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 TODO.md create mode 100644 bun.lock create mode 100644 src/server.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4274b51 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +.env +*.log +.DS_Store diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..a366ef7 --- /dev/null +++ b/TODO.md @@ -0,0 +1,20 @@ +# Receipt Printer 实施进度 + +## 任务列表 + +- [ ] Task 1: 项目初始化 +- [ ] Task 2: 模板类型定义 +- [ ] Task 3: YAML 模板解析器 +- [ ] Task 4: Schema 提取器 +- [ ] Task 5: ESC/POS 生成器 +- [ ] Task 6: 打印机连接器 +- [ ] Task 7: Hono HTTP 服务搭建 +- [ ] Task 8: Web 界面基础 +- [ ] Task 9: 加载示例模板 +- [ ] Task 10: 启动脚本和 README + +## 当前任务 +Task 1: 项目初始化 + +## 已完成 +(暂无) diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..8973adc --- /dev/null +++ b/bun.lock @@ -0,0 +1,46 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "receipt-printer", + "dependencies": { + "hono": "^4.11.9", + "js-yaml": "^4.1.1", + "mustache": "^4.2.0", + }, + "devDependencies": { + "@types/bun": "latest", + "@types/js-yaml": "^4.0.9", + "@types/mustache": "^4.2.6", + "bun-types": "^1.3.9", + }, + "peerDependencies": { + "typescript": "^5", + }, + }, + }, + "packages": { + "@types/bun": ["@types/bun@1.3.9", "", { "dependencies": { "bun-types": "1.3.9" } }, "sha512-KQ571yULOdWJiMH+RIWIOZ7B2RXQGpL1YQrBtLIV3FqDcCu6FsbFUBwhdKUlCKUpS3PJDsHlJ1QKlpxoVR+xtw=="], + + "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + + "@types/mustache": ["@types/mustache@4.2.6", "", {}, "sha512-t+8/QWTAhOFlrF1IVZqKnMRJi84EgkIK5Kh0p2JV4OLywUvCwJPFxbJAl7XAow7DVIHsF+xW9f1MVzg0L6Szjw=="], + + "@types/node": ["@types/node@25.2.3", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "bun-types": ["bun-types@1.3.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-+UBWWOakIP4Tswh0Bt0QD0alpTY8cb5hvgiYeWCMet9YukHbzuruIEeXC2D7nMJPB12kbh8C7XJykSexEqGKJg=="], + + "hono": ["hono@4.11.9", "", {}, "sha512-Eaw2YTGM6WOxA6CXbckaEvslr2Ne4NFsKrvc0v97JD5awbmeBLO5w9Ho9L9kmKonrwF9RJlW6BxT1PVv/agBHQ=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "mustache": ["mustache@4.2.0", "", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + } +} diff --git a/package.json b/package.json index 0608e65..edcacbc 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,15 @@ "test": "bun test" }, "dependencies": { - "hono": "^4.0.0", - "js-yaml": "^4.1.0", + "hono": "^4.11.9", + "js-yaml": "^4.1.1", "mustache": "^4.2.0" }, "devDependencies": { + "@types/bun": "latest", "@types/js-yaml": "^4.0.9", - "@types/mustache": "^4.2.5", - "bun-types": "latest" + "@types/mustache": "^4.2.6", + "bun-types": "^1.3.9" }, "keywords": [ "receipt", @@ -26,5 +27,9 @@ "thermal-printer", "80mm" ], - "license": "MIT" + "license": "MIT", + "private": true, + "peerDependencies": { + "typescript": "^5" + } } diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 0000000..f67b2c6 --- /dev/null +++ b/src/server.ts @@ -0,0 +1 @@ +console.log("Hello via Bun!"); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8401953 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "lib": ["ESNext"], + "module": "esnext", + "target": "esnext", + "moduleResolution": "bundler", + "strict": true, + "declaration": true, + "outDir": "./dist", + "rootDir": "./src", + "esModuleInterop": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +}