Sugar 🍬

Swift Version Vapor Version Circle CI codebeat badge codecov Readme Score GitHub license

📦 安装

Sugar 添加到包依赖项中(在你的 Package.swift 文件中)

dependencies: [
    ...,
    .package(url: "https://github.com/nodes-vapor/sugar.git", from: "4.0.0")
]

以及你的目标(例如 “App”)

targets: [
    ...
    .target(
        name: "App",
        dependencies: [... "Sugar" ...]
    ),
    ...
]

开始使用 🚀

确保在需要时,你在任何地方都导入了 Sugar

import Sugar

助手

此包包含许多杂项功能,这些功能可能不适合放入其自己的包中,或者最好 PR 到 Vapor 中。以下是此包包含的一些示例

环境变量

通过编写以下内容访问环境变量

env("my-key", "my-fallback-value")

种子命令

如果你想让你的模型可种子化,你可以使其遵循 Seedable 协议,并使用 SeederCommand 来包装你的可种子化模型。这基本上意味着你可以专注于在运行命令时模型如何初始化,并在实际执行数据库工作时节省一些代码。

将添加种子化模型的多个实例 - 欢迎提交 PR。

身份验证

此包包含许多与 JWT、用户名和密码相关的便利功能,这些功能在 JWTKeychainAdmin Panel 中使用。

迁移

Sugar 包含一个助手函数,用于添加属性,同时排除一些特定的属性。如果你只想修改单个或几个字段的准备方式,这将更加方便。

extension MyModel: Migration {
    static func prepare(on connection: MySQLConnection) -> Future<Void> {
        return MySQLDatabase.create(self, on: connection) { builder in
            try addProperties(to: builder, excluding: [\.title])
            builder.field(for: \.title, type: .varchar(191))
        }
    }
}

🏆 鸣谢

此包由 Nodes 的 Vapor 团队开发和维护。

📄 许可证

此包是根据 MIT 许可证 授权的开源软件