ドキュメントメニュー

パッケージ#

typesql パッケージは、関数、モデルのシグネチャ、JSON の構造をまとめた、バージョン付きの名前空間です。解決は内容に固定され、同じ typesql.lock のバイト列からは常に同じパッケージ成果物を選びます。

typesql
import type shapes from 'connector/stripe';
import finance from 'skycrane/finance';

パッケージ名#

参照は正確に stdlib、または小文字の namespace/name で指定します。各部分は a-z で始め、その後に a-z0-9_- を使えます。

組織のパッケージは packages/<namespace>/<name>/typesql.pkg に置きます。connector/* はコネクターの構造定義パッケージ用に予約されています。絶対パス、...、連続する区切り文字、大文字の別名、3 つ目のパス要素は拒否します。

インポート#

import type は構造とシグネチャを取り込み、その後完全に消去されます。単独の import は関数本体も取り込み、typesql の拡張層に属します。

パッケージ自身がファイルシステムを読み取ることはありません。呼び出し側が、正規化した成果物のパスがリポジトリの packages/ ディレクトリ内に収まることを検証し、バイト列を渡します。

ロックファイル#

typesql.lock には、正確な成果物ハッシュごとに 1 行を、ソートした順序で記述します。

text
typesql-lock-v1
package skycrane/finance sha256:813c25d0f81d8963fd60345cf6be0a8d3e40f52612f491d6d97e06c77b16f9d0

固定情報の欠落には TS0601、成果物の欠落には TS0602、ハッシュの不一致には TS0603 を使います。形式、エクスポート、循環、名前の隠蔽、リソース上限、未使用のインポートの問題には TS0604TS0609 を使います。