Skip to content
akameco edited this page Nov 6, 2017 · 9 revisions

s2s


Build Status Coverage Status tested with jest styled with prettier lerna

ASTのパワーによる超高速コーディング

詳しくは、examplesを見てください。

コンセプト

ソースコードからソースコードへのリアルタイムコード生成。 あなたのエディタを監視して、リアルタイムにコードを生成します。

変更したファイル名が一致すると、単一のBabelPluginを実行し、それをコードへと反映します。

利点

  • エディタにロックインされません。AtomでもVSCodeでも使えます。
  • s2s自体にロックインされません。単なるBabelPluginを書くだけで拡張できます。

Articles

日本語

Users

SSconnect/ssconnect

もし、あなたの会社やプロジェクトでs2sを使っている場合は、プルリクエストを送ってリストに追加してくださると嬉しいです。(アルファベット順でお願いします)

クイックスタート

では、本当に小さいサンプルから始めましょう。 しかし、s2sの力を知るには十分です。

はじめに取り組むのは、以下のように、Flowの型情報を利用して、変数の初期化を自動で行うサンプルです。

https://gyazo.com/c6de73c7c9044520fbbca95881c2a927

準備

レポジトリをクローンし、依存をインストールしてください。

$ git clone --depth=1 git@github.com:akameco/s2s.git
$ cd examples/getting-started
$ yarn
// or npm install

使い方

ルートにあるs2s.config.jsを確認してください。 これが、s2sの設定ファイルです。 watchで監視するディレクトリを指定し、pluginsは配列を指定します。 もし、webpackに馴染みがあれば似たように書けるでしょう。 詳しい設定については、Configを確認してください。

module.exports = {
  watch: './**/*.js',
  plugins: [
    {
      test: /.*.js$/,
      plugin: ['s2s-variable-initializing'],
    },
  ],
}

Run

s2sの前にflowを実行しておく必要があります。

$ yarn run flow

そして、s2sを起動します。

$ yarn run s2s

src/index.jsをエディタで開いて、var user: Userと入力し保存してください。 初期値が自動生成されましたか?

これで、クリックスタートを終わります。 ご苦労様でした。

プラグイン

プラグインを組み合わせる

複数のプラグインを組みわせると、より力を発揮します。 以下の例は、Actionの型を定義すると、Actionの定数、アクションクリエイター、reducer、reducerのテストをそれぞれ生成します。

plugins

もっと多くの情報が必要ですか? Examplesを確認してください。

もっとExamples

reduxとflowtypeを組み合わせた例。

ショッピングカート (redux+flowtype+s2s)

オフィシャルプラグイン

貢献

どのような貢献でもウェルカムです。

また、このレポジトリは、all-contributorsSpecに従って運用しています。

あたながコードとテストを書いて貢献した場合、以下のコマンドを打ってください。

$ yarn run all-contributors GitHubのアカウント名 code,test

また、ドキュメントの追加や修正を行った場合は以下のコマンドです。

$ yarn run all-contributors GitHubのアカウント名 doc

詳しくは、all-contributorsを参照してください。

どのような貢献でも待っています。

Clone this wiki locally