按资源许可读取环境变量文字,并检查已授权绑定是否存在。
源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。
# 环境文字接口规范 0.2.0 `读取授权环境文字` 接受环境绑定名,返回该绑定的文字值。宿主资源许可控制可读名称:已授权但未配置(宿主环境里缺失、为空或其他假值)时返回空字符串;这是 0.2.0 对旧规范的落实——此前云工适配对“已授权而缺失”的变量会抛宿主异常,与规范不符。未授权的名称调用失败,属于部署错误,宿主拒绝(应用不能依赖捕获它);值不是文字(例如绑定对象)时同样失败。空字符串与缺失不可区分,应用需要区分时应在自己的配置契约中另设标记,或改用 `授权绑定存在`。 `授权绑定存在 种类 名称`(0.2.0 新增)判断已授权的绑定是否存在。种类是资源许可里的类别名,如 `D1`、`R2`、`EMAIL`、`QUEUE`、`SERVICE`、`DO`、`ASSETS`、`ENV`,名称由应用给出(规范不硬编码具体绑定名)。已授权且宿主环境里存在时返回阳;已授权但缺失返回阴;未授权的种类或名称调用失败(宿主拒绝,部署错误);种类或名称为空是违规,抛出可捕获的豫言异常(“绑定种类为空”“绑定名称为空”)。存在的判定依 JavaScript 真值:对象型绑定存在即为阳,文字型环境变量须非空,因此值为空字符串的 `ENV` 变量得阴。本函数只回答“是否存在”,不交出任何对象,也不会因缺失而失败,供应用在可选能力(如可选的第二数据库、邮件或队列)之间分支。 此包不枚举环境、不写入变量,也不隐式允许读取密钥。密钥与普通文字配置应由部署许可分别授权。浏览器、Node.js、CF Worker 与原生宿主可依各自环境实现,须保持上述“已授权而缺失得空串或阴、未授权失败”的划分。 ## 失败类别 业务情形:已授权而缺失(空串或阴),用返回值表示。违规:种类或名称为空。部署错误:未授权的名称、值不是文字,宿主拒绝。 ## 一致性样例 | 情境 | 必须观察到 | | --- | --- | | `读取授权环境文字` 读已授权且有值的变量 | 原文(含中文与换行) | | 读已授权但环境里没有的变量 | 空字符串,不失败 | | 读已授权且为空的变量 | 空字符串 | | 读未授权的名称 | 失败,宿主报告“未授权” | | `授权绑定存在 D1 DB`,环境里有 `DB` | 阳;环境里没有则阴 | | `授权绑定存在 ENV X`,`X` 为空字符串 | 阴 | | `授权绑定存在` 用未授权的种类或名称 | 失败 | ## 不做什么 不枚举授权名单,不读取密钥(另有《秘密文字》),不返回非文字值,不写环境。
# 环境文字公约 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` 为空文 | 阴 | | `授权绑定存在` 用未授之类或名 | 败 | ## 所不为 不枚举授权之名单,不读密钥(别有《秘密文字》),不返非文之值,不写环境。