Open15

receiptlineサーバーの作成(試行錯誤中)

草野洋平草野洋平

何回か作りそうなのでまとめていく。

nvmのインストール

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
草野洋平草野洋平

最後に出てきたやつをコピペ

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
草野洋平草野洋平

コードはメチャクチャ簡単にこんなん。

index.ts
import { Elysia } from "elysia";
import { cors } from '@elysiajs/cors'
import * as receiptIo from "receiptio";

const app = new Elysia()
.use(cors())
.get("/", () => "Hello Elysia")
.post("/print", async({body}) => {
  // console.log(body);

  const { markdown } = body;
  // console.log(markdown);
  receiptIo.print(markdown, "-d /dev/usb/lp0 -l ja -p -c 42");
  return new Response("Printed!");
})
.listen(3000);

console.log(
  `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);
草野洋平草野洋平

fsのユーザーがうまくいっていなさそうだけど、普通にlpグループには入ってるんだよね。。

草野洋平草野洋平

pnpmだとうまく行ってた気もするのでpnpm + hono で愚直にserviceファイル書いてやってみる。

草野洋平草野洋平

pm2 + pnpm + honoでうまく行った。

bunはまだ自分には早すぎた・・