Fable: System.IO.Pathをサポートする

作成日 2021年01月30日  ·  3コメント  ·  ソース: fable-compiler/Fable

説明

FableにSystem.IO.Pathの代替実装があると便利かもしれません。 私はFable.System.IOでかなり堅牢なものを書きました。 おそらく、これをコアFableに統合することは、正味の利益になるでしょうか?

すでにどこかで聞いたと思っていたのですが、もう見つかりません。 すでに独自のライブラリになっている理由は、 @ alfonsogarciacaroが、BCL API実装をFable自体から除外し、Fable自体のメンテナのオーバーヘッドを削減するために別のライブラリに保存する方が一般的であると考えたためです。その時点で、質問があります。これがそのコストに見合うかどうかになります。 そうかもしれないし、そうでないかもしれないが、私はそれを持ち出すと思った!

これをトリッキーにする1つのことは、Fable.System.IOがプラットフォーム検出器を使用しているという事実です(現在はnpmからプラットフォーム検出しますが、ShmewのF#のみのFable.Extrasに切り替える過程で)。 したがって、Fableがこのコードを適切に吸収する場合は、プラットフォーム検出器に対して同様に何らかの依存関係(またはインライン)を取得するか、エミュレートする環境の動作(WindowsパスとUnixパス)を選択する必要があります。

FWIW、ここに完全なユニットテストカバレッジがあります

最も参考になるコメント

こんにちは@jwosty! これは、Fable.System.IOで行ったすばらしい作業です👏👏👏これがFableに統合されることを望んでいることは理解していますが、それでも.NETAPIをさらにシムするように注意しています。 パスは便利ですが、System.IOのサポートを追加するときは、ファイルも使用しようとすると思います。 Javascriptは、ブラウザー、nodejs、モバイルなどの複数の環境で実行できます。これらすべてでファイルI / Oをサポートしようとすると、(私にとっては)大変な作業になります。 ノードではbtoaがサポートされていないため、バイナリシリアル化ですでに問題が発生しています:/

また、fable-libraryには依存関係がないため、コードベースにplatform-detectを含める必要があります。 小数と長さについてはすでにそのようなことを行っていますが、これに加えて、バンドルサイズで問題が発生します(https://github.com/thoth-org/Thoth.Json/pull/96のように、実感してください)私たちは実際にこの外部jsコードを削除して、完全なf#寓話ライブラリを取得しようとしています。

Fable.System.IOは素晴らしく、これはJS環境で使い慣れたAPIを使用したい.NET開発者にとっての方法だと思います。これは、以前と同様のライブラリですが、サポートされているものとプラットフォームの違いについてのIDE。

全てのコメント3件

こんにちは@jwosty! これは、Fable.System.IOで行ったすばらしい作業です👏👏👏これがFableに統合されることを望んでいることは理解していますが、それでも.NETAPIをさらにシムするように注意しています。 パスは便利ですが、System.IOのサポートを追加するときは、ファイルも使用しようとすると思います。 Javascriptは、ブラウザー、nodejs、モバイルなどの複数の環境で実行できます。これらすべてでファイルI / Oをサポートしようとすると、(私にとっては)大変な作業になります。 ノードではbtoaがサポートされていないため、バイナリシリアル化ですでに問題が発生しています:/

また、fable-libraryには依存関係がないため、コードベースにplatform-detectを含める必要があります。 小数と長さについてはすでにそのようなことを行っていますが、これに加えて、バンドルサイズで問題が発生します(https://github.com/thoth-org/Thoth.Json/pull/96のように、実感してください)私たちは実際にこの外部jsコードを削除して、完全なf#寓話ライブラリを取得しようとしています。

Fable.System.IOは素晴らしく、これはJS環境で使い慣れたAPIを使用したい.NET開発者にとっての方法だと思います。これは、以前と同様のライブラリですが、サポートされているものとプラットフォームの違いについてのIDE。

より多くの(不完全な)BCL置換を追加しようとするための優れた代替手段として、Fable.System.IOを終了します。 この@jwostyをありがとう!

確実なこと; 私はこの推論を確実に理解することができます!

このページは役に立ちましたか?
0 / 5 - 0 評価