Class ReactProjectOptions.Builder
- java.lang.Object
-
- io.github.cdklabs.projen.web.ReactProjectOptions.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<ReactProjectOptions>
- Enclosing interface:
- ReactProjectOptions
@Stability(Experimental) public static final class ReactProjectOptions.Builder extends Object implements software.amazon.jsii.Builder<ReactProjectOptions>
A builder forReactProjectOptions
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
-
-
-
Method Detail
-
sampleCode
@Stability(Experimental) public ReactProjectOptions.Builder sampleCode(Boolean sampleCode)
Sets the value ofReactProjectOptions.getSampleCode()- Parameters:
sampleCode- Generate one-time sample insrc/andpublic/if there are no files there.- Returns:
this
-
srcdir
@Stability(Experimental) public ReactProjectOptions.Builder srcdir(String srcdir)
Sets the value ofReactProjectOptions.getSrcdir()- Parameters:
srcdir- Source directory.- Returns:
this
-
defaultReleaseBranch
@Stability(Experimental) public ReactProjectOptions.Builder defaultReleaseBranch(String defaultReleaseBranch)
Sets the value ofNodeProjectOptions.getDefaultReleaseBranch()- Parameters:
defaultReleaseBranch- The name of the main release branch. This parameter is required.- Returns:
this
-
artifactsDirectory
@Stability(Experimental) public ReactProjectOptions.Builder artifactsDirectory(String artifactsDirectory)
Sets the value ofNodeProjectOptions.getArtifactsDirectory()- Parameters:
artifactsDirectory- A directory which will contain build artifacts.- Returns:
this
-
autoApproveUpgrades
@Stability(Experimental) public ReactProjectOptions.Builder autoApproveUpgrades(Boolean autoApproveUpgrades)
Sets the value ofNodeProjectOptions.getAutoApproveUpgrades()- Parameters:
autoApproveUpgrades- Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). Throw if set to true butautoApproveOptionsare not defined.- Returns:
this
-
buildWorkflow
@Stability(Experimental) public ReactProjectOptions.Builder buildWorkflow(Boolean buildWorkflow)
Sets the value ofNodeProjectOptions.getBuildWorkflow()- Parameters:
buildWorkflow- Define a GitHub workflow for building PRs.- Returns:
this
-
buildWorkflowTriggers
@Stability(Experimental) public ReactProjectOptions.Builder buildWorkflowTriggers(Triggers buildWorkflowTriggers)
Sets the value ofNodeProjectOptions.getBuildWorkflowTriggers()- Parameters:
buildWorkflowTriggers- Build workflow triggers.- Returns:
this
-
bundlerOptions
@Stability(Experimental) public ReactProjectOptions.Builder bundlerOptions(BundlerOptions bundlerOptions)
Sets the value ofNodeProjectOptions.getBundlerOptions()- Parameters:
bundlerOptions- Options forBundler.- Returns:
this
-
checkLicenses
@Stability(Experimental) public ReactProjectOptions.Builder checkLicenses(LicenseCheckerOptions checkLicenses)
Sets the value ofNodeProjectOptions.getCheckLicenses()- Parameters:
checkLicenses- Configure which licenses should be deemed acceptable for use by dependencies. This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.- Returns:
this
-
codeCov
@Stability(Experimental) public ReactProjectOptions.Builder codeCov(Boolean codeCov)
Sets the value ofNodeProjectOptions.getCodeCov()- Parameters:
codeCov- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with@codeCovTokenSecret.- Returns:
this
-
codeCovTokenSecret
@Stability(Experimental) public ReactProjectOptions.Builder codeCovTokenSecret(String codeCovTokenSecret)
Sets the value ofNodeProjectOptions.getCodeCovTokenSecret()- Parameters:
codeCovTokenSecret- Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.- Returns:
this
-
copyrightOwner
@Stability(Experimental) public ReactProjectOptions.Builder copyrightOwner(String copyrightOwner)
Sets the value ofNodeProjectOptions.getCopyrightOwner()- Parameters:
copyrightOwner- License copyright owner.- Returns:
this
-
copyrightPeriod
@Stability(Experimental) public ReactProjectOptions.Builder copyrightPeriod(String copyrightPeriod)
Sets the value ofNodeProjectOptions.getCopyrightPeriod()- Parameters:
copyrightPeriod- The copyright years to put in the LICENSE file.- Returns:
this
-
dependabot
@Stability(Experimental) public ReactProjectOptions.Builder dependabot(Boolean dependabot)
Sets the value ofNodeProjectOptions.getDependabot()- Parameters:
dependabot- Use dependabot to handle dependency upgrades. Cannot be used in conjunction withdepsUpgrade.- Returns:
this
-
dependabotOptions
@Stability(Experimental) public ReactProjectOptions.Builder dependabotOptions(DependabotOptions dependabotOptions)
Sets the value ofNodeProjectOptions.getDependabotOptions()- Parameters:
dependabotOptions- Options for dependabot.- Returns:
this
-
depsUpgrade
@Stability(Experimental) public ReactProjectOptions.Builder depsUpgrade(Boolean depsUpgrade)
Sets the value ofNodeProjectOptions.getDepsUpgrade()- Parameters:
depsUpgrade- Use tasks and github workflows to handle dependency upgrades. Cannot be used in conjunction withdependabot.- Returns:
this
-
depsUpgradeOptions
@Stability(Experimental) public ReactProjectOptions.Builder depsUpgradeOptions(UpgradeDependenciesOptions depsUpgradeOptions)
Sets the value ofNodeProjectOptions.getDepsUpgradeOptions()- Parameters:
depsUpgradeOptions- Options forUpgradeDependencies.- Returns:
this
-
gitignore
@Stability(Experimental) public ReactProjectOptions.Builder gitignore(List<String> gitignore)
Sets the value ofNodeProjectOptions.getGitignore()- Parameters:
gitignore- Additional entries to .gitignore.- Returns:
this
-
jest
@Stability(Experimental) public ReactProjectOptions.Builder jest(Boolean jest)
Sets the value ofNodeProjectOptions.getJest()- Parameters:
jest- Setup jest unit tests.- Returns:
this
-
jestOptions
@Stability(Experimental) public ReactProjectOptions.Builder jestOptions(JestOptions jestOptions)
Sets the value ofNodeProjectOptions.getJestOptions()- Parameters:
jestOptions- Jest options.- Returns:
this
-
mutableBuild
@Stability(Experimental) public ReactProjectOptions.Builder mutableBuild(Boolean mutableBuild)
Sets the value ofNodeProjectOptions.getMutableBuild()- Parameters:
mutableBuild- Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged.Implies that PR builds do not have anti-tamper checks.
- Returns:
this
-
npmignore
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder npmignore(List<String> npmignore)
Deprecated.- use `project.addPackageIgnore`Sets the value ofNodeProjectOptions.getNpmignore()- Parameters:
npmignore- Additional entries to .npmignore.- Returns:
this
-
npmignoreEnabled
@Stability(Experimental) public ReactProjectOptions.Builder npmignoreEnabled(Boolean npmignoreEnabled)
Sets the value ofNodeProjectOptions.getNpmignoreEnabled()- Parameters:
npmignoreEnabled- Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.- Returns:
this
-
npmIgnoreOptions
@Stability(Experimental) public ReactProjectOptions.Builder npmIgnoreOptions(IgnoreFileOptions npmIgnoreOptions)
Sets the value ofNodeProjectOptions.getNpmIgnoreOptions()- Parameters:
npmIgnoreOptions- Configuration options for .npmignore file.- Returns:
this
-
packageValue
@Stability(Experimental) public ReactProjectOptions.Builder packageValue(Boolean packageValue)
Sets the value ofNodeProjectOptions.getPackageValue()- Parameters:
packageValue- Defines apackagetask that will produce an npm tarball under the artifacts directory (e.g.dist).- Returns:
this
-
prettier
@Stability(Experimental) public ReactProjectOptions.Builder prettier(Boolean prettier)
Sets the value ofNodeProjectOptions.getPrettier()- Parameters:
prettier- Setup prettier.- Returns:
this
-
prettierOptions
@Stability(Experimental) public ReactProjectOptions.Builder prettierOptions(PrettierOptions prettierOptions)
Sets the value ofNodeProjectOptions.getPrettierOptions()- Parameters:
prettierOptions- Prettier options.- Returns:
this
-
projenDevDependency
@Stability(Experimental) public ReactProjectOptions.Builder projenDevDependency(Boolean projenDevDependency)
Sets the value ofNodeProjectOptions.getProjenDevDependency()- Parameters:
projenDevDependency- Indicates of "projen" should be installed as a devDependency.- Returns:
this
-
projenrcJs
@Stability(Experimental) public ReactProjectOptions.Builder projenrcJs(Boolean projenrcJs)
Sets the value ofNodeProjectOptions.getProjenrcJs()- Parameters:
projenrcJs- Generate (once) .projenrc.js (in JavaScript). Set tofalsein order to disable .projenrc.js generation.- Returns:
this
-
projenrcJsOptions
@Stability(Experimental) public ReactProjectOptions.Builder projenrcJsOptions(ProjenrcOptions projenrcJsOptions)
Sets the value ofNodeProjectOptions.getProjenrcJsOptions()- Parameters:
projenrcJsOptions- Options for .projenrc.js.- Returns:
this
-
projenVersion
@Stability(Experimental) public ReactProjectOptions.Builder projenVersion(String projenVersion)
Sets the value ofNodeProjectOptions.getProjenVersion()- Parameters:
projenVersion- Version of projen to install.- Returns:
this
-
pullRequestTemplate
@Stability(Experimental) public ReactProjectOptions.Builder pullRequestTemplate(Boolean pullRequestTemplate)
Sets the value ofNodeProjectOptions.getPullRequestTemplate()- Parameters:
pullRequestTemplate- Include a GitHub pull request template.- Returns:
this
-
pullRequestTemplateContents
@Stability(Experimental) public ReactProjectOptions.Builder pullRequestTemplateContents(List<String> pullRequestTemplateContents)
Sets the value ofNodeProjectOptions.getPullRequestTemplateContents()- Parameters:
pullRequestTemplateContents- The contents of the pull request template.- Returns:
this
-
release
@Stability(Experimental) public ReactProjectOptions.Builder release(Boolean release)
Sets the value ofNodeProjectOptions.getRelease()- Parameters:
release- Add release management to this project.- Returns:
this
-
releaseToNpm
@Stability(Experimental) public ReactProjectOptions.Builder releaseToNpm(Boolean releaseToNpm)
Sets the value ofNodeProjectOptions.getReleaseToNpm()- Parameters:
releaseToNpm- Automatically release to npm when new versions are introduced.- Returns:
this
-
releaseWorkflow
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder releaseWorkflow(Boolean releaseWorkflow)
Deprecated.see `release`.Sets the value ofNodeProjectOptions.getReleaseWorkflow()- Parameters:
releaseWorkflow- DEPRECATED: renamed torelease.- Returns:
this
-
workflowBootstrapSteps
@Stability(Experimental) public ReactProjectOptions.Builder workflowBootstrapSteps(List<? extends JobStep> workflowBootstrapSteps)
Sets the value ofNodeProjectOptions.getWorkflowBootstrapSteps()- Parameters:
workflowBootstrapSteps- Workflow steps to use in order to bootstrap this repo.- Returns:
this
-
workflowGitIdentity
@Stability(Experimental) public ReactProjectOptions.Builder workflowGitIdentity(GitIdentity workflowGitIdentity)
Sets the value ofNodeProjectOptions.getWorkflowGitIdentity()- Parameters:
workflowGitIdentity- The git identity to use in workflows.- Returns:
this
-
workflowNodeVersion
@Stability(Experimental) public ReactProjectOptions.Builder workflowNodeVersion(String workflowNodeVersion)
Sets the value ofNodeProjectOptions.getWorkflowNodeVersion()- Parameters:
workflowNodeVersion- The node version to use in GitHub workflows.- Returns:
this
-
workflowPackageCache
@Stability(Experimental) public ReactProjectOptions.Builder workflowPackageCache(Boolean workflowPackageCache)
Sets the value ofNodeProjectOptions.getWorkflowPackageCache()- Parameters:
workflowPackageCache- Enable Node.js package cache in GitHub workflows.- Returns:
this
-
autoApproveOptions
@Stability(Experimental) public ReactProjectOptions.Builder autoApproveOptions(AutoApproveOptions autoApproveOptions)
Sets the value ofGitHubProjectOptions.getAutoApproveOptions()- Parameters:
autoApproveOptions- Enable and configure the 'auto approve' workflow.- Returns:
this
-
autoMerge
@Stability(Experimental) public ReactProjectOptions.Builder autoMerge(Boolean autoMerge)
Sets the value ofGitHubProjectOptions.getAutoMerge()- Parameters:
autoMerge- Enable automatic merging on GitHub. Has no effect ifgithub.mergifyis set to false.- Returns:
this
-
autoMergeOptions
@Stability(Experimental) public ReactProjectOptions.Builder autoMergeOptions(AutoMergeOptions autoMergeOptions)
Sets the value ofGitHubProjectOptions.getAutoMergeOptions()- Parameters:
autoMergeOptions- Configure options for automatic merging on GitHub. Has no effect ifgithub.mergifyorautoMergeis set to false.- Returns:
this
-
clobber
@Stability(Experimental) public ReactProjectOptions.Builder clobber(Boolean clobber)
Sets the value ofGitHubProjectOptions.getClobber()- Parameters:
clobber- Add aclobbertask which resets the repo to origin.- Returns:
this
-
devContainer
@Stability(Experimental) public ReactProjectOptions.Builder devContainer(Boolean devContainer)
Sets the value ofGitHubProjectOptions.getDevContainer()- Parameters:
devContainer- Add a VSCode development environment (used for GitHub Codespaces).- Returns:
this
-
github
@Stability(Experimental) public ReactProjectOptions.Builder github(Boolean github)
Sets the value ofGitHubProjectOptions.getGithub()- Parameters:
github- Enable GitHub integration. Enabled by default for root projects. Disabled for non-root projects.- Returns:
this
-
githubOptions
@Stability(Experimental) public ReactProjectOptions.Builder githubOptions(GitHubOptions githubOptions)
Sets the value ofGitHubProjectOptions.getGithubOptions()- Parameters:
githubOptions- Options for GitHub integration.- Returns:
this
-
gitpod
@Stability(Experimental) public ReactProjectOptions.Builder gitpod(Boolean gitpod)
Sets the value ofGitHubProjectOptions.getGitpod()- Parameters:
gitpod- Add a Gitpod development environment.- Returns:
this
-
mergify
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder mergify(Boolean mergify)
Deprecated.use `githubOptions.mergify` insteadSets the value ofGitHubProjectOptions.getMergify()- Parameters:
mergify- Whether mergify should be enabled on this repository or not.- Returns:
this
-
mergifyOptions
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder mergifyOptions(MergifyOptions mergifyOptions)
Deprecated.use `githubOptions.mergifyOptions` insteadSets the value ofGitHubProjectOptions.getMergifyOptions()- Parameters:
mergifyOptions- Options for mergify.- Returns:
this
-
projectType
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder projectType(ProjectType projectType)
Deprecated.no longer supported at the base project levelSets the value ofGitHubProjectOptions.getProjectType()- Parameters:
projectType- Which type of project this is (library/app).- Returns:
this
-
projenCredentials
@Stability(Experimental) public ReactProjectOptions.Builder projenCredentials(GithubCredentials projenCredentials)
Sets the value ofGitHubProjectOptions.getProjenCredentials()- Parameters:
projenCredentials- Choose a method of providing GitHub API access for projen workflows.- Returns:
this
-
projenTokenSecret
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder projenTokenSecret(String projenTokenSecret)
Deprecated.use `projenCredentials`Sets the value ofGitHubProjectOptions.getProjenTokenSecret()- Parameters:
projenTokenSecret- The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This token needs to have therepo,workflowsandpackagesscope.- Returns:
this
-
readme
@Stability(Experimental) public ReactProjectOptions.Builder readme(SampleReadmeProps readme)
Sets the value ofGitHubProjectOptions.getReadme()- Parameters:
readme- The README setup.- Returns:
this
-
stale
@Stability(Experimental) public ReactProjectOptions.Builder stale(Boolean stale)
Sets the value ofGitHubProjectOptions.getStale()- Parameters:
stale- Auto-close of stale issues and pull request. SeestaleOptionsfor options.- Returns:
this
-
staleOptions
@Stability(Experimental) public ReactProjectOptions.Builder staleOptions(StaleOptions staleOptions)
Sets the value ofGitHubProjectOptions.getStaleOptions()- Parameters:
staleOptions- Auto-close stale issues and pull requests. To disable setstaletofalse.- Returns:
this
-
vscode
@Stability(Experimental) public ReactProjectOptions.Builder vscode(Boolean vscode)
Sets the value ofGitHubProjectOptions.getVscode()- Parameters:
vscode- Enable VSCode integration. Enabled by default for root projects. Disabled for non-root projects.- Returns:
this
-
name
@Stability(Experimental) public ReactProjectOptions.Builder name(String name)
Sets the value ofProjectOptions.getName()- Parameters:
name- This is the name of your project. This parameter is required.- Returns:
this
-
commitGenerated
@Stability(Experimental) public ReactProjectOptions.Builder commitGenerated(Boolean commitGenerated)
Sets the value ofProjectOptions.getCommitGenerated()- Parameters:
commitGenerated- Whether to commit the managed files by default.- Returns:
this
-
gitIgnoreOptions
@Stability(Experimental) public ReactProjectOptions.Builder gitIgnoreOptions(IgnoreFileOptions gitIgnoreOptions)
Sets the value ofProjectOptions.getGitIgnoreOptions()- Parameters:
gitIgnoreOptions- Configuration options for .gitignore file.- Returns:
this
-
gitOptions
@Stability(Experimental) public ReactProjectOptions.Builder gitOptions(GitOptions gitOptions)
Sets the value ofProjectOptions.getGitOptions()- Parameters:
gitOptions- Configuration options for git.- Returns:
this
-
logging
@Stability(Experimental) public ReactProjectOptions.Builder logging(LoggerOptions logging)
Sets the value ofProjectOptions.getLogging()- Parameters:
logging- Configure logging options such as verbosity.- Returns:
this
-
outdir
@Stability(Experimental) public ReactProjectOptions.Builder outdir(String outdir)
Sets the value ofProjectOptions.getOutdir()- Parameters:
outdir- The root directory of the project. Relative to this directory, all files are synthesized.If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other subprojects.
- Returns:
this
-
parent
@Stability(Experimental) public ReactProjectOptions.Builder parent(Project parent)
Sets the value ofProjectOptions.getParent()- Parameters:
parent- The parent project, if this project is part of a bigger project.- Returns:
this
-
projenCommand
@Stability(Experimental) public ReactProjectOptions.Builder projenCommand(String projenCommand)
Sets the value ofProjectOptions.getProjenCommand()- Parameters:
projenCommand- The shell command to use in order to run the projen CLI. Can be used to customize in special environments.- Returns:
this
-
projenrcJson
@Stability(Experimental) public ReactProjectOptions.Builder projenrcJson(Boolean projenrcJson)
Sets the value ofProjectOptions.getProjenrcJson()- Parameters:
projenrcJson- Generate (once) .projenrc.json (in JSON). Set tofalsein order to disable .projenrc.json generation.- Returns:
this
-
projenrcJsonOptions
@Stability(Experimental) public ReactProjectOptions.Builder projenrcJsonOptions(ProjenrcJsonOptions projenrcJsonOptions)
Sets the value ofProjectOptions.getProjenrcJsonOptions()- Parameters:
projenrcJsonOptions- Options for .projenrc.json.- Returns:
this
-
renovatebot
@Stability(Experimental) public ReactProjectOptions.Builder renovatebot(Boolean renovatebot)
Sets the value ofProjectOptions.getRenovatebot()- Parameters:
renovatebot- Use renovatebot to handle dependency upgrades.- Returns:
this
-
renovatebotOptions
@Stability(Experimental) public ReactProjectOptions.Builder renovatebotOptions(RenovatebotOptions renovatebotOptions)
Sets the value ofProjectOptions.getRenovatebotOptions()- Parameters:
renovatebotOptions- Options for renovatebot.- Returns:
this
-
allowLibraryDependencies
@Stability(Experimental) public ReactProjectOptions.Builder allowLibraryDependencies(Boolean allowLibraryDependencies)
Sets the value ofNodePackageOptions.getAllowLibraryDependencies()- Parameters:
allowLibraryDependencies- Allow the project to includepeerDependenciesandbundledDependencies. This is normally only allowed for libraries. For apps, there's no meaning for specifying these.- Returns:
this
-
authorEmail
@Stability(Experimental) public ReactProjectOptions.Builder authorEmail(String authorEmail)
Sets the value ofNodePackageOptions.getAuthorEmail()- Parameters:
authorEmail- Author's e-mail.- Returns:
this
-
authorName
@Stability(Experimental) public ReactProjectOptions.Builder authorName(String authorName)
Sets the value ofNodePackageOptions.getAuthorName()- Parameters:
authorName- Author's name.- Returns:
this
-
authorOrganization
@Stability(Experimental) public ReactProjectOptions.Builder authorOrganization(Boolean authorOrganization)
Sets the value ofNodePackageOptions.getAuthorOrganization()- Parameters:
authorOrganization- Is the author an organization.- Returns:
this
-
authorUrl
@Stability(Experimental) public ReactProjectOptions.Builder authorUrl(String authorUrl)
Sets the value ofNodePackageOptions.getAuthorUrl()- Parameters:
authorUrl- Author's URL / Website.- Returns:
this
-
autoDetectBin
@Stability(Experimental) public ReactProjectOptions.Builder autoDetectBin(Boolean autoDetectBin)
Sets the value ofNodePackageOptions.getAutoDetectBin()- Parameters:
autoDetectBin- Automatically add all executables under thebindirectory to yourpackage.jsonfile under thebinsection.- Returns:
this
-
bin
@Stability(Experimental) public ReactProjectOptions.Builder bin(Map<String,String> bin)
Sets the value ofNodePackageOptions.getBin()- Parameters:
bin- Binary programs vended with your module. You can use this option to add/customize how binaries are represented in yourpackage.json, but unlessautoDetectBinisfalse, every executable file underbinwill automatically be added to this section.- Returns:
this
-
bugsEmail
@Stability(Experimental) public ReactProjectOptions.Builder bugsEmail(String bugsEmail)
Sets the value ofNodePackageOptions.getBugsEmail()- Parameters:
bugsEmail- The email address to which issues should be reported.- Returns:
this
-
bugsUrl
@Stability(Experimental) public ReactProjectOptions.Builder bugsUrl(String bugsUrl)
Sets the value ofNodePackageOptions.getBugsUrl()- Parameters:
bugsUrl- The url to your project's issue tracker.- Returns:
this
-
bundledDeps
@Stability(Experimental) public ReactProjectOptions.Builder bundledDeps(List<String> bundledDeps)
Sets the value ofNodePackageOptions.getBundledDeps()- Parameters:
bundledDeps- List of dependencies to bundle into this module. These modules will be added both to thedependenciessection andbundledDependenciessection of yourpackage.json.The recommendation is to only specify the module name here (e.g.
express). This will behave similar toyarn addornpm installin the sense that it will add the module as a dependency to yourpackage.jsonfile with the latest version (^). You can specify semver requirements in the same syntax passed tonpm ioryarn add(e.g.express@^2) and this will be what youpackage.jsonwill eventually include.- Returns:
this
-
codeArtifactOptions
@Stability(Experimental) public ReactProjectOptions.Builder codeArtifactOptions(CodeArtifactOptions codeArtifactOptions)
Sets the value ofNodePackageOptions.getCodeArtifactOptions()- Parameters:
codeArtifactOptions- Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact- Returns:
this
-
deps
@Stability(Experimental) public ReactProjectOptions.Builder deps(List<String> deps)
Sets the value ofNodePackageOptions.getDeps()- Parameters:
deps- Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g.express). This will behave similar toyarn addornpm installin the sense that it will add the module as a dependency to yourpackage.jsonfile with the latest version (^). You can specify semver requirements in the same syntax passed tonpm ioryarn add(e.g.express@^2) and this will be what youpackage.jsonwill eventually include.- Returns:
this
-
description
@Stability(Experimental) public ReactProjectOptions.Builder description(String description)
Sets the value ofNodePackageOptions.getDescription()- Parameters:
description- The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description- Returns:
this
-
devDeps
@Stability(Experimental) public ReactProjectOptions.Builder devDeps(List<String> devDeps)
Sets the value ofNodePackageOptions.getDevDeps()- Parameters:
devDeps- Build dependencies for this module. These dependencies will only be available in your build environment but will not be fetched when this module is consumed.The recommendation is to only specify the module name here (e.g.
express). This will behave similar toyarn addornpm installin the sense that it will add the module as a dependency to yourpackage.jsonfile with the latest version (^). You can specify semver requirements in the same syntax passed tonpm ioryarn add(e.g.express@^2) and this will be what youpackage.jsonwill eventually include.- Returns:
this
-
entrypoint
@Stability(Experimental) public ReactProjectOptions.Builder entrypoint(String entrypoint)
Sets the value ofNodePackageOptions.getEntrypoint()- Parameters:
entrypoint- Module entrypoint (maininpackage.json). Set to an empty string to not includemainin your package.json- Returns:
this
-
homepage
@Stability(Experimental) public ReactProjectOptions.Builder homepage(String homepage)
Sets the value ofNodePackageOptions.getHomepage()- Parameters:
homepage- Package's Homepage / Website.- Returns:
this
-
keywords
@Stability(Experimental) public ReactProjectOptions.Builder keywords(List<String> keywords)
Sets the value ofNodePackageOptions.getKeywords()- Parameters:
keywords- Keywords to include inpackage.json.- Returns:
this
-
license
@Stability(Experimental) public ReactProjectOptions.Builder license(String license)
Sets the value ofNodePackageOptions.getLicense()- Parameters:
license- License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use thelicensedoption if you want to no license to be specified.- Returns:
this
-
licensed
@Stability(Experimental) public ReactProjectOptions.Builder licensed(Boolean licensed)
Sets the value ofNodePackageOptions.getLicensed()- Parameters:
licensed- Indicates if a license should be added.- Returns:
this
-
maxNodeVersion
@Stability(Experimental) public ReactProjectOptions.Builder maxNodeVersion(String maxNodeVersion)
Sets the value ofNodePackageOptions.getMaxNodeVersion()- Parameters:
maxNodeVersion- Minimum node.js version to require viaengines(inclusive).- Returns:
this
-
minNodeVersion
@Stability(Experimental) public ReactProjectOptions.Builder minNodeVersion(String minNodeVersion)
Sets the value ofNodePackageOptions.getMinNodeVersion()- Parameters:
minNodeVersion- Minimum Node.js version to require via package.jsonengines(inclusive).- Returns:
this
-
npmAccess
@Stability(Experimental) public ReactProjectOptions.Builder npmAccess(NpmAccess npmAccess)
Sets the value ofNodePackageOptions.getNpmAccess()- Parameters:
npmAccess- Access level of the npm package.- Returns:
this
-
npmProvenance
@Stability(Experimental) public ReactProjectOptions.Builder npmProvenance(Boolean npmProvenance)
Sets the value ofNodePackageOptions.getNpmProvenance()- Parameters:
npmProvenance- Should provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider.Note that the projen
ReleaseandPublishercomponents are usingpublibto publish packages, which is using npm internally and supports provenance statements independently of the package manager used.- Returns:
this
-
npmRegistry
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder npmRegistry(String npmRegistry)
Deprecated.use `npmRegistryUrl` insteadSets the value ofNodePackageOptions.getNpmRegistry()- Parameters:
npmRegistry- The host name of the npm registry to publish to. Cannot be set together withnpmRegistryUrl.- Returns:
this
-
npmRegistryUrl
@Stability(Experimental) public ReactProjectOptions.Builder npmRegistryUrl(String npmRegistryUrl)
Sets the value ofNodePackageOptions.getNpmRegistryUrl()- Parameters:
npmRegistryUrl- The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://")- Returns:
this
-
npmTokenSecret
@Stability(Experimental) public ReactProjectOptions.Builder npmTokenSecret(String npmTokenSecret)
Sets the value ofNodePackageOptions.getNpmTokenSecret()- Parameters:
npmTokenSecret- GitHub secret which contains the NPM token to use when publishing packages.- Returns:
this
-
packageManager
@Stability(Experimental) public ReactProjectOptions.Builder packageManager(NodePackageManager packageManager)
Sets the value ofNodePackageOptions.getPackageManager()- Parameters:
packageManager- The Node Package Manager used to execute scripts.- Returns:
this
-
packageName
@Stability(Experimental) public ReactProjectOptions.Builder packageName(String packageName)
Sets the value ofNodePackageOptions.getPackageName()- Parameters:
packageName- The "name" in package.json.- Returns:
this
-
peerDependencyOptions
@Stability(Experimental) public ReactProjectOptions.Builder peerDependencyOptions(PeerDependencyOptions peerDependencyOptions)
Sets the value ofNodePackageOptions.getPeerDependencyOptions()- Parameters:
peerDependencyOptions- Options forpeerDeps.- Returns:
this
-
peerDeps
@Stability(Experimental) public ReactProjectOptions.Builder peerDeps(List<String> peerDeps)
Sets the value ofNodePackageOptions.getPeerDeps()- Parameters:
peerDeps- Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the consumer of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in thenode_modulestree of your consumers.Note that prior to npm@7, peer dependencies are not automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers.
Unless
peerDependencyOptions.pinnedDevDependencyis disabled (it is enabled by default), projen will automatically add a dev dependency with a pinned version for each peer dependency. This will ensure that you build & test your module against the lowest peer version required.- Returns:
this
-
pnpmVersion
@Stability(Experimental) public ReactProjectOptions.Builder pnpmVersion(String pnpmVersion)
Sets the value ofNodePackageOptions.getPnpmVersion()- Parameters:
pnpmVersion- The version of PNPM to use if using PNPM as a package manager.- Returns:
this
-
repository
@Stability(Experimental) public ReactProjectOptions.Builder repository(String repository)
Sets the value ofNodePackageOptions.getRepository()- Parameters:
repository- The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository- Returns:
this
-
repositoryDirectory
@Stability(Experimental) public ReactProjectOptions.Builder repositoryDirectory(String repositoryDirectory)
Sets the value ofNodePackageOptions.getRepositoryDirectory()- Parameters:
repositoryDirectory- If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.- Returns:
this
-
scopedPackagesOptions
@Stability(Experimental) public ReactProjectOptions.Builder scopedPackagesOptions(List<? extends ScopedPackagesOptions> scopedPackagesOptions)
Sets the value ofNodePackageOptions.getScopedPackagesOptions()- Parameters:
scopedPackagesOptions- Options for privately hosted scoped packages.- Returns:
this
-
scripts
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder scripts(Map<String,String> scripts)
Deprecated.use `project.addTask()` or `package.setScript()`Sets the value ofNodePackageOptions.getScripts()- Parameters:
scripts- npm scripts to include. If a script has the same name as a standard script, the standard script will be overwritten. Also adds the script as a task.- Returns:
this
-
stability
@Stability(Experimental) public ReactProjectOptions.Builder stability(String stability)
Sets the value ofNodePackageOptions.getStability()- Parameters:
stability- Package's Stability.- Returns:
this
-
yarnBerryOptions
@Stability(Experimental) public ReactProjectOptions.Builder yarnBerryOptions(YarnBerryOptions yarnBerryOptions)
Sets the value ofNodePackageOptions.getYarnBerryOptions()- Parameters:
yarnBerryOptions- Options for Yarn Berry.- Returns:
this
-
jsiiReleaseVersion
@Stability(Experimental) public ReactProjectOptions.Builder jsiiReleaseVersion(String jsiiReleaseVersion)
Sets the value ofReleaseProjectOptions.getJsiiReleaseVersion()- Parameters:
jsiiReleaseVersion- Version requirement ofpublibwhich is used to publish modules to npm.- Returns:
this
-
majorVersion
@Stability(Experimental) public ReactProjectOptions.Builder majorVersion(Number majorVersion)
Sets the value ofReleaseProjectOptions.getMajorVersion()- Parameters:
majorVersion- Major version to release from the default branch. If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version.- Returns:
this
-
minMajorVersion
@Stability(Experimental) public ReactProjectOptions.Builder minMajorVersion(Number minMajorVersion)
Sets the value ofReleaseProjectOptions.getMinMajorVersion()- Parameters:
minMajorVersion- Minimal Major version to release. This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number.Can not be set together with
majorVersion.- Returns:
this
-
npmDistTag
@Stability(Experimental) public ReactProjectOptions.Builder npmDistTag(String npmDistTag)
Sets the value ofReleaseProjectOptions.getNpmDistTag()- Parameters:
npmDistTag- The npmDistTag to use when publishing from the default branch. To set the npm dist-tag for release branches, set thenpmDistTagproperty for each branch.- Returns:
this
-
postBuildSteps
@Stability(Experimental) public ReactProjectOptions.Builder postBuildSteps(List<? extends JobStep> postBuildSteps)
Sets the value ofReleaseProjectOptions.getPostBuildSteps()- Parameters:
postBuildSteps- Steps to execute after build as part of the release workflow.- Returns:
this
-
prerelease
@Stability(Experimental) public ReactProjectOptions.Builder prerelease(String prerelease)
Sets the value ofReleaseProjectOptions.getPrerelease()- Parameters:
prerelease- Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").- Returns:
this
-
publishDryRun
@Stability(Experimental) public ReactProjectOptions.Builder publishDryRun(Boolean publishDryRun)
Sets the value ofReleaseProjectOptions.getPublishDryRun()- Parameters:
publishDryRun- Instead of actually publishing to package managers, just print the publishing command.- Returns:
this
-
publishTasks
@Stability(Experimental) public ReactProjectOptions.Builder publishTasks(Boolean publishTasks)
Sets the value ofReleaseProjectOptions.getPublishTasks()- Parameters:
publishTasks- Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity.- Returns:
this
-
releasableCommits
@Stability(Experimental) public ReactProjectOptions.Builder releasableCommits(ReleasableCommits releasableCommits)
Sets the value ofReleaseProjectOptions.getReleasableCommits()- Parameters:
releasableCommits- Find commits that should be considered releasable Used to decide if a release is required.- Returns:
this
-
releaseBranches
@Stability(Experimental) public ReactProjectOptions.Builder releaseBranches(Map<String,? extends BranchOptions> releaseBranches)
Sets the value ofReleaseProjectOptions.getReleaseBranches()- Parameters:
releaseBranches- Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch must be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, themajorVersionfield must also be provided for the default branch.- Returns:
this
-
releaseEveryCommit
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder releaseEveryCommit(Boolean releaseEveryCommit)
Deprecated.Use `releaseTrigger: ReleaseTrigger.continuous()` insteadSets the value ofReleaseProjectOptions.getReleaseEveryCommit()- Parameters:
releaseEveryCommit- Automatically release new versions every commit to one of branches inreleaseBranches.- Returns:
this
-
releaseFailureIssue
@Stability(Experimental) public ReactProjectOptions.Builder releaseFailureIssue(Boolean releaseFailureIssue)
Sets the value ofReleaseProjectOptions.getReleaseFailureIssue()- Parameters:
releaseFailureIssue- Create a github issue on every failed publishing task.- Returns:
this
-
releaseFailureIssueLabel
@Stability(Experimental) public ReactProjectOptions.Builder releaseFailureIssueLabel(String releaseFailureIssueLabel)
Sets the value ofReleaseProjectOptions.getReleaseFailureIssueLabel()- Parameters:
releaseFailureIssueLabel- The label to apply to issues indicating publish failures. Only applies ifreleaseFailureIssueis true.- Returns:
this
-
releaseSchedule
@Stability(Deprecated) @Deprecated public ReactProjectOptions.Builder releaseSchedule(String releaseSchedule)
Deprecated.Use `releaseTrigger: ReleaseTrigger.scheduled()` insteadSets the value ofReleaseProjectOptions.getReleaseSchedule()- Parameters:
releaseSchedule- CRON schedule to trigger new releases.- Returns:
this
-
releaseTagPrefix
@Stability(Experimental) public ReactProjectOptions.Builder releaseTagPrefix(String releaseTagPrefix)
Sets the value ofReleaseProjectOptions.getReleaseTagPrefix()- Parameters:
releaseTagPrefix- Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix.- Returns:
this
-
releaseTrigger
@Stability(Experimental) public ReactProjectOptions.Builder releaseTrigger(ReleaseTrigger releaseTrigger)
Sets the value ofReleaseProjectOptions.getReleaseTrigger()- Parameters:
releaseTrigger- The release trigger to use.- Returns:
this
-
releaseWorkflowName
@Stability(Experimental) public ReactProjectOptions.Builder releaseWorkflowName(String releaseWorkflowName)
Sets the value ofReleaseProjectOptions.getReleaseWorkflowName()- Parameters:
releaseWorkflowName- The name of the default release workflow.- Returns:
this
-
releaseWorkflowSetupSteps
@Stability(Experimental) public ReactProjectOptions.Builder releaseWorkflowSetupSteps(List<? extends JobStep> releaseWorkflowSetupSteps)
Sets the value ofReleaseProjectOptions.getReleaseWorkflowSetupSteps()- Parameters:
releaseWorkflowSetupSteps- A set of workflow steps to execute in order to setup the workflow container.- Returns:
this
-
versionrcOptions
@Stability(Experimental) public ReactProjectOptions.Builder versionrcOptions(Map<String,? extends Object> versionrcOptions)
Sets the value ofReleaseProjectOptions.getVersionrcOptions()- Parameters:
versionrcOptions- Custom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it.- Returns:
this
-
workflowContainerImage
@Stability(Experimental) public ReactProjectOptions.Builder workflowContainerImage(String workflowContainerImage)
Sets the value ofReleaseProjectOptions.getWorkflowContainerImage()- Parameters:
workflowContainerImage- Container image to use for GitHub workflows.- Returns:
this
-
workflowRunsOn
@Stability(Experimental) public ReactProjectOptions.Builder workflowRunsOn(List<String> workflowRunsOn)
Sets the value ofReleaseProjectOptions.getWorkflowRunsOn()- Parameters:
workflowRunsOn- Github Runner selection labels.- Returns:
this
-
workflowRunsOnGroup
@Stability(Experimental) public ReactProjectOptions.Builder workflowRunsOnGroup(GroupRunnerOptions workflowRunsOnGroup)
Sets the value ofReleaseProjectOptions.getWorkflowRunsOnGroup()- Parameters:
workflowRunsOnGroup- Github Runner Group selection options.- Returns:
this
-
rewire
@Stability(Experimental) public ReactProjectOptions.Builder rewire(Map<String,? extends Object> rewire)
Sets the value ofReactRewireOptions.getRewire()- Parameters:
rewire- Rewire webpack configuration. Use this property to override webpack configuration properties provided by create-react-app, without needing to eject.This property will create a
config-overrides.jsfile in your root directory, which will contain the desired rewiring code.To override the configuration, you can provide simple key value pairs. Keys take the form of js code directives that traverse to the desired property. Values should be JSON serializable objects.
For example, the following config:
rewire: { "module.unknownContextCritical": false }Will translate to the following
config-overrides.jsfile:module.exports = function override(config, env) { config.module.unknownContextCritical = false; }- Returns:
this
-
build
@Stability(Experimental) public ReactProjectOptions build()
Builds the configured instance.- Specified by:
buildin interfacesoftware.amazon.jsii.Builder<ReactProjectOptions>- Returns:
- a new instance of
ReactProjectOptions - Throws:
NullPointerException- if any required attribute was not provided
-
-