环境文字公约 0.2.0
读取授权环境文字 受环境绑定名,返其文。宿主以资源许可控可读之名:已授而未设(宿主环境中无、空或他假值)者,返空文;此乃 0.2.0 践旧约之处——先是云工适配于「已授而阙」之变量报宿主之异,与约不合。未授之名则调用败,为部署之误,宿主拒之(客不可恃捕之);值非文(如绑定之物)者亦败。空文与无值不可辨;客若须辨之,当于己配置别立标记,或改用 授权绑定存在。
授权绑定存在 种类 名称(0.2.0 新增)察已授之绑定在否。种类者,资源许可中之类名,如 D1、R2、EMAIL、QUEUE、SERVICE、DO、ASSETS、ENV;名由客授(约不硬书具体绑定名)。已授而宿主环境中有之,返阳;已授而阙,返阴;未授之类或名,调用败(宿主拒之,部署之误);类或名为空,为违约,报可捕之事故(「绑定种类为空」「绑定名称为空」)。在否之断依 JavaScript 之真值:对象型绑定有即为阳,文字型环境变量须非空,故值为空文之 ENV 变量得阴。此术惟答「在否」,不出一物,亦不因阙而败,可供客于可选之能(如可选之第二数据库、邮件或队列)间分支。
此包不枚举、不写环境,亦不暗授密钥读取。密钥与普通文字配置应由部署许可分授。浏览器、节点、云工及原生宿主可依各自环境承之,然须守上述「已授而阙得空文或阴、未授则败」之分。
败之类
业务之情:已授而阙(空文或阴),以返值表之。违约:类或名为空。部署之误:未授之名、值非文,宿主拒之。
一致之例
| 情 | 必见 |
| --- | --- |
| 读取授权环境文字 读已授而有值之变量 | 原文(含中文与换行) |
| 读已授而环境中无之变量 | 空文,不败 |
| 读已授而为空之变量 | 空文 |
| 读未授之名 | 败,宿主报「未授权」 |
| 授权绑定存在 D1 DB,环境中有 DB | 阳;无则阴 |
| 授权绑定存在 ENV X,X 为空文 | 阴 |
| 授权绑定存在 用未授之类或名 | 败 |
所不为
不枚举授权之名单,不读密钥(别有《秘密文字》),不返非文之值,不写环境。