@nikovirtala/projen-constructs 0.1.8 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.jsii +2021 -157
  2. package/API.md +769 -52
  3. package/README.md +37 -8
  4. package/docs/api/.nojekyll +1 -0
  5. package/docs/api/assets/hierarchy.js +1 -0
  6. package/docs/api/assets/highlight.css +99 -0
  7. package/docs/api/assets/icons.js +18 -0
  8. package/docs/api/assets/icons.svg +1 -0
  9. package/docs/api/assets/main.js +60 -0
  10. package/docs/api/assets/navigation.js +1 -0
  11. package/docs/api/assets/search.js +1 -0
  12. package/docs/api/assets/style.css +1633 -0
  13. package/docs/api/classes/AwsCdkConstructLibraryProject.html +308 -0
  14. package/docs/api/classes/AwsCdkTypeScriptAppProject.html +306 -0
  15. package/docs/api/classes/JsiiProject.html +294 -0
  16. package/docs/api/classes/ProjectGenerator.html +38 -0
  17. package/docs/api/classes/TypeDoc.html +37 -0
  18. package/docs/api/classes/TypeScriptProject.html +294 -0
  19. package/docs/api/classes/Vitest.html +38 -0
  20. package/docs/api/enums/CommentStyle.html +11 -0
  21. package/docs/api/enums/CoverageProvider.html +7 -0
  22. package/docs/api/enums/CoverageReporter.html +11 -0
  23. package/docs/api/enums/EntryPointStrategy.html +11 -0
  24. package/docs/api/enums/Environment.html +12 -0
  25. package/docs/api/enums/LogLevel.html +13 -0
  26. package/docs/api/enums/Pool.html +17 -0
  27. package/docs/api/enums/ProjectType.html +47 -0
  28. package/docs/api/enums/Visibility.html +9 -0
  29. package/docs/api/functions/applyDefaults.html +1 -0
  30. package/docs/api/functions/toJson_TypeDocConfiguration.html +2 -0
  31. package/docs/api/hierarchy.html +1 -0
  32. package/docs/api/index.html +86 -0
  33. package/docs/api/interfaces/AwsCdkConstructLibraryProjectOptions.html +1075 -0
  34. package/docs/api/interfaces/AwsCdkTypeScriptAppProjectOptions.html +1026 -0
  35. package/docs/api/interfaces/Component.html +13 -0
  36. package/docs/api/interfaces/ComponentOptions.html +8 -0
  37. package/docs/api/interfaces/JsiiProjectOptions.html +1003 -0
  38. package/docs/api/interfaces/ProjectGeneratorOptions.html +49 -0
  39. package/docs/api/interfaces/TypeDocConfiguration.html +141 -0
  40. package/docs/api/interfaces/TypeDocOptions.html +9 -0
  41. package/docs/api/interfaces/TypeScriptProjectOptions.html +899 -0
  42. package/docs/api/interfaces/ValidationOptions.html +9 -0
  43. package/docs/api/interfaces/VitestConfigOptions.html +111 -0
  44. package/docs/api/interfaces/VitestOptions.html +13 -0
  45. package/docs/api/modules.html +1 -0
  46. package/docs/api/variables/defaultOptions.html +1 -0
  47. package/docs/api/variables/defaults.html +1 -0
  48. package/docs/api/variables/projectDefaultOptions.html +1 -0
  49. package/lib/components/typedoc-config.d.ts +321 -0
  50. package/lib/components/typedoc-config.js +73 -1
  51. package/lib/components/typedoc.d.ts +19 -0
  52. package/lib/components/typedoc.js +14 -1
  53. package/lib/components/vitest.d.ts +197 -0
  54. package/lib/components/vitest.js +72 -2
  55. package/lib/config.d.ts +4 -4
  56. package/lib/errors.d.ts +16 -0
  57. package/lib/errors.js +26 -2
  58. package/lib/index.d.ts +2 -0
  59. package/lib/index.js +3 -1
  60. package/lib/project-generator.d.ts +87 -63
  61. package/lib/project-generator.js +344 -60
  62. package/lib/project-type.d.ts +78 -16
  63. package/lib/project-type.js +79 -17
  64. package/lib/projects/awscdk-construct-library.generated.js +4 -4
  65. package/lib/projects/awscdk-typescript-app.generated.js +4 -4
  66. package/lib/projects/jsii-options.generated.d.ts +11 -1
  67. package/lib/projects/jsii-options.generated.js +1 -1
  68. package/lib/projects/jsii.generated.js +5 -4
  69. package/lib/projects/typescript.generated.js +4 -4
  70. package/lib/utils.d.ts +2 -2
  71. package/lib/utils.js +3 -3
  72. package/package.json +3 -1
  73. package/scripts/generate-project-types.ts +103 -0
  74. package/typedoc.jsonc +10 -0
package/API.md CHANGED
@@ -4721,6 +4721,181 @@ public readonly DEFAULT_TS_JEST_TRANFORM_PATTERN: string;
4721
4721
 
4722
4722
  ---
4723
4723
 
4724
+ ### ProjectGenerator <a name="ProjectGenerator" id="@nikovirtala/projen-constructs.ProjectGenerator"></a>
4725
+
4726
+ Projen component that generates TypeScript project classes with standard configuration.
4727
+
4728
+ This component automates the creation of project classes that extend Projen base classes
4729
+ with opinionated defaults and component integration.
4730
+
4731
+ #### Initializers <a name="Initializers" id="@nikovirtala/projen-constructs.ProjectGenerator.Initializer"></a>
4732
+
4733
+ ```typescript
4734
+ import { ProjectGenerator } from '@nikovirtala/projen-constructs'
4735
+
4736
+ new ProjectGenerator(project: Project, options: ProjectGeneratorOptions)
4737
+ ```
4738
+
4739
+ | **Name** | **Type** | **Description** |
4740
+ | --- | --- | --- |
4741
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - Projen project instance. |
4742
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.Initializer.parameter.options">options</a></code> | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions">ProjectGeneratorOptions</a></code> | - Generator configuration. |
4743
+
4744
+ ---
4745
+
4746
+ ##### `project`<sup>Required</sup> <a name="project" id="@nikovirtala/projen-constructs.ProjectGenerator.Initializer.parameter.project"></a>
4747
+
4748
+ - *Type:* projen.Project
4749
+
4750
+ Projen project instance.
4751
+
4752
+ ---
4753
+
4754
+ ##### `options`<sup>Required</sup> <a name="options" id="@nikovirtala/projen-constructs.ProjectGenerator.Initializer.parameter.options"></a>
4755
+
4756
+ - *Type:* <a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions">ProjectGeneratorOptions</a>
4757
+
4758
+ Generator configuration.
4759
+
4760
+ ---
4761
+
4762
+ #### Methods <a name="Methods" id="Methods"></a>
4763
+
4764
+ | **Name** | **Description** |
4765
+ | --- | --- |
4766
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.toString">toString</a></code> | Returns a string representation of this construct. |
4767
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
4768
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.preSynthesize">preSynthesize</a></code> | Generates the TypeScript class file during Projen synthesis. |
4769
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
4770
+
4771
+ ---
4772
+
4773
+ ##### `toString` <a name="toString" id="@nikovirtala/projen-constructs.ProjectGenerator.toString"></a>
4774
+
4775
+ ```typescript
4776
+ public toString(): string
4777
+ ```
4778
+
4779
+ Returns a string representation of this construct.
4780
+
4781
+ ##### `postSynthesize` <a name="postSynthesize" id="@nikovirtala/projen-constructs.ProjectGenerator.postSynthesize"></a>
4782
+
4783
+ ```typescript
4784
+ public postSynthesize(): void
4785
+ ```
4786
+
4787
+ Called after synthesis.
4788
+
4789
+ Order is *not* guaranteed.
4790
+
4791
+ ##### `preSynthesize` <a name="preSynthesize" id="@nikovirtala/projen-constructs.ProjectGenerator.preSynthesize"></a>
4792
+
4793
+ ```typescript
4794
+ public preSynthesize(): void
4795
+ ```
4796
+
4797
+ Generates the TypeScript class file during Projen synthesis.
4798
+
4799
+ Called by Projen during the synthesis phase to generate the project class file.
4800
+ The file is marked as readonly to prevent manual editing.
4801
+
4802
+ ##### `synthesize` <a name="synthesize" id="@nikovirtala/projen-constructs.ProjectGenerator.synthesize"></a>
4803
+
4804
+ ```typescript
4805
+ public synthesize(): void
4806
+ ```
4807
+
4808
+ Synthesizes files to the project output directory.
4809
+
4810
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
4811
+
4812
+ | **Name** | **Description** |
4813
+ | --- | --- |
4814
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
4815
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
4816
+
4817
+ ---
4818
+
4819
+ ##### `isConstruct` <a name="isConstruct" id="@nikovirtala/projen-constructs.ProjectGenerator.isConstruct"></a>
4820
+
4821
+ ```typescript
4822
+ import { ProjectGenerator } from '@nikovirtala/projen-constructs'
4823
+
4824
+ ProjectGenerator.isConstruct(x: any)
4825
+ ```
4826
+
4827
+ Checks if `x` is a construct.
4828
+
4829
+ Use this method instead of `instanceof` to properly detect `Construct`
4830
+ instances, even when the construct library is symlinked.
4831
+
4832
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
4833
+ disk are seen as independent, completely different libraries. As a
4834
+ consequence, the class `Construct` in each copy of the `constructs` library
4835
+ is seen as a different class, and an instance of one class will not test as
4836
+ `instanceof` the other class. `npm install` will not create installations
4837
+ like this, but users may manually symlink construct libraries together or
4838
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
4839
+ library can be accidentally installed, and `instanceof` will behave
4840
+ unpredictably. It is safest to avoid using `instanceof`, and using
4841
+ this type-testing method instead.
4842
+
4843
+ ###### `x`<sup>Required</sup> <a name="x" id="@nikovirtala/projen-constructs.ProjectGenerator.isConstruct.parameter.x"></a>
4844
+
4845
+ - *Type:* any
4846
+
4847
+ Any object.
4848
+
4849
+ ---
4850
+
4851
+ ##### `isComponent` <a name="isComponent" id="@nikovirtala/projen-constructs.ProjectGenerator.isComponent"></a>
4852
+
4853
+ ```typescript
4854
+ import { ProjectGenerator } from '@nikovirtala/projen-constructs'
4855
+
4856
+ ProjectGenerator.isComponent(x: any)
4857
+ ```
4858
+
4859
+ Test whether the given construct is a component.
4860
+
4861
+ ###### `x`<sup>Required</sup> <a name="x" id="@nikovirtala/projen-constructs.ProjectGenerator.isComponent.parameter.x"></a>
4862
+
4863
+ - *Type:* any
4864
+
4865
+ ---
4866
+
4867
+ #### Properties <a name="Properties" id="Properties"></a>
4868
+
4869
+ | **Name** | **Type** | **Description** |
4870
+ | --- | --- | --- |
4871
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
4872
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGenerator.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
4873
+
4874
+ ---
4875
+
4876
+ ##### `node`<sup>Required</sup> <a name="node" id="@nikovirtala/projen-constructs.ProjectGenerator.property.node"></a>
4877
+
4878
+ ```typescript
4879
+ public readonly node: Node;
4880
+ ```
4881
+
4882
+ - *Type:* constructs.Node
4883
+
4884
+ The tree node.
4885
+
4886
+ ---
4887
+
4888
+ ##### `project`<sup>Required</sup> <a name="project" id="@nikovirtala/projen-constructs.ProjectGenerator.property.project"></a>
4889
+
4890
+ ```typescript
4891
+ public readonly project: Project;
4892
+ ```
4893
+
4894
+ - *Type:* projen.Project
4895
+
4896
+ ---
4897
+
4898
+
4724
4899
  ### TypeScriptProject <a name="TypeScriptProject" id="@nikovirtala/projen-constructs.TypeScriptProject"></a>
4725
4900
 
4726
4901
  TypeScriptProject with standard configuration and component integration.
@@ -11408,6 +11583,115 @@ Options for Yarn Berry.
11408
11583
 
11409
11584
  ---
11410
11585
 
11586
+ ### Component <a name="Component" id="@nikovirtala/projen-constructs.Component"></a>
11587
+
11588
+ Configuration for a component to be integrated into a generated project.
11589
+
11590
+ #### Initializer <a name="Initializer" id="@nikovirtala/projen-constructs.Component.Initializer"></a>
11591
+
11592
+ ```typescript
11593
+ import { Component } from '@nikovirtala/projen-constructs'
11594
+
11595
+ const component: Component = { ... }
11596
+ ```
11597
+
11598
+ #### Properties <a name="Properties" id="Properties"></a>
11599
+
11600
+ | **Name** | **Type** | **Description** |
11601
+ | --- | --- | --- |
11602
+ | <code><a href="#@nikovirtala/projen-constructs.Component.property.fqn">fqn</a></code> | <code>string</code> | Fully qualified name of the component class. |
11603
+ | <code><a href="#@nikovirtala/projen-constructs.Component.property.optionsProperty">optionsProperty</a></code> | <code>string \| boolean \| <a href="#@nikovirtala/projen-constructs.ComponentOptions">ComponentOptions</a></code> | Options property configuration for the generated options interface. |
11604
+
11605
+ ---
11606
+
11607
+ ##### `fqn`<sup>Optional</sup> <a name="fqn" id="@nikovirtala/projen-constructs.Component.property.fqn"></a>
11608
+
11609
+ ```typescript
11610
+ public readonly fqn: string;
11611
+ ```
11612
+
11613
+ - *Type:* string
11614
+
11615
+ Fully qualified name of the component class.
11616
+
11617
+ Optional - auto-detected by searching JSII manifests.
11618
+
11619
+ ---
11620
+
11621
+ ##### `optionsProperty`<sup>Optional</sup> <a name="optionsProperty" id="@nikovirtala/projen-constructs.Component.property.optionsProperty"></a>
11622
+
11623
+ ```typescript
11624
+ public readonly optionsProperty: string | boolean | ComponentOptions;
11625
+ ```
11626
+
11627
+ - *Type:* string | boolean | <a href="#@nikovirtala/projen-constructs.ComponentOptions">ComponentOptions</a>
11628
+
11629
+ Options property configuration for the generated options interface.
11630
+
11631
+ Optional - auto-detected from component constructor.
11632
+ Set to false to disable options property generation.
11633
+ Set to string or object to customize the property name.
11634
+
11635
+ ---
11636
+
11637
+ ### ComponentOptions <a name="ComponentOptions" id="@nikovirtala/projen-constructs.ComponentOptions"></a>
11638
+
11639
+ Options property configuration.
11640
+
11641
+ #### Initializer <a name="Initializer" id="@nikovirtala/projen-constructs.ComponentOptions.Initializer"></a>
11642
+
11643
+ ```typescript
11644
+ import { ComponentOptions } from '@nikovirtala/projen-constructs'
11645
+
11646
+ const componentOptions: ComponentOptions = { ... }
11647
+ ```
11648
+
11649
+ #### Properties <a name="Properties" id="Properties"></a>
11650
+
11651
+ | **Name** | **Type** | **Description** |
11652
+ | --- | --- | --- |
11653
+ | <code><a href="#@nikovirtala/projen-constructs.ComponentOptions.property.name">name</a></code> | <code>string</code> | Name of the options property. |
11654
+ | <code><a href="#@nikovirtala/projen-constructs.ComponentOptions.property.docs">docs</a></code> | <code>string</code> | Documentation summary (optional, auto-detected from component constructor). |
11655
+ | <code><a href="#@nikovirtala/projen-constructs.ComponentOptions.property.type">type</a></code> | <code>string</code> | Fully qualified type name (optional, auto-detected from component constructor). |
11656
+
11657
+ ---
11658
+
11659
+ ##### `name`<sup>Required</sup> <a name="name" id="@nikovirtala/projen-constructs.ComponentOptions.property.name"></a>
11660
+
11661
+ ```typescript
11662
+ public readonly name: string;
11663
+ ```
11664
+
11665
+ - *Type:* string
11666
+
11667
+ Name of the options property.
11668
+
11669
+ ---
11670
+
11671
+ ##### `docs`<sup>Optional</sup> <a name="docs" id="@nikovirtala/projen-constructs.ComponentOptions.property.docs"></a>
11672
+
11673
+ ```typescript
11674
+ public readonly docs: string;
11675
+ ```
11676
+
11677
+ - *Type:* string
11678
+
11679
+ Documentation summary (optional, auto-detected from component constructor).
11680
+
11681
+ ---
11682
+
11683
+ ##### `type`<sup>Optional</sup> <a name="type" id="@nikovirtala/projen-constructs.ComponentOptions.property.type"></a>
11684
+
11685
+ ```typescript
11686
+ public readonly type: string;
11687
+ ```
11688
+
11689
+ - *Type:* string
11690
+
11691
+ Fully qualified type name (optional, auto-detected from component constructor).
11692
+
11693
+ ---
11694
+
11411
11695
  ### JsiiProjectOptions <a name="JsiiProjectOptions" id="@nikovirtala/projen-constructs.JsiiProjectOptions"></a>
11412
11696
 
11413
11697
  JsiiProjectOptions.
@@ -13728,6 +14012,149 @@ Options for Yarn Berry.
13728
14012
 
13729
14013
  ---
13730
14014
 
14015
+ ### ProjectGeneratorOptions <a name="ProjectGeneratorOptions" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions"></a>
14016
+
14017
+ Options for ProjectGenerator component.
14018
+
14019
+ Configures the generation of a TypeScript project class that extends a Projen base class
14020
+ with standard configuration and component integration.
14021
+
14022
+ #### Initializer <a name="Initializer" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.Initializer"></a>
14023
+
14024
+ ```typescript
14025
+ import { ProjectGeneratorOptions } from '@nikovirtala/projen-constructs'
14026
+
14027
+ const projectGeneratorOptions: ProjectGeneratorOptions = { ... }
14028
+ ```
14029
+
14030
+ #### Properties <a name="Properties" id="Properties"></a>
14031
+
14032
+ | **Name** | **Type** | **Description** |
14033
+ | --- | --- | --- |
14034
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.indent">indent</a></code> | <code>number</code> | Indentation size. |
14035
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.readonly">readonly</a></code> | <code>boolean</code> | Whether the generated file should be readonly. |
14036
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.filePath">filePath</a></code> | <code>string</code> | Output file path for the generated class. |
14037
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.name">name</a></code> | <code>string</code> | Name of the generated class (e.g., "TypeScriptProject"). |
14038
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.projectType">projectType</a></code> | <code><a href="#@nikovirtala/projen-constructs.ProjectType">ProjectType</a></code> | Project type identifier. |
14039
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.components">components</a></code> | <code><a href="#@nikovirtala/projen-constructs.Component">Component</a>[]</code> | Components to integrate into the project. |
14040
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.omitOptions">omitOptions</a></code> | <code>string[]</code> | Property names to omit from the base options interface. |
14041
+
14042
+ ---
14043
+
14044
+ ##### `indent`<sup>Optional</sup> <a name="indent" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.indent"></a>
14045
+
14046
+ ```typescript
14047
+ public readonly indent: number;
14048
+ ```
14049
+
14050
+ - *Type:* number
14051
+ - *Default:* 2
14052
+
14053
+ Indentation size.
14054
+
14055
+ ---
14056
+
14057
+ ##### `readonly`<sup>Optional</sup> <a name="readonly" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.readonly"></a>
14058
+
14059
+ ```typescript
14060
+ public readonly readonly: boolean;
14061
+ ```
14062
+
14063
+ - *Type:* boolean
14064
+ - *Default:* true
14065
+
14066
+ Whether the generated file should be readonly.
14067
+
14068
+ ---
14069
+
14070
+ ##### `filePath`<sup>Required</sup> <a name="filePath" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.filePath"></a>
14071
+
14072
+ ```typescript
14073
+ public readonly filePath: string;
14074
+ ```
14075
+
14076
+ - *Type:* string
14077
+
14078
+ Output file path for the generated class.
14079
+
14080
+ Must contain a directory separator. The options interface will be generated
14081
+ in the same directory with a ".generated.ts" suffix.
14082
+
14083
+ ---
14084
+
14085
+ *Example*
14086
+
14087
+ ```typescript
14088
+ "src/projects/typescript.generated.ts"
14089
+ ```
14090
+
14091
+
14092
+ ##### `name`<sup>Required</sup> <a name="name" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.name"></a>
14093
+
14094
+ ```typescript
14095
+ public readonly name: string;
14096
+ ```
14097
+
14098
+ - *Type:* string
14099
+
14100
+ Name of the generated class (e.g., "TypeScriptProject").
14101
+
14102
+ The options interface will be named `${name}Options`.
14103
+
14104
+ ---
14105
+
14106
+ ##### `projectType`<sup>Required</sup> <a name="projectType" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.projectType"></a>
14107
+
14108
+ ```typescript
14109
+ public readonly projectType: ProjectType;
14110
+ ```
14111
+
14112
+ - *Type:* <a href="#@nikovirtala/projen-constructs.ProjectType">ProjectType</a>
14113
+
14114
+ Project type identifier.
14115
+
14116
+ Specifies which Projen base class to extend and which default configuration to apply.
14117
+
14118
+ ---
14119
+
14120
+ *Example*
14121
+
14122
+ ```typescript
14123
+ ProjectType.JSII
14124
+ ```
14125
+
14126
+
14127
+ ##### `components`<sup>Optional</sup> <a name="components" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.components"></a>
14128
+
14129
+ ```typescript
14130
+ public readonly components: Component[];
14131
+ ```
14132
+
14133
+ - *Type:* <a href="#@nikovirtala/projen-constructs.Component">Component</a>[]
14134
+ - *Default:* [{ component: Mise }, { component: Vitest, optionsProperty: { name: "vitestOptions", type: "...", docs: "..." } }]
14135
+
14136
+ Components to integrate into the project.
14137
+
14138
+ Each component will be instantiated during project construction and can be
14139
+ configured via an optional options property in the generated interface.
14140
+
14141
+ ---
14142
+
14143
+ ##### `omitOptions`<sup>Optional</sup> <a name="omitOptions" id="@nikovirtala/projen-constructs.ProjectGeneratorOptions.property.omitOptions"></a>
14144
+
14145
+ ```typescript
14146
+ public readonly omitOptions: string[];
14147
+ ```
14148
+
14149
+ - *Type:* string[]
14150
+
14151
+ Property names to omit from the base options interface.
14152
+
14153
+ Use this to hide base class options that should not be configurable
14154
+ in the generated project type.
14155
+
14156
+ ---
14157
+
13731
14158
  ### TypeScriptProjectOptions <a name="TypeScriptProjectOptions" id="@nikovirtala/projen-constructs.TypeScriptProjectOptions"></a>
13732
14159
 
13733
14160
  TypeScriptProjectOptions.
@@ -15843,6 +16270,10 @@ Options for Yarn Berry.
15843
16270
 
15844
16271
  ### VitestConfigOptions <a name="VitestConfigOptions" id="@nikovirtala/projen-constructs.VitestConfigOptions"></a>
15845
16272
 
16273
+ Vitest Config.
16274
+
16275
+ > [https://vitest.dev/config/](https://vitest.dev/config/)
16276
+
15846
16277
  #### Initializer <a name="Initializer" id="@nikovirtala/projen-constructs.VitestConfigOptions.Initializer"></a>
15847
16278
 
15848
16279
  ```typescript
@@ -15855,24 +16286,24 @@ const vitestConfigOptions: VitestConfigOptions = { ... }
15855
16286
 
15856
16287
  | **Name** | **Type** | **Description** |
15857
16288
  | --- | --- | --- |
15858
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.bail">bail</a></code> | <code>number</code> | *No description.* |
15859
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageDirectory">coverageDirectory</a></code> | <code>string</code> | *No description.* |
15860
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageEnabled">coverageEnabled</a></code> | <code>boolean</code> | *No description.* |
15861
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageProvider">coverageProvider</a></code> | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider">CoverageProvider</a></code> | *No description.* |
15862
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageReporters">coverageReporters</a></code> | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter">CoverageReporter</a>[]</code> | *No description.* |
15863
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.environment">environment</a></code> | <code><a href="#@nikovirtala/projen-constructs.Environment">Environment</a></code> | *No description.* |
15864
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.exclude">exclude</a></code> | <code>string[]</code> | *No description.* |
15865
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.globals">globals</a></code> | <code>boolean</code> | *No description.* |
15866
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.include">include</a></code> | <code>string[]</code> | *No description.* |
15867
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.isolate">isolate</a></code> | <code>boolean</code> | *No description.* |
15868
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.passWithNoTests">passWithNoTests</a></code> | <code>boolean</code> | *No description.* |
15869
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.pool">pool</a></code> | <code><a href="#@nikovirtala/projen-constructs.Pool">Pool</a></code> | *No description.* |
15870
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.printConsoleTrace">printConsoleTrace</a></code> | <code>boolean</code> | *No description.* |
15871
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.slowTestThreshold">slowTestThreshold</a></code> | <code>number</code> | *No description.* |
15872
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckChecker">typecheckChecker</a></code> | <code>string</code> | *No description.* |
15873
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckEnabled">typecheckEnabled</a></code> | <code>boolean</code> | *No description.* |
15874
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckTsconfig">typecheckTsconfig</a></code> | <code>string</code> | *No description.* |
15875
- | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.updateSnapshots">updateSnapshots</a></code> | <code>boolean</code> | *No description.* |
16289
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.bail">bail</a></code> | <code>number</code> | Stop running tests after certain number of failures. |
16290
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageDirectory">coverageDirectory</a></code> | <code>string</code> | Coverage output directory. |
16291
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageEnabled">coverageEnabled</a></code> | <code>boolean</code> | Coverage enabled. |
16292
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageProvider">coverageProvider</a></code> | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider">CoverageProvider</a></code> | Coverage provider type. |
16293
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.coverageReporters">coverageReporters</a></code> | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter">CoverageReporter</a>[]</code> | Coverage reporters. |
16294
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.environment">environment</a></code> | <code><a href="#@nikovirtala/projen-constructs.Environment">Environment</a></code> | The environment that will be used for testing. |
16295
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.exclude">exclude</a></code> | <code>string[]</code> | A list of glob patterns that should be excluded from your test files. |
16296
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.globals">globals</a></code> | <code>boolean</code> | Register apis globally. |
16297
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.include">include</a></code> | <code>string[]</code> | A list of glob patterns that match your test files. |
16298
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.isolate">isolate</a></code> | <code>boolean</code> | Run tests in an isolated environment. This option has no effect on vmThreads pool. |
16299
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.passWithNoTests">passWithNoTests</a></code> | <code>boolean</code> | Vitest will not fail, if no tests will be found. |
16300
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.pool">pool</a></code> | <code><a href="#@nikovirtala/projen-constructs.Pool">Pool</a></code> | Pool used to run tests in. |
16301
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.printConsoleTrace">printConsoleTrace</a></code> | <code>boolean</code> | Always print console traces when calling any console method. |
16302
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.slowTestThreshold">slowTestThreshold</a></code> | <code>number</code> | The number of milliseconds after which a test or suite is considered slow. |
16303
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckChecker">typecheckChecker</a></code> | <code>string</code> | Tool to use for type checking. |
16304
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckEnabled">typecheckEnabled</a></code> | <code>boolean</code> | Enable typechecking alongside your regular tests. |
16305
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.typecheckTsconfig">typecheckTsconfig</a></code> | <code>string</code> | Path to custom tsconfig, relative to the project root. |
16306
+ | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions.property.updateSnapshots">updateSnapshots</a></code> | <code>boolean</code> | Update snapshot files. |
15876
16307
 
15877
16308
  ---
15878
16309
 
@@ -15883,6 +16314,11 @@ public readonly bail: number;
15883
16314
  ```
15884
16315
 
15885
16316
  - *Type:* number
16317
+ - *Default:* 0
16318
+
16319
+ Stop running tests after certain number of failures.
16320
+
16321
+ > [https://vitest.dev/config/#bail](https://vitest.dev/config/#bail)
15886
16322
 
15887
16323
  ---
15888
16324
 
@@ -15893,6 +16329,9 @@ public readonly coverageDirectory: string;
15893
16329
  ```
15894
16330
 
15895
16331
  - *Type:* string
16332
+ - *Default:* "coverage"
16333
+
16334
+ Coverage output directory.
15896
16335
 
15897
16336
  ---
15898
16337
 
@@ -15903,6 +16342,11 @@ public readonly coverageEnabled: boolean;
15903
16342
  ```
15904
16343
 
15905
16344
  - *Type:* boolean
16345
+ - *Default:* true
16346
+
16347
+ Coverage enabled.
16348
+
16349
+ > [https://vitest.dev/config/#coverage-enabled](https://vitest.dev/config/#coverage-enabled)
15906
16350
 
15907
16351
  ---
15908
16352
 
@@ -15913,6 +16357,11 @@ public readonly coverageProvider: CoverageProvider;
15913
16357
  ```
15914
16358
 
15915
16359
  - *Type:* <a href="#@nikovirtala/projen-constructs.CoverageProvider">CoverageProvider</a>
16360
+ - *Default:* "v8"
16361
+
16362
+ Coverage provider type.
16363
+
16364
+ > [https://vitest.dev/config/#coverage-provider](https://vitest.dev/config/#coverage-provider)
15916
16365
 
15917
16366
  ---
15918
16367
 
@@ -15923,6 +16372,11 @@ public readonly coverageReporters: CoverageReporter[];
15923
16372
  ```
15924
16373
 
15925
16374
  - *Type:* <a href="#@nikovirtala/projen-constructs.CoverageReporter">CoverageReporter</a>[]
16375
+ - *Default:* '["text", "lcov"]'
16376
+
16377
+ Coverage reporters.
16378
+
16379
+ > [https://vitest.dev/config/#coverage-reporter](https://vitest.dev/config/#coverage-reporter)
15926
16380
 
15927
16381
  ---
15928
16382
 
@@ -15933,6 +16387,11 @@ public readonly environment: Environment;
15933
16387
  ```
15934
16388
 
15935
16389
  - *Type:* <a href="#@nikovirtala/projen-constructs.Environment">Environment</a>
16390
+ - *Default:* "node"
16391
+
16392
+ The environment that will be used for testing.
16393
+
16394
+ > [https://vitest.dev/config/#environment](https://vitest.dev/config/#environment)
15936
16395
 
15937
16396
  ---
15938
16397
 
@@ -15943,6 +16402,11 @@ public readonly exclude: string[];
15943
16402
  ```
15944
16403
 
15945
16404
  - *Type:* string[]
16405
+ - *Default:* Vitest's `configDefaults.exclude`
16406
+
16407
+ A list of glob patterns that should be excluded from your test files.
16408
+
16409
+ > [https://vitest.dev/config/#exclude](https://vitest.dev/config/#exclude)
15946
16410
 
15947
16411
  ---
15948
16412
 
@@ -15953,6 +16417,13 @@ public readonly globals: boolean;
15953
16417
  ```
15954
16418
 
15955
16419
  - *Type:* boolean
16420
+ - *Default:* false
16421
+
16422
+ Register apis globally.
16423
+
16424
+ If you prefer to use the APIs globally like Jest, set to `true`.
16425
+
16426
+ > [https://vitest.dev/config/#globals](https://vitest.dev/config/#globals)
15956
16427
 
15957
16428
  ---
15958
16429
 
@@ -15963,6 +16434,11 @@ public readonly include: string[];
15963
16434
  ```
15964
16435
 
15965
16436
  - *Type:* string[]
16437
+ - *Default:* Vitest's `configDefaults.include`
16438
+
16439
+ A list of glob patterns that match your test files.
16440
+
16441
+ > [https://vitest.dev/config/#include](https://vitest.dev/config/#include)
15966
16442
 
15967
16443
  ---
15968
16444
 
@@ -15973,6 +16449,13 @@ public readonly isolate: boolean;
15973
16449
  ```
15974
16450
 
15975
16451
  - *Type:* boolean
16452
+ - *Default:* true
16453
+
16454
+ Run tests in an isolated environment. This option has no effect on vmThreads pool.
16455
+
16456
+ Disabling this option might improve performance if your code doesn't rely on side effects.
16457
+
16458
+ > [https://vitest.dev/config/#isolate](https://vitest.dev/config/#isolate)
15976
16459
 
15977
16460
  ---
15978
16461
 
@@ -15983,6 +16466,11 @@ public readonly passWithNoTests: boolean;
15983
16466
  ```
15984
16467
 
15985
16468
  - *Type:* boolean
16469
+ - *Default:* true
16470
+
16471
+ Vitest will not fail, if no tests will be found.
16472
+
16473
+ > [https://vitest.dev/config/#passwithnotests](https://vitest.dev/config/#passwithnotests)
15986
16474
 
15987
16475
  ---
15988
16476
 
@@ -15993,6 +16481,11 @@ public readonly pool: Pool;
15993
16481
  ```
15994
16482
 
15995
16483
  - *Type:* <a href="#@nikovirtala/projen-constructs.Pool">Pool</a>
16484
+ - *Default:* "forks"
16485
+
16486
+ Pool used to run tests in.
16487
+
16488
+ > [https://vitest.dev/config/#pool](https://vitest.dev/config/#pool)
15996
16489
 
15997
16490
  ---
15998
16491
 
@@ -16003,6 +16496,11 @@ public readonly printConsoleTrace: boolean;
16003
16496
  ```
16004
16497
 
16005
16498
  - *Type:* boolean
16499
+ - *Default:* true
16500
+
16501
+ Always print console traces when calling any console method.
16502
+
16503
+ > [https://vitest.dev/config/#consoletrace](https://vitest.dev/config/#consoletrace)
16006
16504
 
16007
16505
  ---
16008
16506
 
@@ -16013,6 +16511,11 @@ public readonly slowTestThreshold: number;
16013
16511
  ```
16014
16512
 
16015
16513
  - *Type:* number
16514
+ - *Default:* 300
16515
+
16516
+ The number of milliseconds after which a test or suite is considered slow.
16517
+
16518
+ > [https://vitest.dev/config/#slowtestthreshold](https://vitest.dev/config/#slowtestthreshold)
16016
16519
 
16017
16520
  ---
16018
16521
 
@@ -16023,6 +16526,13 @@ public readonly typecheckChecker: string;
16023
16526
  ```
16024
16527
 
16025
16528
  - *Type:* string
16529
+ - *Default:* "tsc --noEmit"
16530
+
16531
+ Tool to use for type checking.
16532
+
16533
+ Checker should implement the same output format as `tsc`.
16534
+
16535
+ > [https://vitest.dev/config/#typecheck-checker](https://vitest.dev/config/#typecheck-checker)
16026
16536
 
16027
16537
  ---
16028
16538
 
@@ -16033,6 +16543,11 @@ public readonly typecheckEnabled: boolean;
16033
16543
  ```
16034
16544
 
16035
16545
  - *Type:* boolean
16546
+ - *Default:* true (for TypeScript projects)
16547
+
16548
+ Enable typechecking alongside your regular tests.
16549
+
16550
+ > [https://vitest.dev/config/#typecheck-enabled](https://vitest.dev/config/#typecheck-enabled)
16036
16551
 
16037
16552
  ---
16038
16553
 
@@ -16043,6 +16558,11 @@ public readonly typecheckTsconfig: string;
16043
16558
  ```
16044
16559
 
16045
16560
  - *Type:* string
16561
+ - *Default:* "tsconfig.dev.json"
16562
+
16563
+ Path to custom tsconfig, relative to the project root.
16564
+
16565
+ > [https://vitest.dev/config/#typecheck-tsconfig](https://vitest.dev/config/#typecheck-tsconfig)
16046
16566
 
16047
16567
  ---
16048
16568
 
@@ -16053,6 +16573,13 @@ public readonly updateSnapshots: boolean;
16053
16573
  ```
16054
16574
 
16055
16575
  - *Type:* boolean
16576
+ - *Default:* true
16577
+
16578
+ Update snapshot files.
16579
+
16580
+ This will update all changed snapshots and delete obsolete ones.
16581
+
16582
+ > [https://vitest.dev/guide/snapshot.html#updating-snapshots](https://vitest.dev/guide/snapshot.html#updating-snapshots)
16056
16583
 
16057
16584
  ---
16058
16585
 
@@ -16070,9 +16597,9 @@ const vitestOptions: VitestOptions = { ... }
16070
16597
 
16071
16598
  | **Name** | **Type** | **Description** |
16072
16599
  | --- | --- | --- |
16073
- | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.config">config</a></code> | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions">VitestConfigOptions</a></code> | *No description.* |
16074
- | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.configFilePath">configFilePath</a></code> | <code>string</code> | *No description.* |
16075
- | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.vitestVersion">vitestVersion</a></code> | <code>string</code> | *No description.* |
16600
+ | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.config">config</a></code> | <code><a href="#@nikovirtala/projen-constructs.VitestConfigOptions">VitestConfigOptions</a></code> | Initial config options. |
16601
+ | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.configFilePath">configFilePath</a></code> | <code>string</code> | Config file path. |
16602
+ | <code><a href="#@nikovirtala/projen-constructs.VitestOptions.property.vitestVersion">vitestVersion</a></code> | <code>string</code> | Vitest version. |
16076
16603
 
16077
16604
  ---
16078
16605
 
@@ -16084,6 +16611,8 @@ public readonly config: VitestConfigOptions;
16084
16611
 
16085
16612
  - *Type:* <a href="#@nikovirtala/projen-constructs.VitestConfigOptions">VitestConfigOptions</a>
16086
16613
 
16614
+ Initial config options.
16615
+
16087
16616
  ---
16088
16617
 
16089
16618
  ##### `configFilePath`<sup>Optional</sup> <a name="configFilePath" id="@nikovirtala/projen-constructs.VitestOptions.property.configFilePath"></a>
@@ -16093,6 +16622,9 @@ public readonly configFilePath: string;
16093
16622
  ```
16094
16623
 
16095
16624
  - *Type:* string
16625
+ - *Default:* "vitest.config.ts"
16626
+
16627
+ Config file path.
16096
16628
 
16097
16629
  ---
16098
16630
 
@@ -16103,6 +16635,9 @@ public readonly vitestVersion: string;
16103
16635
  ```
16104
16636
 
16105
16637
  - *Type:* string
16638
+ - *Default:* "^4"
16639
+
16640
+ Vitest version.
16106
16641
 
16107
16642
  ---
16108
16643
 
@@ -16116,18 +16651,26 @@ public readonly vitestVersion: string;
16116
16651
 
16117
16652
  | **Name** | **Description** |
16118
16653
  | --- | --- |
16119
- | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider.ISTANBUL">ISTANBUL</a></code> | *No description.* |
16120
- | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider.V8">V8</a></code> | *No description.* |
16654
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider.ISTANBUL">ISTANBUL</a></code> | Provide coverage report using istanbul. |
16655
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageProvider.V8">V8</a></code> | Provide coverage reports using v8. |
16121
16656
 
16122
16657
  ---
16123
16658
 
16124
16659
  ##### `ISTANBUL` <a name="ISTANBUL" id="@nikovirtala/projen-constructs.CoverageProvider.ISTANBUL"></a>
16125
16660
 
16661
+ Provide coverage report using istanbul.
16662
+
16663
+ > [https://istanbul.js.org](https://istanbul.js.org)
16664
+
16126
16665
  ---
16127
16666
 
16128
16667
 
16129
16668
  ##### `V8` <a name="V8" id="@nikovirtala/projen-constructs.CoverageProvider.V8"></a>
16130
16669
 
16670
+ Provide coverage reports using v8.
16671
+
16672
+ > [https://v8.dev/blog/javascript-code-coverage](https://v8.dev/blog/javascript-code-coverage)
16673
+
16131
16674
  ---
16132
16675
 
16133
16676
 
@@ -16137,36 +16680,46 @@ public readonly vitestVersion: string;
16137
16680
 
16138
16681
  | **Name** | **Description** |
16139
16682
  | --- | --- |
16140
- | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.CLOVER">CLOVER</a></code> | *No description.* |
16141
- | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.HTML">HTML</a></code> | *No description.* |
16142
- | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.JSON">JSON</a></code> | *No description.* |
16143
- | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.LCOV">LCOV</a></code> | *No description.* |
16144
- | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.TEXT">TEXT</a></code> | *No description.* |
16683
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.CLOVER">CLOVER</a></code> | Provides `clover` report. |
16684
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.HTML">HTML</a></code> | Provides `HTML` report. |
16685
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.JSON">JSON</a></code> | Provides `JSON` report. |
16686
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.LCOV">LCOV</a></code> | Provides `LCOV` report. |
16687
+ | <code><a href="#@nikovirtala/projen-constructs.CoverageReporter.TEXT">TEXT</a></code> | Provides `text` report. |
16145
16688
 
16146
16689
  ---
16147
16690
 
16148
16691
  ##### `CLOVER` <a name="CLOVER" id="@nikovirtala/projen-constructs.CoverageReporter.CLOVER"></a>
16149
16692
 
16693
+ Provides `clover` report.
16694
+
16150
16695
  ---
16151
16696
 
16152
16697
 
16153
16698
  ##### `HTML` <a name="HTML" id="@nikovirtala/projen-constructs.CoverageReporter.HTML"></a>
16154
16699
 
16700
+ Provides `HTML` report.
16701
+
16155
16702
  ---
16156
16703
 
16157
16704
 
16158
16705
  ##### `JSON` <a name="JSON" id="@nikovirtala/projen-constructs.CoverageReporter.JSON"></a>
16159
16706
 
16707
+ Provides `JSON` report.
16708
+
16160
16709
  ---
16161
16710
 
16162
16711
 
16163
16712
  ##### `LCOV` <a name="LCOV" id="@nikovirtala/projen-constructs.CoverageReporter.LCOV"></a>
16164
16713
 
16714
+ Provides `LCOV` report.
16715
+
16165
16716
  ---
16166
16717
 
16167
16718
 
16168
16719
  ##### `TEXT` <a name="TEXT" id="@nikovirtala/projen-constructs.CoverageReporter.TEXT"></a>
16169
16720
 
16721
+ Provides `text` report.
16722
+
16170
16723
  ---
16171
16724
 
16172
16725
 
@@ -16176,30 +16729,44 @@ public readonly vitestVersion: string;
16176
16729
 
16177
16730
  | **Name** | **Description** |
16178
16731
  | --- | --- |
16179
- | <code><a href="#@nikovirtala/projen-constructs.Environment.EDGE_RUNTIME">EDGE_RUNTIME</a></code> | *No description.* |
16180
- | <code><a href="#@nikovirtala/projen-constructs.Environment.HAPPY_DOM">HAPPY_DOM</a></code> | *No description.* |
16181
- | <code><a href="#@nikovirtala/projen-constructs.Environment.JSDOM">JSDOM</a></code> | *No description.* |
16182
- | <code><a href="#@nikovirtala/projen-constructs.Environment.NODE">NODE</a></code> | *No description.* |
16732
+ | <code><a href="#@nikovirtala/projen-constructs.Environment.EDGE_RUNTIME">EDGE_RUNTIME</a></code> | Run tests in Vercel's Edge Runtime VM. |
16733
+ | <code><a href="#@nikovirtala/projen-constructs.Environment.HAPPY_DOM">HAPPY_DOM</a></code> | Run tests in `happy-dom` environment. |
16734
+ | <code><a href="#@nikovirtala/projen-constructs.Environment.JSDOM">JSDOM</a></code> | Run tests in `jsdom` environment. |
16735
+ | <code><a href="#@nikovirtala/projen-constructs.Environment.NODE">NODE</a></code> | Run tests in a Node.js environment. |
16183
16736
 
16184
16737
  ---
16185
16738
 
16186
16739
  ##### `EDGE_RUNTIME` <a name="EDGE_RUNTIME" id="@nikovirtala/projen-constructs.Environment.EDGE_RUNTIME"></a>
16187
16740
 
16741
+ Run tests in Vercel's Edge Runtime VM.
16742
+
16743
+ > [https://edge-runtime.vercel.app/packages/vm](https://edge-runtime.vercel.app/packages/vm)
16744
+
16188
16745
  ---
16189
16746
 
16190
16747
 
16191
16748
  ##### `HAPPY_DOM` <a name="HAPPY_DOM" id="@nikovirtala/projen-constructs.Environment.HAPPY_DOM"></a>
16192
16749
 
16750
+ Run tests in `happy-dom` environment.
16751
+
16752
+ > [https://github.com/capricorn86/happy-dom](https://github.com/capricorn86/happy-dom)
16753
+
16193
16754
  ---
16194
16755
 
16195
16756
 
16196
16757
  ##### `JSDOM` <a name="JSDOM" id="@nikovirtala/projen-constructs.Environment.JSDOM"></a>
16197
16758
 
16759
+ Run tests in `jsdom` environment.
16760
+
16761
+ > [https://github.com/jsdom/jsdom](https://github.com/jsdom/jsdom)
16762
+
16198
16763
  ---
16199
16764
 
16200
16765
 
16201
16766
  ##### `NODE` <a name="NODE" id="@nikovirtala/projen-constructs.Environment.NODE"></a>
16202
16767
 
16768
+ Run tests in a Node.js environment.
16769
+
16203
16770
  ---
16204
16771
 
16205
16772
 
@@ -16209,30 +16776,52 @@ public readonly vitestVersion: string;
16209
16776
 
16210
16777
  | **Name** | **Description** |
16211
16778
  | --- | --- |
16212
- | <code><a href="#@nikovirtala/projen-constructs.Pool.FORKS">FORKS</a></code> | *No description.* |
16213
- | <code><a href="#@nikovirtala/projen-constructs.Pool.THREADS">THREADS</a></code> | *No description.* |
16214
- | <code><a href="#@nikovirtala/projen-constructs.Pool.VMFORKS">VMFORKS</a></code> | *No description.* |
16215
- | <code><a href="#@nikovirtala/projen-constructs.Pool.VMTHREADS">VMTHREADS</a></code> | *No description.* |
16779
+ | <code><a href="#@nikovirtala/projen-constructs.Pool.FORKS">FORKS</a></code> | Run tests in `node:child_process` using fork(). |
16780
+ | <code><a href="#@nikovirtala/projen-constructs.Pool.THREADS">THREADS</a></code> | Run tests in `node:worker_threads`. |
16781
+ | <code><a href="#@nikovirtala/projen-constructs.Pool.VMFORKS">VMFORKS</a></code> | Run tests in isolated `node:vm`. |
16782
+ | <code><a href="#@nikovirtala/projen-constructs.Pool.VMTHREADS">VMTHREADS</a></code> | Run tests in isolated `node:vm`. Test files are run parallel using `node:worker_threads`. |
16216
16783
 
16217
16784
  ---
16218
16785
 
16219
16786
  ##### `FORKS` <a name="FORKS" id="@nikovirtala/projen-constructs.Pool.FORKS"></a>
16220
16787
 
16788
+ Run tests in `node:child_process` using fork().
16789
+
16790
+ Test isolation (when enabled) is done by spawning a new child process for each test file.
16791
+
16792
+ > [https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options](https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options)
16793
+
16221
16794
  ---
16222
16795
 
16223
16796
 
16224
16797
  ##### `THREADS` <a name="THREADS" id="@nikovirtala/projen-constructs.Pool.THREADS"></a>
16225
16798
 
16799
+ Run tests in `node:worker_threads`.
16800
+
16801
+ Test isolation (when enabled) is done by spawning a new thread for each test file.
16802
+
16226
16803
  ---
16227
16804
 
16228
16805
 
16229
16806
  ##### `VMFORKS` <a name="VMFORKS" id="@nikovirtala/projen-constructs.Pool.VMFORKS"></a>
16230
16807
 
16808
+ Run tests in isolated `node:vm`.
16809
+
16810
+ Test files are run parallel using `node:child_process` fork()
16811
+
16812
+ This makes tests run faster, but VM module is unstable. Your tests might leak memory.
16813
+
16814
+ > [https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options](https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options)
16815
+
16231
16816
  ---
16232
16817
 
16233
16818
 
16234
16819
  ##### `VMTHREADS` <a name="VMTHREADS" id="@nikovirtala/projen-constructs.Pool.VMTHREADS"></a>
16235
16820
 
16821
+ Run tests in isolated `node:vm`. Test files are run parallel using `node:worker_threads`.
16822
+
16823
+ This makes tests run faster, but VM module is unstable. Your tests might leak memory.
16824
+
16236
16825
  ---
16237
16826
 
16238
16827
 
@@ -16247,45 +16836,173 @@ in the defaultOptions structure.
16247
16836
 
16248
16837
  | **Name** | **Description** |
16249
16838
  | --- | --- |
16250
- | <code><a href="#@nikovirtala/projen-constructs.ProjectType.TYPESCRIPT">TYPESCRIPT</a></code> | TypeScript project with ES modules support. |
16251
- | <code><a href="#@nikovirtala/projen-constructs.ProjectType.JSII">JSII</a></code> | JSII project for publishing multi-language libraries. |
16252
- | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_TYPESCRIPT_APP">AWS_CDK_TYPESCRIPT_APP</a></code> | AWS CDK TypeScript application project with ES modules support. |
16253
- | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_CONSTRUCT_LIBRARY">AWS_CDK_CONSTRUCT_LIBRARY</a></code> | AWS CDK construct library project for publishing reusable constructs. |
16839
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_CONSTRUCT_LIBRARY">AWS_CDK_CONSTRUCT_LIBRARY</a></code> | AWS CDK construct library project. |
16840
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_JAVA_APP">AWS_CDK_JAVA_APP</a></code> | AWS CDK app in Java. |
16841
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_PYTHON_APP">AWS_CDK_PYTHON_APP</a></code> | AWS CDK app in Python. |
16842
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.AWS_CDK_TYPE_SCRIPT_APP">AWS_CDK_TYPE_SCRIPT_APP</a></code> | AWS CDK app in TypeScript. |
16843
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.CDK8S_PYTHON_APP">CDK8S_PYTHON_APP</a></code> | CDK8s app in Python. |
16844
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.CDK8S_TYPE_SCRIPT_APP">CDK8S_TYPE_SCRIPT_APP</a></code> | CDK8s app in TypeScript. |
16845
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_AWS">CONSTRUCT_LIBRARY_AWS</a></code> | ConstructLibraryAws. |
16846
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_CDK8S">CONSTRUCT_LIBRARY_CDK8S</a></code> | CDK8s construct library project. |
16847
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_CDKTF">CONSTRUCT_LIBRARY_CDKTF</a></code> | CDKTF construct library project. |
16848
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.GIT_HUB_PROJECT">GIT_HUB_PROJECT</a></code> | GitHub-based project. |
16849
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.JAVA_PROJECT">JAVA_PROJECT</a></code> | Java project. |
16850
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.JSII_PROJECT">JSII_PROJECT</a></code> | Multi-language jsii library project. |
16851
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.NEXT_JS_PROJECT">NEXT_JS_PROJECT</a></code> | Next.js project using JavaScript. |
16852
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.NEXT_JS_TYPE_SCRIPT_PROJECT">NEXT_JS_TYPE_SCRIPT_PROJECT</a></code> | Next.js project using TypeScript. |
16853
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.NODE_PROJECT">NODE_PROJECT</a></code> | Node.js project. |
16854
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.PYTHON_PROJECT">PYTHON_PROJECT</a></code> | Python project. |
16855
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.REACT_PROJECT">REACT_PROJECT</a></code> | React project using JavaScript. |
16856
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.REACT_TYPE_SCRIPT_PROJECT">REACT_TYPE_SCRIPT_PROJECT</a></code> | React project using TypeScript. |
16857
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_APP_PROJECT">TYPE_SCRIPT_APP_PROJECT</a></code> | TypeScript app. |
16858
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_LIBRARY_PROJECT">TYPE_SCRIPT_LIBRARY_PROJECT</a></code> | TypeScriptLibraryProject. |
16859
+ | <code><a href="#@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_PROJECT">TYPE_SCRIPT_PROJECT</a></code> | TypeScript project. |
16254
16860
 
16255
16861
  ---
16256
16862
 
16257
- ##### `TYPESCRIPT` <a name="TYPESCRIPT" id="@nikovirtala/projen-constructs.ProjectType.TYPESCRIPT"></a>
16863
+ ##### `AWS_CDK_CONSTRUCT_LIBRARY` <a name="AWS_CDK_CONSTRUCT_LIBRARY" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_CONSTRUCT_LIBRARY"></a>
16864
+
16865
+ AWS CDK construct library project.
16866
+
16867
+ ---
16258
16868
 
16259
- TypeScript project with ES modules support.
16260
16869
 
16261
- > [https://projen.io/docs/api/typescript#typescriptproject-](https://projen.io/docs/api/typescript#typescriptproject-)
16870
+ ##### `AWS_CDK_JAVA_APP` <a name="AWS_CDK_JAVA_APP" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_JAVA_APP"></a>
16871
+
16872
+ AWS CDK app in Java.
16262
16873
 
16263
16874
  ---
16264
16875
 
16265
16876
 
16266
- ##### `JSII` <a name="JSII" id="@nikovirtala/projen-constructs.ProjectType.JSII"></a>
16877
+ ##### `AWS_CDK_PYTHON_APP` <a name="AWS_CDK_PYTHON_APP" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_PYTHON_APP"></a>
16878
+
16879
+ AWS CDK app in Python.
16880
+
16881
+ ---
16267
16882
 
16268
- JSII project for publishing multi-language libraries.
16269
16883
 
16270
- > [https://projen.io/docs/api/cdk#jsiiproject-](https://projen.io/docs/api/cdk#jsiiproject-)
16884
+ ##### `AWS_CDK_TYPE_SCRIPT_APP` <a name="AWS_CDK_TYPE_SCRIPT_APP" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_TYPE_SCRIPT_APP"></a>
16885
+
16886
+ AWS CDK app in TypeScript.
16271
16887
 
16272
16888
  ---
16273
16889
 
16274
16890
 
16275
- ##### `AWS_CDK_TYPESCRIPT_APP` <a name="AWS_CDK_TYPESCRIPT_APP" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_TYPESCRIPT_APP"></a>
16891
+ ##### `CDK8S_PYTHON_APP` <a name="CDK8S_PYTHON_APP" id="@nikovirtala/projen-constructs.ProjectType.CDK8S_PYTHON_APP"></a>
16892
+
16893
+ CDK8s app in Python.
16276
16894
 
16277
- AWS CDK TypeScript application project with ES modules support.
16895
+ ---
16278
16896
 
16279
- > [https://projen.io/docs/api/awscdk#awscdktypescriptapp-](https://projen.io/docs/api/awscdk#awscdktypescriptapp-)
16897
+
16898
+ ##### `CDK8S_TYPE_SCRIPT_APP` <a name="CDK8S_TYPE_SCRIPT_APP" id="@nikovirtala/projen-constructs.ProjectType.CDK8S_TYPE_SCRIPT_APP"></a>
16899
+
16900
+ CDK8s app in TypeScript.
16280
16901
 
16281
16902
  ---
16282
16903
 
16283
16904
 
16284
- ##### `AWS_CDK_CONSTRUCT_LIBRARY` <a name="AWS_CDK_CONSTRUCT_LIBRARY" id="@nikovirtala/projen-constructs.ProjectType.AWS_CDK_CONSTRUCT_LIBRARY"></a>
16905
+ ##### `CONSTRUCT_LIBRARY_AWS` <a name="CONSTRUCT_LIBRARY_AWS" id="@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_AWS"></a>
16906
+
16907
+ ConstructLibraryAws.
16908
+
16909
+ ---
16910
+
16911
+
16912
+ ##### `CONSTRUCT_LIBRARY_CDK8S` <a name="CONSTRUCT_LIBRARY_CDK8S" id="@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_CDK8S"></a>
16913
+
16914
+ CDK8s construct library project.
16915
+
16916
+ ---
16917
+
16918
+
16919
+ ##### `CONSTRUCT_LIBRARY_CDKTF` <a name="CONSTRUCT_LIBRARY_CDKTF" id="@nikovirtala/projen-constructs.ProjectType.CONSTRUCT_LIBRARY_CDKTF"></a>
16920
+
16921
+ CDKTF construct library project.
16922
+
16923
+ ---
16924
+
16925
+
16926
+ ##### `GIT_HUB_PROJECT` <a name="GIT_HUB_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.GIT_HUB_PROJECT"></a>
16927
+
16928
+ GitHub-based project.
16929
+
16930
+ ---
16931
+
16932
+
16933
+ ##### `JAVA_PROJECT` <a name="JAVA_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.JAVA_PROJECT"></a>
16934
+
16935
+ Java project.
16936
+
16937
+ ---
16938
+
16939
+
16940
+ ##### `JSII_PROJECT` <a name="JSII_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.JSII_PROJECT"></a>
16941
+
16942
+ Multi-language jsii library project.
16943
+
16944
+ ---
16945
+
16946
+
16947
+ ##### `NEXT_JS_PROJECT` <a name="NEXT_JS_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.NEXT_JS_PROJECT"></a>
16948
+
16949
+ Next.js project using JavaScript.
16950
+
16951
+ ---
16952
+
16953
+
16954
+ ##### `NEXT_JS_TYPE_SCRIPT_PROJECT` <a name="NEXT_JS_TYPE_SCRIPT_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.NEXT_JS_TYPE_SCRIPT_PROJECT"></a>
16955
+
16956
+ Next.js project using TypeScript.
16957
+
16958
+ ---
16959
+
16960
+
16961
+ ##### `NODE_PROJECT` <a name="NODE_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.NODE_PROJECT"></a>
16962
+
16963
+ Node.js project.
16964
+
16965
+ ---
16966
+
16967
+
16968
+ ##### `PYTHON_PROJECT` <a name="PYTHON_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.PYTHON_PROJECT"></a>
16969
+
16970
+ Python project.
16971
+
16972
+ ---
16973
+
16974
+
16975
+ ##### `REACT_PROJECT` <a name="REACT_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.REACT_PROJECT"></a>
16976
+
16977
+ React project using JavaScript.
16978
+
16979
+ ---
16980
+
16981
+
16982
+ ##### `REACT_TYPE_SCRIPT_PROJECT` <a name="REACT_TYPE_SCRIPT_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.REACT_TYPE_SCRIPT_PROJECT"></a>
16983
+
16984
+ React project using TypeScript.
16985
+
16986
+ ---
16987
+
16988
+
16989
+ ##### `TYPE_SCRIPT_APP_PROJECT` <a name="TYPE_SCRIPT_APP_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_APP_PROJECT"></a>
16990
+
16991
+ TypeScript app.
16992
+
16993
+ ---
16994
+
16995
+
16996
+ ##### `TYPE_SCRIPT_LIBRARY_PROJECT` <a name="TYPE_SCRIPT_LIBRARY_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_LIBRARY_PROJECT"></a>
16997
+
16998
+ TypeScriptLibraryProject.
16999
+
17000
+ ---
17001
+
16285
17002
 
16286
- AWS CDK construct library project for publishing reusable constructs.
17003
+ ##### `TYPE_SCRIPT_PROJECT` <a name="TYPE_SCRIPT_PROJECT" id="@nikovirtala/projen-constructs.ProjectType.TYPE_SCRIPT_PROJECT"></a>
16287
17004
 
16288
- > [https://projen.io/docs/api/awscdk/#awscdkconstructlibrary-](https://projen.io/docs/api/awscdk/#awscdkconstructlibrary-)
17005
+ TypeScript project.
16289
17006
 
16290
17007
  ---
16291
17008