npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gitmemo

v0.0.4

Published

[![](https://img.shields.io/npm/v/gitmemo.svg)](https://www.npmjs.com/package/gitmemo) ![](https://img.shields.io/npm/l/gitmemo.svg)

Downloads

2

Readme

GitMemo

Development

🔌 Setup

pnpm を利用して依存関係をインストールする。

pnpm install

🔧 Start dev server

フロントエンドの開発サーバを起動する。

pnpm run dev:client

これは Vite によって起動されており単体では API へのリクエストは行えないが、下記のサーバーを起動した状態であればその限りではない。

サーバーを起動する。

# pnpm run build を先に実行しておく必要がある
pnpm run dev:server

これは nodemon によって起動され、src/server または src/domain 配下を編集すると自動で再起動される。

build されたフロントエンドのリソースを静的ファイルとして読み込んで利用しており、ブラウザで UI も含め確認することができる(pnpm run build:client を実行しない限りフロントエンドの編集は反映されない)。

📦 Create and run npm package locally

ローカル環境で npm パッケージを作成して playground ディレクトリで実行する。

pnpm run pack

これは npx gitmemo と同じ挙動になる。

内部で npm pack しており環境によってはうまくいかないかもしれない。npm ver.8.15.0 では意図した通りに動作した。

📂 Directory structure

オニオンアーキテクチャの思想をベースにしている。

| パッケージ名 | 役割 | | ------------- | -------------------------------------------------------------------- | | Commands | コマンドラインでユーザーによって実行される | | Api | フロントエンドとやりとりをする | | Repositories | 抽象化されたデータ永続化ロジック | | Controllers | リクエストを元に Repository を Usecases に DI する | | Usecases | アプリケーション固有のロジック(このシステムが何をするか)を表現する | | Domain | ドメインオブジェクトとルール | | Components | UI コンポーネント | | Pages | ページを表示する | | Public/Assets | 画像等の静的ファイル | | Composables | ステートフルなロジック |

gitmemo

@startuml
rectangle src {
    rectangle Client {
        rectangle Pages
        rectangle Components
        rectangle PublicAssets
        rectangle Composables
        Components --> PublicAssets
        Components --> Composables
        Pages -> Components
        Pages -> PublicAssets
        Pages --> Composables
    }

    rectangle Server {
        rectangle Api
        rectangle Commands
        rectangle Controllers
        rectangle Repositories
        rectangle Usecases
        Controllers -> Repositories
        Commands --> Controllers
        Api --> Controllers
        Controllers --> Usecases: Repositoryを注入する
    }

    rectangle Domain

    Usecases --> Domain
    Repositories --> Domain
    Pages ---> Domain
    Components --> Domain
    Composables --> Domain
    Api ..> Client: ビルドされたリソースを参照する
}
@enduml