@flocoder93/base-project 0.0.2 → 0.0.4

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.
package/API.md ADDED
@@ -0,0 +1,1454 @@
1
+ # API Reference <a name="API Reference" id="api-reference"></a>
2
+
3
+ ## Constructs <a name="Constructs" id="Constructs"></a>
4
+
5
+ ### MonorepoProject <a name="MonorepoProject" id="@flocoder93/base-project.MonorepoProject"></a>
6
+
7
+ #### Initializers <a name="Initializers" id="@flocoder93/base-project.MonorepoProject.Initializer"></a>
8
+
9
+ ```typescript
10
+ import { MonorepoProject } from '@flocoder93/base-project'
11
+
12
+ new MonorepoProject(options: MonorepoProjectOptions)
13
+ ```
14
+
15
+ | **Name** | **Type** | **Description** |
16
+ | --- | --- | --- |
17
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.Initializer.parameter.options">options</a></code> | <code><a href="#@flocoder93/base-project.MonorepoProjectOptions">MonorepoProjectOptions</a></code> | *No description.* |
18
+
19
+ ---
20
+
21
+ ##### `options`<sup>Required</sup> <a name="options" id="@flocoder93/base-project.MonorepoProject.Initializer.parameter.options"></a>
22
+
23
+ - *Type:* <a href="#@flocoder93/base-project.MonorepoProjectOptions">MonorepoProjectOptions</a>
24
+
25
+ ---
26
+
27
+ #### Methods <a name="Methods" id="Methods"></a>
28
+
29
+ | **Name** | **Description** |
30
+ | --- | --- |
31
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.toString">toString</a></code> | Returns a string representation of this construct. |
32
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
33
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
34
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addPackageIgnore">addPackageIgnore</a></code> | Adds patterns to be ignored by npm. |
35
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addTask">addTask</a></code> | Adds a new task to this project. |
36
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
37
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.annotateGenerated">annotateGenerated</a></code> | Marks the provided file(s) as being generated. |
38
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
39
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
40
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.removeTask">removeTask</a></code> | Removes a task from a project. |
41
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
42
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.synth">synth</a></code> | Synthesize all project files into `outdir`. |
43
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
44
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
45
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
46
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |
47
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addBins">addBins</a></code> | *No description.* |
48
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addBundledDeps">addBundledDeps</a></code> | Defines bundled dependencies. |
49
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addCompileCommand">addCompileCommand</a></code> | DEPRECATED. |
50
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addDeps">addDeps</a></code> | Defines normal dependencies. |
51
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addDevDeps">addDevDeps</a></code> | Defines development/test dependencies. |
52
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addFields">addFields</a></code> | Directly set fields in `package.json`. |
53
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addKeywords">addKeywords</a></code> | Adds keywords to package.json (deduplicated). |
54
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addPeerDeps">addPeerDeps</a></code> | Defines peer dependencies. |
55
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addScripts">addScripts</a></code> | Replaces the contents of multiple npm package.json scripts. |
56
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.addTestCommand">addTestCommand</a></code> | DEPRECATED. |
57
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.hasScript">hasScript</a></code> | Indicates if a script by the name name is defined. |
58
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.removeScript">removeScript</a></code> | Removes the npm script (always successful). |
59
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.renderWorkflowSetup">renderWorkflowSetup</a></code> | Returns the set of workflow steps which should be executed to bootstrap a workflow. |
60
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.setScript">setScript</a></code> | Replaces the contents of an npm package.json script. |
61
+
62
+ ---
63
+
64
+ ##### `toString` <a name="toString" id="@flocoder93/base-project.MonorepoProject.toString"></a>
65
+
66
+ ```typescript
67
+ public toString(): string
68
+ ```
69
+
70
+ Returns a string representation of this construct.
71
+
72
+ ##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="@flocoder93/base-project.MonorepoProject.addExcludeFromCleanup"></a>
73
+
74
+ ```typescript
75
+ public addExcludeFromCleanup(globs: ...string[]): void
76
+ ```
77
+
78
+ Exclude the matching files from pre-synth cleanup.
79
+
80
+ Can be used when, for example, some
81
+ source files include the projen marker and we don't want them to be erased during synth.
82
+
83
+ ###### `globs`<sup>Required</sup> <a name="globs" id="@flocoder93/base-project.MonorepoProject.addExcludeFromCleanup.parameter.globs"></a>
84
+
85
+ - *Type:* ...string[]
86
+
87
+ The glob patterns to match.
88
+
89
+ ---
90
+
91
+ ##### `addGitIgnore` <a name="addGitIgnore" id="@flocoder93/base-project.MonorepoProject.addGitIgnore"></a>
92
+
93
+ ```typescript
94
+ public addGitIgnore(pattern: string): void
95
+ ```
96
+
97
+ Adds a .gitignore pattern.
98
+
99
+ ###### `pattern`<sup>Required</sup> <a name="pattern" id="@flocoder93/base-project.MonorepoProject.addGitIgnore.parameter.pattern"></a>
100
+
101
+ - *Type:* string
102
+
103
+ The glob pattern to ignore.
104
+
105
+ ---
106
+
107
+ ##### `addPackageIgnore` <a name="addPackageIgnore" id="@flocoder93/base-project.MonorepoProject.addPackageIgnore"></a>
108
+
109
+ ```typescript
110
+ public addPackageIgnore(pattern: string): void
111
+ ```
112
+
113
+ Adds patterns to be ignored by npm.
114
+
115
+ ###### `pattern`<sup>Required</sup> <a name="pattern" id="@flocoder93/base-project.MonorepoProject.addPackageIgnore.parameter.pattern"></a>
116
+
117
+ - *Type:* string
118
+
119
+ The pattern to ignore.
120
+
121
+ ---
122
+
123
+ ##### `addTask` <a name="addTask" id="@flocoder93/base-project.MonorepoProject.addTask"></a>
124
+
125
+ ```typescript
126
+ public addTask(name: string, props?: TaskOptions): Task
127
+ ```
128
+
129
+ Adds a new task to this project.
130
+
131
+ This will fail if the project already has
132
+ a task with this name.
133
+
134
+ ###### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.addTask.parameter.name"></a>
135
+
136
+ - *Type:* string
137
+
138
+ The task name to add.
139
+
140
+ ---
141
+
142
+ ###### `props`<sup>Optional</sup> <a name="props" id="@flocoder93/base-project.MonorepoProject.addTask.parameter.props"></a>
143
+
144
+ - *Type:* projen.TaskOptions
145
+
146
+ Task properties.
147
+
148
+ ---
149
+
150
+ ##### ~~`addTip`~~ <a name="addTip" id="@flocoder93/base-project.MonorepoProject.addTip"></a>
151
+
152
+ ```typescript
153
+ public addTip(message: string): void
154
+ ```
155
+
156
+ Prints a "tip" message during synthesis.
157
+
158
+ ###### `message`<sup>Required</sup> <a name="message" id="@flocoder93/base-project.MonorepoProject.addTip.parameter.message"></a>
159
+
160
+ - *Type:* string
161
+
162
+ The message.
163
+
164
+ ---
165
+
166
+ ##### `annotateGenerated` <a name="annotateGenerated" id="@flocoder93/base-project.MonorepoProject.annotateGenerated"></a>
167
+
168
+ ```typescript
169
+ public annotateGenerated(glob: string): void
170
+ ```
171
+
172
+ Marks the provided file(s) as being generated.
173
+
174
+ This is achieved using the
175
+ github-linguist attributes. Generated files do not count against the
176
+ repository statistics and language breakdown.
177
+
178
+ > [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md)
179
+
180
+ ###### `glob`<sup>Required</sup> <a name="glob" id="@flocoder93/base-project.MonorepoProject.annotateGenerated.parameter.glob"></a>
181
+
182
+ - *Type:* string
183
+
184
+ the glob pattern to match (could be a file path).
185
+
186
+ ---
187
+
188
+ ##### `postSynthesize` <a name="postSynthesize" id="@flocoder93/base-project.MonorepoProject.postSynthesize"></a>
189
+
190
+ ```typescript
191
+ public postSynthesize(): void
192
+ ```
193
+
194
+ Called after all components are synthesized.
195
+
196
+ Order is *not* guaranteed.
197
+
198
+ ##### `preSynthesize` <a name="preSynthesize" id="@flocoder93/base-project.MonorepoProject.preSynthesize"></a>
199
+
200
+ ```typescript
201
+ public preSynthesize(): void
202
+ ```
203
+
204
+ Called before all components are synthesized.
205
+
206
+ ##### `removeTask` <a name="removeTask" id="@flocoder93/base-project.MonorepoProject.removeTask"></a>
207
+
208
+ ```typescript
209
+ public removeTask(name: string): Task
210
+ ```
211
+
212
+ Removes a task from a project.
213
+
214
+ ###### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.removeTask.parameter.name"></a>
215
+
216
+ - *Type:* string
217
+
218
+ The name of the task to remove.
219
+
220
+ ---
221
+
222
+ ##### `runTaskCommand` <a name="runTaskCommand" id="@flocoder93/base-project.MonorepoProject.runTaskCommand"></a>
223
+
224
+ ```typescript
225
+ public runTaskCommand(task: Task): string
226
+ ```
227
+
228
+ Returns the shell command to execute in order to run a task.
229
+
230
+ This will
231
+ typically be `npx projen TASK`.
232
+
233
+ ###### `task`<sup>Required</sup> <a name="task" id="@flocoder93/base-project.MonorepoProject.runTaskCommand.parameter.task"></a>
234
+
235
+ - *Type:* projen.Task
236
+
237
+ The task for which the command is required.
238
+
239
+ ---
240
+
241
+ ##### `synth` <a name="synth" id="@flocoder93/base-project.MonorepoProject.synth"></a>
242
+
243
+ ```typescript
244
+ public synth(): void
245
+ ```
246
+
247
+ Synthesize all project files into `outdir`.
248
+
249
+ 1. Call "this.preSynthesize()"
250
+ 2. Delete all generated files
251
+ 3. Synthesize all subprojects
252
+ 4. Synthesize all components of this project
253
+ 5. Call "postSynthesize()" for all components of this project
254
+ 6. Call "this.postSynthesize()"
255
+
256
+ ##### `tryFindFile` <a name="tryFindFile" id="@flocoder93/base-project.MonorepoProject.tryFindFile"></a>
257
+
258
+ ```typescript
259
+ public tryFindFile(filePath: string): FileBase
260
+ ```
261
+
262
+ Finds a file at the specified relative path within this project and all its subprojects.
263
+
264
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="@flocoder93/base-project.MonorepoProject.tryFindFile.parameter.filePath"></a>
265
+
266
+ - *Type:* string
267
+
268
+ The file path.
269
+
270
+ If this path is relative, it will be resolved
271
+ from the root of _this_ project.
272
+
273
+ ---
274
+
275
+ ##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="@flocoder93/base-project.MonorepoProject.tryFindJsonFile"></a>
276
+
277
+ ```typescript
278
+ public tryFindJsonFile(filePath: string): JsonFile
279
+ ```
280
+
281
+ Finds a json file by name.
282
+
283
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="@flocoder93/base-project.MonorepoProject.tryFindJsonFile.parameter.filePath"></a>
284
+
285
+ - *Type:* string
286
+
287
+ The file path.
288
+
289
+ ---
290
+
291
+ ##### `tryFindObjectFile` <a name="tryFindObjectFile" id="@flocoder93/base-project.MonorepoProject.tryFindObjectFile"></a>
292
+
293
+ ```typescript
294
+ public tryFindObjectFile(filePath: string): ObjectFile
295
+ ```
296
+
297
+ Finds an object file (like JsonFile, YamlFile, etc.) by name.
298
+
299
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="@flocoder93/base-project.MonorepoProject.tryFindObjectFile.parameter.filePath"></a>
300
+
301
+ - *Type:* string
302
+
303
+ The file path.
304
+
305
+ ---
306
+
307
+ ##### `tryRemoveFile` <a name="tryRemoveFile" id="@flocoder93/base-project.MonorepoProject.tryRemoveFile"></a>
308
+
309
+ ```typescript
310
+ public tryRemoveFile(filePath: string): FileBase
311
+ ```
312
+
313
+ Finds a file at the specified relative path within this project and removes it.
314
+
315
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="@flocoder93/base-project.MonorepoProject.tryRemoveFile.parameter.filePath"></a>
316
+
317
+ - *Type:* string
318
+
319
+ The file path.
320
+
321
+ If this path is relative, it will be
322
+ resolved from the root of _this_ project.
323
+
324
+ ---
325
+
326
+ ##### `addBins` <a name="addBins" id="@flocoder93/base-project.MonorepoProject.addBins"></a>
327
+
328
+ ```typescript
329
+ public addBins(bins: {[ key: string ]: string}): void
330
+ ```
331
+
332
+ ###### `bins`<sup>Required</sup> <a name="bins" id="@flocoder93/base-project.MonorepoProject.addBins.parameter.bins"></a>
333
+
334
+ - *Type:* {[ key: string ]: string}
335
+
336
+ ---
337
+
338
+ ##### `addBundledDeps` <a name="addBundledDeps" id="@flocoder93/base-project.MonorepoProject.addBundledDeps"></a>
339
+
340
+ ```typescript
341
+ public addBundledDeps(deps: ...string[]): void
342
+ ```
343
+
344
+ Defines bundled dependencies.
345
+
346
+ Bundled dependencies will be added as normal dependencies as well as to the
347
+ `bundledDependencies` section of your `package.json`.
348
+
349
+ ###### `deps`<sup>Required</sup> <a name="deps" id="@flocoder93/base-project.MonorepoProject.addBundledDeps.parameter.deps"></a>
350
+
351
+ - *Type:* ...string[]
352
+
353
+ Names modules to install.
354
+
355
+ By default, the the dependency will
356
+ be installed in the next `npx projen` run and the version will be recorded
357
+ in your `package.json` file. You can upgrade manually or using `yarn
358
+ add/upgrade`. If you wish to specify a version range use this syntax:
359
+ `module@^7`.
360
+
361
+ ---
362
+
363
+ ##### ~~`addCompileCommand`~~ <a name="addCompileCommand" id="@flocoder93/base-project.MonorepoProject.addCompileCommand"></a>
364
+
365
+ ```typescript
366
+ public addCompileCommand(commands: ...string[]): void
367
+ ```
368
+
369
+ DEPRECATED.
370
+
371
+ ###### `commands`<sup>Required</sup> <a name="commands" id="@flocoder93/base-project.MonorepoProject.addCompileCommand.parameter.commands"></a>
372
+
373
+ - *Type:* ...string[]
374
+
375
+ ---
376
+
377
+ ##### `addDeps` <a name="addDeps" id="@flocoder93/base-project.MonorepoProject.addDeps"></a>
378
+
379
+ ```typescript
380
+ public addDeps(deps: ...string[]): void
381
+ ```
382
+
383
+ Defines normal dependencies.
384
+
385
+ ###### `deps`<sup>Required</sup> <a name="deps" id="@flocoder93/base-project.MonorepoProject.addDeps.parameter.deps"></a>
386
+
387
+ - *Type:* ...string[]
388
+
389
+ Names modules to install.
390
+
391
+ By default, the the dependency will
392
+ be installed in the next `npx projen` run and the version will be recorded
393
+ in your `package.json` file. You can upgrade manually or using `yarn
394
+ add/upgrade`. If you wish to specify a version range use this syntax:
395
+ `module@^7`.
396
+
397
+ ---
398
+
399
+ ##### `addDevDeps` <a name="addDevDeps" id="@flocoder93/base-project.MonorepoProject.addDevDeps"></a>
400
+
401
+ ```typescript
402
+ public addDevDeps(deps: ...string[]): void
403
+ ```
404
+
405
+ Defines development/test dependencies.
406
+
407
+ ###### `deps`<sup>Required</sup> <a name="deps" id="@flocoder93/base-project.MonorepoProject.addDevDeps.parameter.deps"></a>
408
+
409
+ - *Type:* ...string[]
410
+
411
+ Names modules to install.
412
+
413
+ By default, the the dependency will
414
+ be installed in the next `npx projen` run and the version will be recorded
415
+ in your `package.json` file. You can upgrade manually or using `yarn
416
+ add/upgrade`. If you wish to specify a version range use this syntax:
417
+ `module@^7`.
418
+
419
+ ---
420
+
421
+ ##### `addFields` <a name="addFields" id="@flocoder93/base-project.MonorepoProject.addFields"></a>
422
+
423
+ ```typescript
424
+ public addFields(fields: {[ key: string ]: any}): void
425
+ ```
426
+
427
+ Directly set fields in `package.json`.
428
+
429
+ ###### `fields`<sup>Required</sup> <a name="fields" id="@flocoder93/base-project.MonorepoProject.addFields.parameter.fields"></a>
430
+
431
+ - *Type:* {[ key: string ]: any}
432
+
433
+ The fields to set.
434
+
435
+ ---
436
+
437
+ ##### `addKeywords` <a name="addKeywords" id="@flocoder93/base-project.MonorepoProject.addKeywords"></a>
438
+
439
+ ```typescript
440
+ public addKeywords(keywords: ...string[]): void
441
+ ```
442
+
443
+ Adds keywords to package.json (deduplicated).
444
+
445
+ ###### `keywords`<sup>Required</sup> <a name="keywords" id="@flocoder93/base-project.MonorepoProject.addKeywords.parameter.keywords"></a>
446
+
447
+ - *Type:* ...string[]
448
+
449
+ The keywords to add.
450
+
451
+ ---
452
+
453
+ ##### `addPeerDeps` <a name="addPeerDeps" id="@flocoder93/base-project.MonorepoProject.addPeerDeps"></a>
454
+
455
+ ```typescript
456
+ public addPeerDeps(deps: ...string[]): void
457
+ ```
458
+
459
+ Defines peer dependencies.
460
+
461
+ When adding peer dependencies, a devDependency will also be added on the
462
+ pinned version of the declared peer. This will ensure that you are testing
463
+ your code against the minimum version required from your consumers.
464
+
465
+ ###### `deps`<sup>Required</sup> <a name="deps" id="@flocoder93/base-project.MonorepoProject.addPeerDeps.parameter.deps"></a>
466
+
467
+ - *Type:* ...string[]
468
+
469
+ Names modules to install.
470
+
471
+ By default, the the dependency will
472
+ be installed in the next `npx projen` run and the version will be recorded
473
+ in your `package.json` file. You can upgrade manually or using `yarn
474
+ add/upgrade`. If you wish to specify a version range use this syntax:
475
+ `module@^7`.
476
+
477
+ ---
478
+
479
+ ##### `addScripts` <a name="addScripts" id="@flocoder93/base-project.MonorepoProject.addScripts"></a>
480
+
481
+ ```typescript
482
+ public addScripts(scripts: {[ key: string ]: string}): void
483
+ ```
484
+
485
+ Replaces the contents of multiple npm package.json scripts.
486
+
487
+ ###### `scripts`<sup>Required</sup> <a name="scripts" id="@flocoder93/base-project.MonorepoProject.addScripts.parameter.scripts"></a>
488
+
489
+ - *Type:* {[ key: string ]: string}
490
+
491
+ The scripts to set.
492
+
493
+ ---
494
+
495
+ ##### ~~`addTestCommand`~~ <a name="addTestCommand" id="@flocoder93/base-project.MonorepoProject.addTestCommand"></a>
496
+
497
+ ```typescript
498
+ public addTestCommand(commands: ...string[]): void
499
+ ```
500
+
501
+ DEPRECATED.
502
+
503
+ ###### `commands`<sup>Required</sup> <a name="commands" id="@flocoder93/base-project.MonorepoProject.addTestCommand.parameter.commands"></a>
504
+
505
+ - *Type:* ...string[]
506
+
507
+ ---
508
+
509
+ ##### ~~`hasScript`~~ <a name="hasScript" id="@flocoder93/base-project.MonorepoProject.hasScript"></a>
510
+
511
+ ```typescript
512
+ public hasScript(name: string): boolean
513
+ ```
514
+
515
+ Indicates if a script by the name name is defined.
516
+
517
+ ###### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.hasScript.parameter.name"></a>
518
+
519
+ - *Type:* string
520
+
521
+ The name of the script.
522
+
523
+ ---
524
+
525
+ ##### `removeScript` <a name="removeScript" id="@flocoder93/base-project.MonorepoProject.removeScript"></a>
526
+
527
+ ```typescript
528
+ public removeScript(name: string): void
529
+ ```
530
+
531
+ Removes the npm script (always successful).
532
+
533
+ ###### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.removeScript.parameter.name"></a>
534
+
535
+ - *Type:* string
536
+
537
+ The name of the script.
538
+
539
+ ---
540
+
541
+ ##### `renderWorkflowSetup` <a name="renderWorkflowSetup" id="@flocoder93/base-project.MonorepoProject.renderWorkflowSetup"></a>
542
+
543
+ ```typescript
544
+ public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[]
545
+ ```
546
+
547
+ Returns the set of workflow steps which should be executed to bootstrap a workflow.
548
+
549
+ ###### `options`<sup>Optional</sup> <a name="options" id="@flocoder93/base-project.MonorepoProject.renderWorkflowSetup.parameter.options"></a>
550
+
551
+ - *Type:* projen.javascript.RenderWorkflowSetupOptions
552
+
553
+ Options.
554
+
555
+ ---
556
+
557
+ ##### `setScript` <a name="setScript" id="@flocoder93/base-project.MonorepoProject.setScript"></a>
558
+
559
+ ```typescript
560
+ public setScript(name: string, command: string): void
561
+ ```
562
+
563
+ Replaces the contents of an npm package.json script.
564
+
565
+ ###### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.setScript.parameter.name"></a>
566
+
567
+ - *Type:* string
568
+
569
+ The script name.
570
+
571
+ ---
572
+
573
+ ###### `command`<sup>Required</sup> <a name="command" id="@flocoder93/base-project.MonorepoProject.setScript.parameter.command"></a>
574
+
575
+ - *Type:* string
576
+
577
+ The command to execute.
578
+
579
+ ---
580
+
581
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
582
+
583
+ | **Name** | **Description** |
584
+ | --- | --- |
585
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
586
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.isProject">isProject</a></code> | Test whether the given construct is a project. |
587
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.of">of</a></code> | Find the closest ancestor project for given construct. |
588
+
589
+ ---
590
+
591
+ ##### `isConstruct` <a name="isConstruct" id="@flocoder93/base-project.MonorepoProject.isConstruct"></a>
592
+
593
+ ```typescript
594
+ import { MonorepoProject } from '@flocoder93/base-project'
595
+
596
+ MonorepoProject.isConstruct(x: any)
597
+ ```
598
+
599
+ Checks if `x` is a construct.
600
+
601
+ Use this method instead of `instanceof` to properly detect `Construct`
602
+ instances, even when the construct library is symlinked.
603
+
604
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
605
+ disk are seen as independent, completely different libraries. As a
606
+ consequence, the class `Construct` in each copy of the `constructs` library
607
+ is seen as a different class, and an instance of one class will not test as
608
+ `instanceof` the other class. `npm install` will not create installations
609
+ like this, but users may manually symlink construct libraries together or
610
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
611
+ library can be accidentally installed, and `instanceof` will behave
612
+ unpredictably. It is safest to avoid using `instanceof`, and using
613
+ this type-testing method instead.
614
+
615
+ ###### `x`<sup>Required</sup> <a name="x" id="@flocoder93/base-project.MonorepoProject.isConstruct.parameter.x"></a>
616
+
617
+ - *Type:* any
618
+
619
+ Any object.
620
+
621
+ ---
622
+
623
+ ##### `isProject` <a name="isProject" id="@flocoder93/base-project.MonorepoProject.isProject"></a>
624
+
625
+ ```typescript
626
+ import { MonorepoProject } from '@flocoder93/base-project'
627
+
628
+ MonorepoProject.isProject(x: any)
629
+ ```
630
+
631
+ Test whether the given construct is a project.
632
+
633
+ ###### `x`<sup>Required</sup> <a name="x" id="@flocoder93/base-project.MonorepoProject.isProject.parameter.x"></a>
634
+
635
+ - *Type:* any
636
+
637
+ ---
638
+
639
+ ##### `of` <a name="of" id="@flocoder93/base-project.MonorepoProject.of"></a>
640
+
641
+ ```typescript
642
+ import { MonorepoProject } from '@flocoder93/base-project'
643
+
644
+ MonorepoProject.of(construct: IConstruct)
645
+ ```
646
+
647
+ Find the closest ancestor project for given construct.
648
+
649
+ When given a project, this it the project itself.
650
+
651
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@flocoder93/base-project.MonorepoProject.of.parameter.construct"></a>
652
+
653
+ - *Type:* constructs.IConstruct
654
+
655
+ ---
656
+
657
+ #### Properties <a name="Properties" id="Properties"></a>
658
+
659
+ | **Name** | **Type** | **Description** |
660
+ | --- | --- | --- |
661
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
662
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.buildTask">buildTask</a></code> | <code>projen.Task</code> | *No description.* |
663
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
664
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.compileTask">compileTask</a></code> | <code>projen.Task</code> | *No description.* |
665
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.components">components</a></code> | <code>projen.Component[]</code> | Returns all the components within this project. |
666
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.deps">deps</a></code> | <code>projen.Dependencies</code> | Project dependencies. |
667
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.ejected">ejected</a></code> | <code>boolean</code> | Whether or not the project is being ejected. |
668
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.files">files</a></code> | <code>projen.FileBase[]</code> | All files in this project. |
669
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.gitattributes">gitattributes</a></code> | <code>projen.GitAttributesFile</code> | The .gitattributes file for this repository. |
670
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.gitignore">gitignore</a></code> | <code>projen.IgnoreFile</code> | .gitignore. |
671
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.logger">logger</a></code> | <code>projen.Logger</code> | Logging utilities. |
672
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.name">name</a></code> | <code>string</code> | Project name. |
673
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.outdir">outdir</a></code> | <code>string</code> | Absolute output directory of this project. |
674
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.packageTask">packageTask</a></code> | <code>projen.Task</code> | *No description.* |
675
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.postCompileTask">postCompileTask</a></code> | <code>projen.Task</code> | *No description.* |
676
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.preCompileTask">preCompileTask</a></code> | <code>projen.Task</code> | *No description.* |
677
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.projectBuild">projectBuild</a></code> | <code>projen.ProjectBuild</code> | Manages the build process of the project. |
678
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.projenCommand">projenCommand</a></code> | <code>string</code> | The command to use in order to run the projen CLI. |
679
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.root">root</a></code> | <code>projen.Project</code> | The root project. |
680
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.subprojects">subprojects</a></code> | <code>projen.Project[]</code> | Returns all the subprojects within this project. |
681
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.tasks">tasks</a></code> | <code>projen.Tasks</code> | Project tasks. |
682
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.testTask">testTask</a></code> | <code>projen.Task</code> | *No description.* |
683
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.defaultTask">defaultTask</a></code> | <code>projen.Task</code> | This is the "default" task, the one that executes "projen". |
684
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.initProject">initProject</a></code> | <code>projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
685
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.parent">parent</a></code> | <code>projen.Project</code> | A parent project. |
686
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | *No description.* |
687
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.autoApprove">autoApprove</a></code> | <code>projen.github.AutoApprove</code> | Auto approve set up for this project. |
688
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.devContainer">devContainer</a></code> | <code>projen.vscode.DevContainer</code> | Access for .devcontainer.json (used for GitHub Codespaces). |
689
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.github">github</a></code> | <code>projen.github.GitHub</code> | Access all github components. |
690
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.gitpod">gitpod</a></code> | <code>projen.Gitpod</code> | Access for Gitpod. |
691
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.vscode">vscode</a></code> | <code>projen.vscode.VsCode</code> | Access all VSCode components. |
692
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | *No description.* |
693
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | The build output directory. |
694
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.artifactsJavascriptDirectory">artifactsJavascriptDirectory</a></code> | <code>string</code> | The location of the npm tarball after build (`${artifactsDirectory}/js`). |
695
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.bundler">bundler</a></code> | <code>projen.javascript.Bundler</code> | *No description.* |
696
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.entrypoint">entrypoint</a></code> | <code>string</code> | *No description.* |
697
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.manifest">manifest</a></code> | <code>any</code> | *No description.* |
698
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.npmrc">npmrc</a></code> | <code>projen.javascript.NpmConfig</code> | The .npmrc file. |
699
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.package">package</a></code> | <code>projen.javascript.NodePackage</code> | API for managing the node package. |
700
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The package manager to use. |
701
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.runScriptCommand">runScriptCommand</a></code> | <code>string</code> | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). |
702
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.autoMerge">autoMerge</a></code> | <code>projen.github.AutoMerge</code> | Component that sets up mergify for merging approved pull requests. |
703
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.biome">biome</a></code> | <code>projen.javascript.Biome</code> | *No description.* |
704
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.buildWorkflow">buildWorkflow</a></code> | <code>projen.build.BuildWorkflow</code> | The PR build GitHub workflow. |
705
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.buildWorkflowJobId">buildWorkflowJobId</a></code> | <code>string</code> | The job ID of the build workflow. |
706
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.jest">jest</a></code> | <code>projen.javascript.Jest</code> | The Jest configuration (if enabled). |
707
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | Maximum node version supported by this package. |
708
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. |
709
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.npmignore">npmignore</a></code> | <code>projen.IgnoreFile</code> | The .npmignore file. |
710
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.prettier">prettier</a></code> | <code>projen.javascript.Prettier</code> | *No description.* |
711
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.publisher">publisher</a></code> | <code>projen.release.Publisher</code> | Package publisher. |
712
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.release">release</a></code> | <code>projen.release.Release</code> | Release management. |
713
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
714
+
715
+ ---
716
+
717
+ ##### `node`<sup>Required</sup> <a name="node" id="@flocoder93/base-project.MonorepoProject.property.node"></a>
718
+
719
+ ```typescript
720
+ public readonly node: Node;
721
+ ```
722
+
723
+ - *Type:* constructs.Node
724
+
725
+ The tree node.
726
+
727
+ ---
728
+
729
+ ##### `buildTask`<sup>Required</sup> <a name="buildTask" id="@flocoder93/base-project.MonorepoProject.property.buildTask"></a>
730
+
731
+ ```typescript
732
+ public readonly buildTask: Task;
733
+ ```
734
+
735
+ - *Type:* projen.Task
736
+
737
+ ---
738
+
739
+ ##### `commitGenerated`<sup>Required</sup> <a name="commitGenerated" id="@flocoder93/base-project.MonorepoProject.property.commitGenerated"></a>
740
+
741
+ ```typescript
742
+ public readonly commitGenerated: boolean;
743
+ ```
744
+
745
+ - *Type:* boolean
746
+
747
+ Whether to commit the managed files by default.
748
+
749
+ ---
750
+
751
+ ##### `compileTask`<sup>Required</sup> <a name="compileTask" id="@flocoder93/base-project.MonorepoProject.property.compileTask"></a>
752
+
753
+ ```typescript
754
+ public readonly compileTask: Task;
755
+ ```
756
+
757
+ - *Type:* projen.Task
758
+
759
+ ---
760
+
761
+ ##### `components`<sup>Required</sup> <a name="components" id="@flocoder93/base-project.MonorepoProject.property.components"></a>
762
+
763
+ ```typescript
764
+ public readonly components: Component[];
765
+ ```
766
+
767
+ - *Type:* projen.Component[]
768
+
769
+ Returns all the components within this project.
770
+
771
+ ---
772
+
773
+ ##### `deps`<sup>Required</sup> <a name="deps" id="@flocoder93/base-project.MonorepoProject.property.deps"></a>
774
+
775
+ ```typescript
776
+ public readonly deps: Dependencies;
777
+ ```
778
+
779
+ - *Type:* projen.Dependencies
780
+
781
+ Project dependencies.
782
+
783
+ ---
784
+
785
+ ##### `ejected`<sup>Required</sup> <a name="ejected" id="@flocoder93/base-project.MonorepoProject.property.ejected"></a>
786
+
787
+ ```typescript
788
+ public readonly ejected: boolean;
789
+ ```
790
+
791
+ - *Type:* boolean
792
+
793
+ Whether or not the project is being ejected.
794
+
795
+ ---
796
+
797
+ ##### `files`<sup>Required</sup> <a name="files" id="@flocoder93/base-project.MonorepoProject.property.files"></a>
798
+
799
+ ```typescript
800
+ public readonly files: FileBase[];
801
+ ```
802
+
803
+ - *Type:* projen.FileBase[]
804
+
805
+ All files in this project.
806
+
807
+ ---
808
+
809
+ ##### `gitattributes`<sup>Required</sup> <a name="gitattributes" id="@flocoder93/base-project.MonorepoProject.property.gitattributes"></a>
810
+
811
+ ```typescript
812
+ public readonly gitattributes: GitAttributesFile;
813
+ ```
814
+
815
+ - *Type:* projen.GitAttributesFile
816
+
817
+ The .gitattributes file for this repository.
818
+
819
+ ---
820
+
821
+ ##### `gitignore`<sup>Required</sup> <a name="gitignore" id="@flocoder93/base-project.MonorepoProject.property.gitignore"></a>
822
+
823
+ ```typescript
824
+ public readonly gitignore: IgnoreFile;
825
+ ```
826
+
827
+ - *Type:* projen.IgnoreFile
828
+
829
+ .gitignore.
830
+
831
+ ---
832
+
833
+ ##### `logger`<sup>Required</sup> <a name="logger" id="@flocoder93/base-project.MonorepoProject.property.logger"></a>
834
+
835
+ ```typescript
836
+ public readonly logger: Logger;
837
+ ```
838
+
839
+ - *Type:* projen.Logger
840
+
841
+ Logging utilities.
842
+
843
+ ---
844
+
845
+ ##### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProject.property.name"></a>
846
+
847
+ ```typescript
848
+ public readonly name: string;
849
+ ```
850
+
851
+ - *Type:* string
852
+
853
+ Project name.
854
+
855
+ ---
856
+
857
+ ##### `outdir`<sup>Required</sup> <a name="outdir" id="@flocoder93/base-project.MonorepoProject.property.outdir"></a>
858
+
859
+ ```typescript
860
+ public readonly outdir: string;
861
+ ```
862
+
863
+ - *Type:* string
864
+
865
+ Absolute output directory of this project.
866
+
867
+ ---
868
+
869
+ ##### `packageTask`<sup>Required</sup> <a name="packageTask" id="@flocoder93/base-project.MonorepoProject.property.packageTask"></a>
870
+
871
+ ```typescript
872
+ public readonly packageTask: Task;
873
+ ```
874
+
875
+ - *Type:* projen.Task
876
+
877
+ ---
878
+
879
+ ##### `postCompileTask`<sup>Required</sup> <a name="postCompileTask" id="@flocoder93/base-project.MonorepoProject.property.postCompileTask"></a>
880
+
881
+ ```typescript
882
+ public readonly postCompileTask: Task;
883
+ ```
884
+
885
+ - *Type:* projen.Task
886
+
887
+ ---
888
+
889
+ ##### `preCompileTask`<sup>Required</sup> <a name="preCompileTask" id="@flocoder93/base-project.MonorepoProject.property.preCompileTask"></a>
890
+
891
+ ```typescript
892
+ public readonly preCompileTask: Task;
893
+ ```
894
+
895
+ - *Type:* projen.Task
896
+
897
+ ---
898
+
899
+ ##### `projectBuild`<sup>Required</sup> <a name="projectBuild" id="@flocoder93/base-project.MonorepoProject.property.projectBuild"></a>
900
+
901
+ ```typescript
902
+ public readonly projectBuild: ProjectBuild;
903
+ ```
904
+
905
+ - *Type:* projen.ProjectBuild
906
+
907
+ Manages the build process of the project.
908
+
909
+ ---
910
+
911
+ ##### `projenCommand`<sup>Required</sup> <a name="projenCommand" id="@flocoder93/base-project.MonorepoProject.property.projenCommand"></a>
912
+
913
+ ```typescript
914
+ public readonly projenCommand: string;
915
+ ```
916
+
917
+ - *Type:* string
918
+
919
+ The command to use in order to run the projen CLI.
920
+
921
+ ---
922
+
923
+ ##### `root`<sup>Required</sup> <a name="root" id="@flocoder93/base-project.MonorepoProject.property.root"></a>
924
+
925
+ ```typescript
926
+ public readonly root: Project;
927
+ ```
928
+
929
+ - *Type:* projen.Project
930
+
931
+ The root project.
932
+
933
+ ---
934
+
935
+ ##### `subprojects`<sup>Required</sup> <a name="subprojects" id="@flocoder93/base-project.MonorepoProject.property.subprojects"></a>
936
+
937
+ ```typescript
938
+ public readonly subprojects: Project[];
939
+ ```
940
+
941
+ - *Type:* projen.Project[]
942
+
943
+ Returns all the subprojects within this project.
944
+
945
+ ---
946
+
947
+ ##### `tasks`<sup>Required</sup> <a name="tasks" id="@flocoder93/base-project.MonorepoProject.property.tasks"></a>
948
+
949
+ ```typescript
950
+ public readonly tasks: Tasks;
951
+ ```
952
+
953
+ - *Type:* projen.Tasks
954
+
955
+ Project tasks.
956
+
957
+ ---
958
+
959
+ ##### `testTask`<sup>Required</sup> <a name="testTask" id="@flocoder93/base-project.MonorepoProject.property.testTask"></a>
960
+
961
+ ```typescript
962
+ public readonly testTask: Task;
963
+ ```
964
+
965
+ - *Type:* projen.Task
966
+
967
+ ---
968
+
969
+ ##### `defaultTask`<sup>Optional</sup> <a name="defaultTask" id="@flocoder93/base-project.MonorepoProject.property.defaultTask"></a>
970
+
971
+ ```typescript
972
+ public readonly defaultTask: Task;
973
+ ```
974
+
975
+ - *Type:* projen.Task
976
+
977
+ This is the "default" task, the one that executes "projen".
978
+
979
+ Undefined if
980
+ the project is being ejected.
981
+
982
+ ---
983
+
984
+ ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@flocoder93/base-project.MonorepoProject.property.initProject"></a>
985
+
986
+ ```typescript
987
+ public readonly initProject: InitProject;
988
+ ```
989
+
990
+ - *Type:* projen.InitProject
991
+
992
+ The options used when this project is bootstrapped via `projen new`.
993
+
994
+ It
995
+ includes the original set of options passed to the CLI and also the JSII
996
+ FQN of the project type.
997
+
998
+ ---
999
+
1000
+ ##### `parent`<sup>Optional</sup> <a name="parent" id="@flocoder93/base-project.MonorepoProject.property.parent"></a>
1001
+
1002
+ ```typescript
1003
+ public readonly parent: Project;
1004
+ ```
1005
+
1006
+ - *Type:* projen.Project
1007
+
1008
+ A parent project.
1009
+
1010
+ If undefined, this is the root project.
1011
+
1012
+ ---
1013
+
1014
+ ##### `projectType`<sup>Required</sup> <a name="projectType" id="@flocoder93/base-project.MonorepoProject.property.projectType"></a>
1015
+
1016
+ ```typescript
1017
+ public readonly projectType: ProjectType;
1018
+ ```
1019
+
1020
+ - *Type:* projen.ProjectType
1021
+
1022
+ ---
1023
+
1024
+ ##### `autoApprove`<sup>Optional</sup> <a name="autoApprove" id="@flocoder93/base-project.MonorepoProject.property.autoApprove"></a>
1025
+
1026
+ ```typescript
1027
+ public readonly autoApprove: AutoApprove;
1028
+ ```
1029
+
1030
+ - *Type:* projen.github.AutoApprove
1031
+
1032
+ Auto approve set up for this project.
1033
+
1034
+ ---
1035
+
1036
+ ##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@flocoder93/base-project.MonorepoProject.property.devContainer"></a>
1037
+
1038
+ ```typescript
1039
+ public readonly devContainer: DevContainer;
1040
+ ```
1041
+
1042
+ - *Type:* projen.vscode.DevContainer
1043
+
1044
+ Access for .devcontainer.json (used for GitHub Codespaces).
1045
+
1046
+ This will be `undefined` if devContainer boolean is false
1047
+
1048
+ ---
1049
+
1050
+ ##### `github`<sup>Optional</sup> <a name="github" id="@flocoder93/base-project.MonorepoProject.property.github"></a>
1051
+
1052
+ ```typescript
1053
+ public readonly github: GitHub;
1054
+ ```
1055
+
1056
+ - *Type:* projen.github.GitHub
1057
+
1058
+ Access all github components.
1059
+
1060
+ This will be `undefined` for subprojects.
1061
+
1062
+ ---
1063
+
1064
+ ##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@flocoder93/base-project.MonorepoProject.property.gitpod"></a>
1065
+
1066
+ ```typescript
1067
+ public readonly gitpod: Gitpod;
1068
+ ```
1069
+
1070
+ - *Type:* projen.Gitpod
1071
+
1072
+ Access for Gitpod.
1073
+
1074
+ This will be `undefined` if gitpod boolean is false
1075
+
1076
+ ---
1077
+
1078
+ ##### `vscode`<sup>Optional</sup> <a name="vscode" id="@flocoder93/base-project.MonorepoProject.property.vscode"></a>
1079
+
1080
+ ```typescript
1081
+ public readonly vscode: VsCode;
1082
+ ```
1083
+
1084
+ - *Type:* projen.vscode.VsCode
1085
+
1086
+ Access all VSCode components.
1087
+
1088
+ This will be `undefined` for subprojects.
1089
+
1090
+ ---
1091
+
1092
+ ##### ~~`allowLibraryDependencies`~~<sup>Required</sup> <a name="allowLibraryDependencies" id="@flocoder93/base-project.MonorepoProject.property.allowLibraryDependencies"></a>
1093
+
1094
+ - *Deprecated:* use `package.allowLibraryDependencies`
1095
+
1096
+ ```typescript
1097
+ public readonly allowLibraryDependencies: boolean;
1098
+ ```
1099
+
1100
+ - *Type:* boolean
1101
+
1102
+ ---
1103
+
1104
+ ##### `artifactsDirectory`<sup>Required</sup> <a name="artifactsDirectory" id="@flocoder93/base-project.MonorepoProject.property.artifactsDirectory"></a>
1105
+
1106
+ ```typescript
1107
+ public readonly artifactsDirectory: string;
1108
+ ```
1109
+
1110
+ - *Type:* string
1111
+
1112
+ The build output directory.
1113
+
1114
+ An npm tarball will be created under the `js`
1115
+ subdirectory. For example, if this is set to `dist` (the default), the npm
1116
+ tarball will be placed under `dist/js/boom-boom-1.2.3.tg`.
1117
+
1118
+ ---
1119
+
1120
+ ##### `artifactsJavascriptDirectory`<sup>Required</sup> <a name="artifactsJavascriptDirectory" id="@flocoder93/base-project.MonorepoProject.property.artifactsJavascriptDirectory"></a>
1121
+
1122
+ ```typescript
1123
+ public readonly artifactsJavascriptDirectory: string;
1124
+ ```
1125
+
1126
+ - *Type:* string
1127
+
1128
+ The location of the npm tarball after build (`${artifactsDirectory}/js`).
1129
+
1130
+ ---
1131
+
1132
+ ##### `bundler`<sup>Required</sup> <a name="bundler" id="@flocoder93/base-project.MonorepoProject.property.bundler"></a>
1133
+
1134
+ ```typescript
1135
+ public readonly bundler: Bundler;
1136
+ ```
1137
+
1138
+ - *Type:* projen.javascript.Bundler
1139
+
1140
+ ---
1141
+
1142
+ ##### ~~`entrypoint`~~<sup>Required</sup> <a name="entrypoint" id="@flocoder93/base-project.MonorepoProject.property.entrypoint"></a>
1143
+
1144
+ - *Deprecated:* use `package.entrypoint`
1145
+
1146
+ ```typescript
1147
+ public readonly entrypoint: string;
1148
+ ```
1149
+
1150
+ - *Type:* string
1151
+
1152
+ ---
1153
+
1154
+ ##### ~~`manifest`~~<sup>Required</sup> <a name="manifest" id="@flocoder93/base-project.MonorepoProject.property.manifest"></a>
1155
+
1156
+ - *Deprecated:* use `package.addField(x, y)`
1157
+
1158
+ ```typescript
1159
+ public readonly manifest: any;
1160
+ ```
1161
+
1162
+ - *Type:* any
1163
+
1164
+ ---
1165
+
1166
+ ##### `npmrc`<sup>Required</sup> <a name="npmrc" id="@flocoder93/base-project.MonorepoProject.property.npmrc"></a>
1167
+
1168
+ ```typescript
1169
+ public readonly npmrc: NpmConfig;
1170
+ ```
1171
+
1172
+ - *Type:* projen.javascript.NpmConfig
1173
+
1174
+ The .npmrc file.
1175
+
1176
+ ---
1177
+
1178
+ ##### `package`<sup>Required</sup> <a name="package" id="@flocoder93/base-project.MonorepoProject.property.package"></a>
1179
+
1180
+ ```typescript
1181
+ public readonly package: NodePackage;
1182
+ ```
1183
+
1184
+ - *Type:* projen.javascript.NodePackage
1185
+
1186
+ API for managing the node package.
1187
+
1188
+ ---
1189
+
1190
+ ##### ~~`packageManager`~~<sup>Required</sup> <a name="packageManager" id="@flocoder93/base-project.MonorepoProject.property.packageManager"></a>
1191
+
1192
+ - *Deprecated:* use `package.packageManager`
1193
+
1194
+ ```typescript
1195
+ public readonly packageManager: NodePackageManager;
1196
+ ```
1197
+
1198
+ - *Type:* projen.javascript.NodePackageManager
1199
+
1200
+ The package manager to use.
1201
+
1202
+ ---
1203
+
1204
+ ##### `runScriptCommand`<sup>Required</sup> <a name="runScriptCommand" id="@flocoder93/base-project.MonorepoProject.property.runScriptCommand"></a>
1205
+
1206
+ ```typescript
1207
+ public readonly runScriptCommand: string;
1208
+ ```
1209
+
1210
+ - *Type:* string
1211
+
1212
+ The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager).
1213
+
1214
+ ---
1215
+
1216
+ ##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@flocoder93/base-project.MonorepoProject.property.autoMerge"></a>
1217
+
1218
+ ```typescript
1219
+ public readonly autoMerge: AutoMerge;
1220
+ ```
1221
+
1222
+ - *Type:* projen.github.AutoMerge
1223
+
1224
+ Component that sets up mergify for merging approved pull requests.
1225
+
1226
+ ---
1227
+
1228
+ ##### `biome`<sup>Optional</sup> <a name="biome" id="@flocoder93/base-project.MonorepoProject.property.biome"></a>
1229
+
1230
+ ```typescript
1231
+ public readonly biome: Biome;
1232
+ ```
1233
+
1234
+ - *Type:* projen.javascript.Biome
1235
+
1236
+ ---
1237
+
1238
+ ##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@flocoder93/base-project.MonorepoProject.property.buildWorkflow"></a>
1239
+
1240
+ ```typescript
1241
+ public readonly buildWorkflow: BuildWorkflow;
1242
+ ```
1243
+
1244
+ - *Type:* projen.build.BuildWorkflow
1245
+
1246
+ The PR build GitHub workflow.
1247
+
1248
+ `undefined` if `buildWorkflow` is disabled.
1249
+
1250
+ ---
1251
+
1252
+ ##### `buildWorkflowJobId`<sup>Optional</sup> <a name="buildWorkflowJobId" id="@flocoder93/base-project.MonorepoProject.property.buildWorkflowJobId"></a>
1253
+
1254
+ ```typescript
1255
+ public readonly buildWorkflowJobId: string;
1256
+ ```
1257
+
1258
+ - *Type:* string
1259
+
1260
+ The job ID of the build workflow.
1261
+
1262
+ ---
1263
+
1264
+ ##### `jest`<sup>Optional</sup> <a name="jest" id="@flocoder93/base-project.MonorepoProject.property.jest"></a>
1265
+
1266
+ ```typescript
1267
+ public readonly jest: Jest;
1268
+ ```
1269
+
1270
+ - *Type:* projen.javascript.Jest
1271
+
1272
+ The Jest configuration (if enabled).
1273
+
1274
+ ---
1275
+
1276
+ ##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="@flocoder93/base-project.MonorepoProject.property.maxNodeVersion"></a>
1277
+
1278
+ ```typescript
1279
+ public readonly maxNodeVersion: string;
1280
+ ```
1281
+
1282
+ - *Type:* string
1283
+
1284
+ Maximum node version supported by this package.
1285
+
1286
+ The value indicates the package is incompatible with newer versions.
1287
+
1288
+ ---
1289
+
1290
+ ##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="@flocoder93/base-project.MonorepoProject.property.minNodeVersion"></a>
1291
+
1292
+ ```typescript
1293
+ public readonly minNodeVersion: string;
1294
+ ```
1295
+
1296
+ - *Type:* string
1297
+
1298
+ The minimum node version required by this package to function.
1299
+
1300
+ This value indicates the package is incompatible with older versions.
1301
+
1302
+ ---
1303
+
1304
+ ##### `npmignore`<sup>Optional</sup> <a name="npmignore" id="@flocoder93/base-project.MonorepoProject.property.npmignore"></a>
1305
+
1306
+ ```typescript
1307
+ public readonly npmignore: IgnoreFile;
1308
+ ```
1309
+
1310
+ - *Type:* projen.IgnoreFile
1311
+
1312
+ The .npmignore file.
1313
+
1314
+ ---
1315
+
1316
+ ##### `prettier`<sup>Optional</sup> <a name="prettier" id="@flocoder93/base-project.MonorepoProject.property.prettier"></a>
1317
+
1318
+ ```typescript
1319
+ public readonly prettier: Prettier;
1320
+ ```
1321
+
1322
+ - *Type:* projen.javascript.Prettier
1323
+
1324
+ ---
1325
+
1326
+ ##### ~~`publisher`~~<sup>Optional</sup> <a name="publisher" id="@flocoder93/base-project.MonorepoProject.property.publisher"></a>
1327
+
1328
+ - *Deprecated:* use `release.publisher`.
1329
+
1330
+ ```typescript
1331
+ public readonly publisher: Publisher;
1332
+ ```
1333
+
1334
+ - *Type:* projen.release.Publisher
1335
+
1336
+ Package publisher.
1337
+
1338
+ This will be `undefined` if the project does not have a
1339
+ release workflow.
1340
+
1341
+ ---
1342
+
1343
+ ##### `release`<sup>Optional</sup> <a name="release" id="@flocoder93/base-project.MonorepoProject.property.release"></a>
1344
+
1345
+ ```typescript
1346
+ public readonly release: Release;
1347
+ ```
1348
+
1349
+ - *Type:* projen.release.Release
1350
+
1351
+ Release management.
1352
+
1353
+ ---
1354
+
1355
+ ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="@flocoder93/base-project.MonorepoProject.property.upgradeWorkflow"></a>
1356
+
1357
+ ```typescript
1358
+ public readonly upgradeWorkflow: UpgradeDependencies;
1359
+ ```
1360
+
1361
+ - *Type:* projen.javascript.UpgradeDependencies
1362
+
1363
+ The upgrade workflow.
1364
+
1365
+ ---
1366
+
1367
+ #### Constants <a name="Constants" id="Constants"></a>
1368
+
1369
+ | **Name** | **Type** | **Description** |
1370
+ | --- | --- | --- |
1371
+ | <code><a href="#@flocoder93/base-project.MonorepoProject.property.DEFAULT_TASK">DEFAULT_TASK</a></code> | <code>string</code> | The name of the default task (the task executed when `projen` is run without arguments). |
1372
+
1373
+ ---
1374
+
1375
+ ##### `DEFAULT_TASK`<sup>Required</sup> <a name="DEFAULT_TASK" id="@flocoder93/base-project.MonorepoProject.property.DEFAULT_TASK"></a>
1376
+
1377
+ ```typescript
1378
+ public readonly DEFAULT_TASK: string;
1379
+ ```
1380
+
1381
+ - *Type:* string
1382
+
1383
+ The name of the default task (the task executed when `projen` is run without arguments).
1384
+
1385
+ Normally
1386
+ this task should synthesize the project files.
1387
+
1388
+ ---
1389
+
1390
+ ## Structs <a name="Structs" id="Structs"></a>
1391
+
1392
+ ### MonorepoProjectOptions <a name="MonorepoProjectOptions" id="@flocoder93/base-project.MonorepoProjectOptions"></a>
1393
+
1394
+ #### Initializer <a name="Initializer" id="@flocoder93/base-project.MonorepoProjectOptions.Initializer"></a>
1395
+
1396
+ ```typescript
1397
+ import { MonorepoProjectOptions } from '@flocoder93/base-project'
1398
+
1399
+ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
1400
+ ```
1401
+
1402
+ #### Properties <a name="Properties" id="Properties"></a>
1403
+
1404
+ | **Name** | **Type** | **Description** |
1405
+ | --- | --- | --- |
1406
+ | <code><a href="#@flocoder93/base-project.MonorepoProjectOptions.property.name">name</a></code> | <code>string</code> | *No description.* |
1407
+ | <code><a href="#@flocoder93/base-project.MonorepoProjectOptions.property.repository">repository</a></code> | <code>string</code> | *No description.* |
1408
+ | <code><a href="#@flocoder93/base-project.MonorepoProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | *No description.* |
1409
+ | <code><a href="#@flocoder93/base-project.MonorepoProjectOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | *No description.* |
1410
+
1411
+ ---
1412
+
1413
+ ##### `name`<sup>Required</sup> <a name="name" id="@flocoder93/base-project.MonorepoProjectOptions.property.name"></a>
1414
+
1415
+ ```typescript
1416
+ public readonly name: string;
1417
+ ```
1418
+
1419
+ - *Type:* string
1420
+
1421
+ ---
1422
+
1423
+ ##### `repository`<sup>Required</sup> <a name="repository" id="@flocoder93/base-project.MonorepoProjectOptions.property.repository"></a>
1424
+
1425
+ ```typescript
1426
+ public readonly repository: string;
1427
+ ```
1428
+
1429
+ - *Type:* string
1430
+
1431
+ ---
1432
+
1433
+ ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@flocoder93/base-project.MonorepoProjectOptions.property.defaultReleaseBranch"></a>
1434
+
1435
+ ```typescript
1436
+ public readonly defaultReleaseBranch: string;
1437
+ ```
1438
+
1439
+ - *Type:* string
1440
+
1441
+ ---
1442
+
1443
+ ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@flocoder93/base-project.MonorepoProjectOptions.property.packageManager"></a>
1444
+
1445
+ ```typescript
1446
+ public readonly packageManager: NodePackageManager;
1447
+ ```
1448
+
1449
+ - *Type:* projen.javascript.NodePackageManager
1450
+
1451
+ ---
1452
+
1453
+
1454
+