hoppinger / ts_generator
基于REST资源的TypeScript代码生成器的Drupal模块
2.0.1
2020-08-06 15:25 UTC
README
这是一个Drupal模块,用于为特定实体生成TypeScript类型定义。它还可以选择性地生成清洁的目标类型定义和将对象从初始类型转换为目标类型的函数(解析器)。
安装
composer require hoppinger/ts_generator
版本
版本2.0.0与Drupal 9兼容。
用法
生成器作为一个需要配置文件的Drush命令运行。
创建以下内容的.yml
文件
target_directory: client/generated entities: input: - node - taxonomy_term generate_parser: true
此文件指示生成器在配置文件位置的相对目录client/generated
中生成文件,为node
和taxonomy_term
实体生成类型,并生成目标类型和相应的解析器。
使用以下命令触发生成
cd [PROJECT DIRECTORY]/web
../vendor/bin/drush ts_generator:generate [PATH TO CONFIGURATION FILE]
类型的实际使用
以下是如何使用这些类型的一个示例。当然,您不必局限于这种方法。
import { InputEntity, ParsedInputEntity, } from "./generated/types" import { input_entity_parser, input_entity_guard } from "./generated/parser" export type Result<T> = T | "error" export async function drupalGetEntity(alias: string): Promise<Result<ParsedInputEntity>> { const res = await fetch(`/${alias}?format=_json`), { method: "get", credentials: "include" }) if (!res.ok) return "error" const json = await res.json() if (!input_entity_guard(json)) return "error" const parsed = input_entity_parser(json as InputEntity) return parsed }
待办事项
- 编写更多关于使用方法的文档
- 编写关于内部工作原理和扩展生成器的方法的文档