小编ozm*_*ozm的帖子

如何使用lint-staged with jest --collectCoverageFrom

我正在使用lint-stagedJest测试框架来测试上次提交中已更改的文件,如本博客所述.

我的配置如下:

"src/**/*.{ts}": [
  "prettier --write",
  "tslint --fix --project .",
  "jest --bail --findRelatedTests",
  "git add"
]
Run Code Online (Sandbox Code Playgroud)

我还想为仅更改的文件生成coverage报告.为此,我必须将更改的文件列表放在多个位置.

jest --bail --findRelatedTests <spaceSeparatedListOfSourceFiles> --collectCoverageFrom=<glob>

使用lint-staged,如何仅针对已更改的文件限制测试和覆盖率报告?

javascript json typescript jestjs lint-staged

7
推荐指数
1
解决办法
1223
查看次数

如何使用TypeScript从npm扩展模块?

我正在使用带有TypeScript的joi@ types/joi.Joi有一个extend方法,它允许通过返回一个新实例来扩展joi,而无需修改原始的joi库.我用它创建了一个扩展实例.

为了这个扩展实例创建的定义,我试图Module Augmentation描述这里使用下面的代码:

declare module 'joi' {
  // Add a new Schema type which has noChildren() method.
  interface CustomSchema extends ObjectSchema {
    noChildren(): this;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,正如预期的那样,这会通过扩充来修改原始定义.我想要的是为扩展实例创建定义,它继承原始内容而不修改它.

还扩展Joi了如下:

import * as Joi from 'joi';
const JoiExtended = Joi.extend({...some implementation...})
// How to export?
// export * from 'Joi' ---> In this case, original non-extended Joi is exported
// export default JoiExtended ---> Imported `Joi` reports: Cannot find …
Run Code Online (Sandbox Code Playgroud)

node.js typescript joi

6
推荐指数
1
解决办法
1083
查看次数

如何在数据库 ERD 中模拟钻石般的多对多关系

组织 ID 作为外键 organization_id 作为主键

传奇:

  • PK(蓝色):主键
  • FK(绿色):外键
  • PFK(蓝色):同时主键和外键

如何模拟类似钻石(如果术语正确)的关系?最好用一个简化的例子来解释:

organization,itemtag实体。

我的目标是建模:

  1. 每一个tag都是独一无二的,属于一个组织。
  2. 每一个item都是独一无二的,属于一个组织。
  3. 项目有许多标签(使用 M2M 表连接)并且相关tag/item对必须属于同一组织。(即来自组织 A 的项目不能与来自组织 B 的标签配对)

我绘制了两种替代解决方案,但没有一个让我满意。

图1个断裂第三目标itemstags使用是自己唯一id的主键,但没有什么可以阻止插入到对item_tag属于不同的组织。

图2不破,但弯曲第一和第二目标organization_id加入作为主键和外键itemtag表和item_tag.organization_id列引用两者。这可以防止来自不同组织的配对。tag.idanditem.id列现在是不必要的复合主键的一部分,因为实际上单列id表示itemand 的唯一性tag

我如何正确地为这些需求建模?

mysql postgresql database-design erd database-diagram

5
推荐指数
1
解决办法
483
查看次数