在 Postgraphile 中为 table 保留尾随 's'

Retain trailing 's' for table in Postgraphile

有没有办法禁用 Postgraphile 中的 'remove-the-plural-s' 功能?

我的数据库中有一个 table OS,我正在使用非常棒的 Postgraphile 库免费创建一个 GraphQL 界面。一切都很好,但是 Postgraphile 截断了我的 table 名字,认为它是复数形式。所以我得到 allOs 而不是 allOsescreateOupdateO 等...

我试过了:

PS 如果你看到这个 Benjie/other 贡献者,你的文档非常棒,图书馆会节省我几个月的工作时间。

此更改由 PostGraphile 的变形器执行;然而它并不总是正确的(例如在这种情况下)但幸运的是可以用一个小插件覆盖它。

在这种情况下,最好为 pluralizesingularize 函数添加特定的例外;您可以使用 makeAddInflectorsPlugin from our inflection system 执行此操作。请务必将 true 作为第二个参数传递,以便系统知道您是故意覆盖变形器。

const { makeAddInflectorsPlugin } = require('graphile-utils');

module.exports = makeAddInflectorsPlugin(oldInflectors => ({
  pluralize(str) {
    if (str.match(/^os$/i)) {
      return str + 'ses';
    }
    return oldInflectors.pluralize(str);
  },
  singularize(str) {
    if (str.match(/^osses$/i) {
      return str.substr(0, 2);
    }
    return oldInflectors.singularize(str);
  }
}), true);

很高兴您喜欢 PostGraphile