org.projen.web.ReactProject Maven / Gradle / Ivy
Show all versions of projen Show documentation
package org.projen.web;
/**
* (experimental) React project without TypeScript.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.34.0 (build 9b72778)", date = "2021-09-05T18:03:12.987Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Jsii(module = org.projen.$Module.class, fqn = "projen.web.ReactProject")
public class ReactProject extends org.projen.NodeProject {
protected ReactProject(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected ReactProject(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
/**
* @param options This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public ReactProject(final @org.jetbrains.annotations.NotNull org.projen.web.ReactProjectOptions options) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(options, "options is required") });
}
/**
* (experimental) The directory in which source files reside.
*
* Default: "src"
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public @org.jetbrains.annotations.NotNull java.lang.String getSrcdir() {
return software.amazon.jsii.Kernel.get(this, "srcdir", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* (experimental) A fluent builder for {@link org.projen.web.ReactProject}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static Builder create() {
return new Builder();
}
private final org.projen.web.ReactProjectOptions.Builder options;
private Builder() {
this.options = new org.projen.web.ReactProjectOptions.Builder();
}
/**
* (experimental) This is the name of your project.
*
* Default: $BASEDIR
*
* @return {@code this}
* @param name This is the name of your project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder name(final java.lang.String name) {
this.options.name(name);
return this;
}
/**
* (experimental) Configure logging options such as verbosity.
*
* Default: {}
*
* @return {@code this}
* @param logging Configure logging options such as verbosity. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder logging(final org.projen.LoggerOptions logging) {
this.options.logging(logging);
return this;
}
/**
* (experimental) 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
* sub-projects.
*
* Default: "."
*
* @return {@code this}
* @param outdir The root directory of the project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder outdir(final java.lang.String outdir) {
this.options.outdir(outdir);
return this;
}
/**
* (experimental) The parent project, if this project is part of a bigger project.
*
* @return {@code this}
* @param parent The parent project, if this project is part of a bigger project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder parent(final org.projen.Project parent) {
this.options.parent(parent);
return this;
}
/**
* (experimental) Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.
*
* Default: false
*
* @return {@code this}
* @param projenrcJson Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJson(final java.lang.Boolean projenrcJson) {
this.options.projenrcJson(projenrcJson);
return this;
}
/**
* (experimental) Options for .projenrc.json.
*
* Default: - default options
*
* @return {@code this}
* @param projenrcJsonOptions Options for .projenrc.json. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJsonOptions(final org.projen.json.ProjenrcOptions projenrcJsonOptions) {
this.options.projenrcJsonOptions(projenrcJsonOptions);
return this;
}
/**
* (experimental) Enable and configure the 'auto approve' workflow.
*
* Default: - auto approve is disabled
*
* @return {@code this}
* @param autoApproveOptions Enable and configure the 'auto approve' workflow. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder autoApproveOptions(final org.projen.github.AutoApproveOptions autoApproveOptions) {
this.options.autoApproveOptions(autoApproveOptions);
return this;
}
/**
* (experimental) Configure options for automatic merging on GitHub.
*
* Has no effect if
* github.mergify
is set to false.
*
* Default: - see defaults in `AutoMergeOptions`
*
* @return {@code this}
* @param autoMergeOptions Configure options for automatic merging on GitHub. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder autoMergeOptions(final org.projen.github.AutoMergeOptions autoMergeOptions) {
this.options.autoMergeOptions(autoMergeOptions);
return this;
}
/**
* (experimental) Add a `clobber` task which resets the repo to origin.
*
* Default: true
*
* @return {@code this}
* @param clobber Add a `clobber` task which resets the repo to origin. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder clobber(final java.lang.Boolean clobber) {
this.options.clobber(clobber);
return this;
}
/**
* (experimental) Add a VSCode development environment (used for GitHub Codespaces).
*
* Default: false
*
* @return {@code this}
* @param devContainer Add a VSCode development environment (used for GitHub Codespaces). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder devContainer(final java.lang.Boolean devContainer) {
this.options.devContainer(devContainer);
return this;
}
/**
* (experimental) Enable GitHub integration.
*
* Enabled by default for root projects. Disabled for non-root projects.
*
* Default: true
*
* @return {@code this}
* @param github Enable GitHub integration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder github(final java.lang.Boolean github) {
this.options.github(github);
return this;
}
/**
* (experimental) Options for GitHub integration.
*
* Default: - see GitHubOptions
*
* @return {@code this}
* @param githubOptions Options for GitHub integration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder githubOptions(final org.projen.github.GitHubOptions githubOptions) {
this.options.githubOptions(githubOptions);
return this;
}
/**
* (experimental) Add a Gitpod development environment.
*
* Default: false
*
* @return {@code this}
* @param gitpod Add a Gitpod development environment. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder gitpod(final java.lang.Boolean gitpod) {
this.options.gitpod(gitpod);
return this;
}
/**
* (deprecated) Whether mergify should be enabled on this repository or not.
*
* Default: true
*
* @return {@code this}
* @deprecated use `githubOptions.mergify` instead
* @param mergify Whether mergify should be enabled on this repository or not. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder mergify(final java.lang.Boolean mergify) {
this.options.mergify(mergify);
return this;
}
/**
* (deprecated) Which type of project this is (library/app).
*
* Default: ProjectType.UNKNOWN
*
* @return {@code this}
* @deprecated no longer supported at the base project level
* @param projectType Which type of project this is (library/app). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder projectType(final org.projen.ProjectType projectType) {
this.options.projectType(projectType);
return this;
}
/**
* (experimental) The README setup.
*
* Default: - { filename: 'README.md', contents: '# replace this' }
*
* Example:
*
*
{@code
* // Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
* "{ filename: 'readme.md', contents: '# title' }";}
*
* @return {@code this}
* @param readme The README setup. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder readme(final org.projen.SampleReadmeProps readme) {
this.options.readme(readme);
return this;
}
/**
* (experimental) Auto-close of stale issues and pull request.
*
* See staleOptions
for options.
*
* Default: true
*
* @return {@code this}
* @param stale Auto-close of stale issues and pull request. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder stale(final java.lang.Boolean stale) {
this.options.stale(stale);
return this;
}
/**
* (experimental) Auto-close stale issues and pull requests.
*
* To disable set stale
to false
.
*
* Default: - see defaults in `StaleOptions`
*
* @return {@code this}
* @param staleOptions Auto-close stale issues and pull requests. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder staleOptions(final org.projen.github.StaleOptions staleOptions) {
this.options.staleOptions(staleOptions);
return this;
}
/**
* (experimental) Enable VSCode integration.
*
* Enabled by default for root projects. Disabled for non-root projects.
*
* Default: true
*
* @return {@code this}
* @param vscode Enable VSCode integration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder vscode(final java.lang.Boolean vscode) {
this.options.vscode(vscode);
return this;
}
/**
* (experimental) Allow the project to include `peerDependencies` and `bundledDependencies`.
*
* This is normally only allowed for libraries. For apps, there's no meaning
* for specifying these.
*
* Default: true
*
* @return {@code this}
* @param allowLibraryDependencies Allow the project to include `peerDependencies` and `bundledDependencies`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder allowLibraryDependencies(final java.lang.Boolean allowLibraryDependencies) {
this.options.allowLibraryDependencies(allowLibraryDependencies);
return this;
}
/**
* (experimental) Author's e-mail.
*
* @return {@code this}
* @param authorEmail Author's e-mail. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder authorEmail(final java.lang.String authorEmail) {
this.options.authorEmail(authorEmail);
return this;
}
/**
* (experimental) Author's name.
*
* @return {@code this}
* @param authorName Author's name. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder authorName(final java.lang.String authorName) {
this.options.authorName(authorName);
return this;
}
/**
* (experimental) Author's Organization.
*
* @return {@code this}
* @param authorOrganization Author's Organization. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder authorOrganization(final java.lang.Boolean authorOrganization) {
this.options.authorOrganization(authorOrganization);
return this;
}
/**
* (experimental) Author's URL / Website.
*
* @return {@code this}
* @param authorUrl Author's URL / Website. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder authorUrl(final java.lang.String authorUrl) {
this.options.authorUrl(authorUrl);
return this;
}
/**
* (experimental) Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
*
* Default: true
*
* @return {@code this}
* @param autoDetectBin Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder autoDetectBin(final java.lang.Boolean autoDetectBin) {
this.options.autoDetectBin(autoDetectBin);
return this;
}
/**
* (experimental) Binary programs vended with your module.
*
* You can use this option to add/customize how binaries are represented in
* your package.json
, but unless autoDetectBin
is false
, every
* executable file under bin
will automatically be added to this section.
*
* @return {@code this}
* @param bin Binary programs vended with your module. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder bin(final java.util.Map bin) {
this.options.bin(bin);
return this;
}
/**
* (experimental) List of dependencies to bundle into this module.
*
* These modules will be
* added both to the dependencies
section and peerDependencies
section of
* your package.json
.
*
* The recommendation is to only specify the module name here (e.g.
* express
). This will behave similar to yarn add
or npm install
in the
* sense that it will add the module as a dependency to your package.json
* file with the latest version (^
). You can specify semver requirements in
* the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
* this will be what you package.json
will eventually include.
*
* @return {@code this}
* @param bundledDeps List of dependencies to bundle into this module. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder bundledDeps(final java.util.List bundledDeps) {
this.options.bundledDeps(bundledDeps);
return this;
}
/**
* (experimental) Runtime dependencies of this module.
*
* The recommendation is to only specify the module name here (e.g.
* express
). This will behave similar to yarn add
or npm install
in the
* sense that it will add the module as a dependency to your package.json
* file with the latest version (^
). You can specify semver requirements in
* the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
* this will be what you package.json
will eventually include.
*
* Default: []
*
* Example:
*
*
{@code
* // Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
* asList("express", "lodash", "foo@^2");}
*
* @return {@code this}
* @param deps Runtime dependencies of this module. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder deps(final java.util.List deps) {
this.options.deps(deps);
return this;
}
/**
* (experimental) 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
*
* @return {@code this}
* @param description The description is just a string that helps people understand the purpose of the package. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder description(final java.lang.String description) {
this.options.description(description);
return this;
}
/**
* (experimental) 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 to yarn add
or npm install
in the
* sense that it will add the module as a dependency to your package.json
* file with the latest version (^
). You can specify semver requirements in
* the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
* this will be what you package.json
will eventually include.
*
* Default: []
*
* Example:
*
*
{@code
* // Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
* asList("typescript", "@types/express");}
*
* @return {@code this}
* @param devDeps Build dependencies for this module. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder devDeps(final java.util.List devDeps) {
this.options.devDeps(devDeps);
return this;
}
/**
* (experimental) Module entrypoint (`main` in `package.json`).
*
* Set to an empty string to not include main
in your package.json
*
* Default: "lib/index.js"
*
* @return {@code this}
* @param entrypoint Module entrypoint (`main` in `package.json`). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder entrypoint(final java.lang.String entrypoint) {
this.options.entrypoint(entrypoint);
return this;
}
/**
* (experimental) Package's Homepage / Website.
*
* @return {@code this}
* @param homepage Package's Homepage / Website. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder homepage(final java.lang.String homepage) {
this.options.homepage(homepage);
return this;
}
/**
* (experimental) Keywords to include in `package.json`.
*
* @return {@code this}
* @param keywords Keywords to include in `package.json`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder keywords(final java.util.List keywords) {
this.options.keywords(keywords);
return this;
}
/**
* (experimental) License's SPDX identifier.
*
* See https://github.com/projen/projen/tree/master/license-text for a list of supported licenses.
* Use the licensed
option if you want to no license to be specified.
*
* Default: "Apache-2.0"
*
* @return {@code this}
* @param license License's SPDX identifier. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder license(final java.lang.String license) {
this.options.license(license);
return this;
}
/**
* (experimental) Indicates if a license should be added.
*
* Default: true
*
* @return {@code this}
* @param licensed Indicates if a license should be added. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder licensed(final java.lang.Boolean licensed) {
this.options.licensed(licensed);
return this;
}
/**
* (experimental) Minimum node.js version to require via `engines` (inclusive).
*
* Default: - no max
*
* @return {@code this}
* @param maxNodeVersion Minimum node.js version to require via `engines` (inclusive). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder maxNodeVersion(final java.lang.String maxNodeVersion) {
this.options.maxNodeVersion(maxNodeVersion);
return this;
}
/**
* (experimental) Minimum Node.js version to require via package.json `engines` (inclusive).
*
* Default: - no "engines" specified
*
* @return {@code this}
* @param minNodeVersion Minimum Node.js version to require via package.json `engines` (inclusive). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder minNodeVersion(final java.lang.String minNodeVersion) {
this.options.minNodeVersion(minNodeVersion);
return this;
}
/**
* (experimental) Access level of the npm package.
*
* Default: - for scoped packages (e.g. `foo@bar`), the default is
* `NpmAccess.RESTRICTED`, for non-scoped packages, the default is
* `NpmAccess.PUBLIC`.
*
* @return {@code this}
* @param npmAccess Access level of the npm package. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder npmAccess(final org.projen.NpmAccess npmAccess) {
this.options.npmAccess(npmAccess);
return this;
}
/**
* (experimental) Tags can be used to provide an alias instead of version numbers.
*
* For example, a project might choose to have multiple streams of development
* and use a different tag for each stream, e.g., stable, beta, dev, canary.
*
* By default, the latest
tag is used by npm to identify the current version
* of a package, and npm install <pkg>
(without any @<version>
or @<tag>
* specifier) installs the latest tag. Typically, projects only use the
* latest
tag for stable release versions, and use other tags for unstable
* versions such as prereleases.
*
* The next
tag is used by some projects to identify the upcoming version.
*
* Default: "latest"
*
* @return {@code this}
* @param npmDistTag Tags can be used to provide an alias instead of version numbers. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder npmDistTag(final java.lang.String npmDistTag) {
this.options.npmDistTag(npmDistTag);
return this;
}
/**
* (deprecated) The host name of the npm registry to publish to.
*
* Cannot be set together with npmRegistryUrl
.
*
* @return {@code this}
* @deprecated use `npmRegistryUrl` instead
* @param npmRegistry The host name of the npm registry to publish to. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder npmRegistry(final java.lang.String npmRegistry) {
this.options.npmRegistry(npmRegistry);
return this;
}
/**
* (experimental) The base URL of the npm package registry.
*
* Must be a URL (e.g. start with "https://" or "http://")
*
* Default: "https://registry.npmjs.org"
*
* @return {@code this}
* @param npmRegistryUrl The base URL of the npm package registry. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder npmRegistryUrl(final java.lang.String npmRegistryUrl) {
this.options.npmRegistryUrl(npmRegistryUrl);
return this;
}
/**
* (experimental) GitHub secret which contains the NPM token to use when publishing packages.
*
* Default: "NPM_TOKEN"
*
* @return {@code this}
* @param npmTokenSecret GitHub secret which contains the NPM token to use when publishing packages. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder npmTokenSecret(final java.lang.String npmTokenSecret) {
this.options.npmTokenSecret(npmTokenSecret);
return this;
}
/**
* (experimental) The Node Package Manager used to execute scripts.
*
* Default: NodePackageManager.YARN
*
* @return {@code this}
* @param packageManager The Node Package Manager used to execute scripts. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder packageManager(final org.projen.NodePackageManager packageManager) {
this.options.packageManager(packageManager);
return this;
}
/**
* (experimental) The "name" in package.json.
*
* Default: - defaults to project name
*
* @return {@code this}
* @param packageName The "name" in package.json. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder packageName(final java.lang.String packageName) {
this.options.packageName(packageName);
return this;
}
/**
* (experimental) Options for `peerDeps`.
*
* @return {@code this}
* @param peerDependencyOptions Options for `peerDeps`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder peerDependencyOptions(final org.projen.PeerDependencyOptions peerDependencyOptions) {
this.options.peerDependencyOptions(peerDependencyOptions);
return this;
}
/**
* (experimental) 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 the node_modules
tree 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.pinnedDevDependency
is 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.
*
* Default: []
*
* @return {@code this}
* @param peerDeps Peer dependencies for this module. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder peerDeps(final java.util.List peerDeps) {
this.options.peerDeps(peerDeps);
return this;
}
/**
* (experimental) The shell command to use in order to run the projen CLI.
*
* Can be used to customize in special environments.
*
* Default: "npx projen"
*
* @return {@code this}
* @param projenCommand The shell command to use in order to run the projen CLI. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenCommand(final java.lang.String projenCommand) {
this.options.projenCommand(projenCommand);
return this;
}
/**
* (experimental) The repository is the location where the actual code for your package lives.
*
* See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
*
* @return {@code this}
* @param repository The repository is the location where the actual code for your package lives. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder repository(final java.lang.String repository) {
this.options.repository(repository);
return this;
}
/**
* (experimental) 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.
*
* @return {@code this}
* @param 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. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder repositoryDirectory(final java.lang.String repositoryDirectory) {
this.options.repositoryDirectory(repositoryDirectory);
return this;
}
/**
* (experimental) npm scripts to include.
*
* If a script has the same name as a standard script,
* the standard script will be overwritten.
*
* Default: {}
*
* @return {@code this}
* @param scripts npm scripts to include. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder scripts(final java.util.Map scripts) {
this.options.scripts(scripts);
return this;
}
/**
* (experimental) Package's Stability.
*
* @return {@code this}
* @param stability Package's Stability. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder stability(final java.lang.String stability) {
this.options.stability(stability);
return this;
}
/**
* (experimental) Checks that after build there are no modified files on git.
*
* Default: true
*
* @return {@code this}
* @param antitamper Checks that after build there are no modified files on git. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder antitamper(final java.lang.Boolean antitamper) {
this.options.antitamper(antitamper);
return this;
}
/**
* (experimental) A directory which will contain artifacts to be published to npm.
*
* Default: "dist"
*
* @return {@code this}
* @param artifactsDirectory A directory which will contain artifacts to be published to npm. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder artifactsDirectory(final java.lang.String artifactsDirectory) {
this.options.artifactsDirectory(artifactsDirectory);
return this;
}
/**
* (experimental) Create a github issue on every failed publishing task.
*
* Default: false
*
* @return {@code this}
* @param failureIssue Create a github issue on every failed publishing task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder failureIssue(final java.lang.Boolean failureIssue) {
this.options.failureIssue(failureIssue);
return this;
}
/**
* (experimental) The label to apply to issues indicating publish failures.
*
* Only applies if failureIssue
is true.
*
* Default: "failed-release"
*
* @return {@code this}
* @param failureIssueLabel The label to apply to issues indicating publish failures. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder failureIssueLabel(final java.lang.String failureIssueLabel) {
this.options.failureIssueLabel(failureIssueLabel);
return this;
}
/**
* (experimental) Version requirement of `jsii-release` which is used to publish modules to npm.
*
* Default: "latest"
*
* @return {@code this}
* @param jsiiReleaseVersion Version requirement of `jsii-release` which is used to publish modules to npm. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder jsiiReleaseVersion(final java.lang.String jsiiReleaseVersion) {
this.options.jsiiReleaseVersion(jsiiReleaseVersion);
return this;
}
/**
* (experimental) 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.
*
* Default: - Major version is not enforced.
*
* @return {@code this}
* @param majorVersion Major version to release from the default branch. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder majorVersion(final java.lang.Number majorVersion) {
this.options.majorVersion(majorVersion);
return this;
}
/**
* (experimental) Steps to execute after build as part of the release workflow.
*
* Default: []
*
* @return {@code this}
* @param postBuildSteps Steps to execute after build as part of the release workflow. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder postBuildSteps(final java.util.List extends org.projen.github.workflows.JobStep> postBuildSteps) {
this.options.postBuildSteps(postBuildSteps);
return this;
}
/**
* (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
*
* Default: - normal semantic versions
*
* @return {@code this}
* @param prerelease Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder prerelease(final java.lang.String prerelease) {
this.options.prerelease(prerelease);
return this;
}
/**
* (experimental) 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, the majorVersion
field must also
* be provided for the default branch.
*
* Default: - no additional branches are used for release. you can use
* `addBranch()` to add additional branches.
*
* @return {@code this}
* @param releaseBranches Defines additional release branches. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseBranches(final java.util.Map releaseBranches) {
this.options.releaseBranches(releaseBranches);
return this;
}
/**
* (experimental) Automatically release new versions every commit to one of branches in `releaseBranches`.
*
* Default: true
*
* @return {@code this}
* @param releaseEveryCommit Automatically release new versions every commit to one of branches in `releaseBranches`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseEveryCommit(final java.lang.Boolean releaseEveryCommit) {
this.options.releaseEveryCommit(releaseEveryCommit);
return this;
}
/**
* (experimental) CRON schedule to trigger new releases.
*
* Default: - no scheduled releases
*
* @return {@code this}
* @param releaseSchedule CRON schedule to trigger new releases. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseSchedule(final java.lang.String releaseSchedule) {
this.options.releaseSchedule(releaseSchedule);
return this;
}
/**
* (experimental) The name of the default release workflow.
*
* Default: "Release"
*
* @return {@code this}
* @param releaseWorkflowName The name of the default release workflow. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseWorkflowName(final java.lang.String releaseWorkflowName) {
this.options.releaseWorkflowName(releaseWorkflowName);
return this;
}
/**
* (experimental) A set of workflow steps to execute in order to setup the workflow container.
*
* @return {@code this}
* @param releaseWorkflowSetupSteps A set of workflow steps to execute in order to setup the workflow container. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseWorkflowSetupSteps(final java.util.List extends org.projen.github.workflows.JobStep> releaseWorkflowSetupSteps) {
this.options.releaseWorkflowSetupSteps(releaseWorkflowSetupSteps);
return this;
}
/**
* (experimental) Container image to use for GitHub workflows.
*
* Default: - default image
*
* @return {@code this}
* @param workflowContainerImage Container image to use for GitHub workflows. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder workflowContainerImage(final java.lang.String workflowContainerImage) {
this.options.workflowContainerImage(workflowContainerImage);
return this;
}
/**
* (experimental) The name of the main release branch.
*
* Default: "main"
*
* @return {@code this}
* @param defaultReleaseBranch The name of the main release branch. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder defaultReleaseBranch(final java.lang.String defaultReleaseBranch) {
this.options.defaultReleaseBranch(defaultReleaseBranch);
return this;
}
/**
* (experimental) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued).
*
* Throw if set to true but autoApproveOptions
are not defined.
*
* Default: false
*
* @return {@code this}
* @param autoApproveProjenUpgrades Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder autoApproveProjenUpgrades(final java.lang.Boolean autoApproveProjenUpgrades) {
this.options.autoApproveProjenUpgrades(autoApproveProjenUpgrades);
return this;
}
/**
* (experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
*
* Throw if set to true but autoApproveOptions
are not defined.
*
* Default: - true
*
* @return {@code this}
* @param autoApproveUpgrades Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder autoApproveUpgrades(final java.lang.Boolean autoApproveUpgrades) {
this.options.autoApproveUpgrades(autoApproveUpgrades);
return this;
}
/**
* (experimental) Define a GitHub workflow for building PRs.
*
* Default: - true if not a subproject
*
* @return {@code this}
* @param buildWorkflow Define a GitHub workflow for building PRs. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder buildWorkflow(final java.lang.Boolean buildWorkflow) {
this.options.buildWorkflow(buildWorkflow);
return this;
}
/**
* (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.
*
* Default: false
*
* @return {@code this}
* @param codeCov Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder codeCov(final java.lang.Boolean codeCov) {
this.options.codeCov(codeCov);
return this;
}
/**
* (experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
*
* Default: - if this option is not specified, only public repositories are supported
*
* @return {@code this}
* @param codeCovTokenSecret Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder codeCovTokenSecret(final java.lang.String codeCovTokenSecret) {
this.options.codeCovTokenSecret(codeCovTokenSecret);
return this;
}
/**
* (experimental) License copyright owner.
*
* Default: - defaults to the value of authorName or "" if `authorName` is undefined.
*
* @return {@code this}
* @param copyrightOwner License copyright owner. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder copyrightOwner(final java.lang.String copyrightOwner) {
this.options.copyrightOwner(copyrightOwner);
return this;
}
/**
* (experimental) The copyright years to put in the LICENSE file.
*
* Default: - current year
*
* @return {@code this}
* @param copyrightPeriod The copyright years to put in the LICENSE file. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder copyrightPeriod(final java.lang.String copyrightPeriod) {
this.options.copyrightPeriod(copyrightPeriod);
return this;
}
/**
* (deprecated) Include dependabot configuration.
*
* Default: false
*
* @return {@code this}
* @deprecated - use `depsUpgrade: DependenciesUpgradeMechanism.dependabot()`
* @param dependabot Include dependabot configuration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder dependabot(final java.lang.Boolean dependabot) {
this.options.dependabot(dependabot);
return this;
}
/**
* (deprecated) Options for dependabot.
*
* Default: - default options
*
* @return {@code this}
* @deprecated - use `depsUpgrade: DependenciesUpgradeMechanism.dependabot()`
* @param dependabotOptions Options for dependabot. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder dependabotOptions(final org.projen.github.DependabotOptions dependabotOptions) {
this.options.dependabotOptions(dependabotOptions);
return this;
}
/**
* (experimental) How to handle dependency upgrades.
*
* Default: - DependenciesUpgradeMechanism.dependabot if dependabot is true, otherwise a DependenciesUpgradeMechanism.githubWorkflow configured from other passed-in NodeProjectOptions
*
* @return {@code this}
* @param depsUpgrade How to handle dependency upgrades. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder depsUpgrade(final org.projen.DependenciesUpgradeMechanism depsUpgrade) {
this.options.depsUpgrade(depsUpgrade);
return this;
}
/**
* (experimental) Additional entries to .gitignore.
*
* @return {@code this}
* @param gitignore Additional entries to .gitignore. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder gitignore(final java.util.List gitignore) {
this.options.gitignore(gitignore);
return this;
}
/**
* (experimental) Setup jest unit tests.
*
* Default: true
*
* @return {@code this}
* @param jest Setup jest unit tests. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder jest(final java.lang.Boolean jest) {
this.options.jest(jest);
return this;
}
/**
* (experimental) Jest options.
*
* Default: - default options
*
* @return {@code this}
* @param jestOptions Jest options. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder jestOptions(final org.projen.JestOptions jestOptions) {
this.options.jestOptions(jestOptions);
return this;
}
/**
* (experimental) Options for mergify.
*
* Default: - default options
*
* @return {@code this}
* @param mergifyOptions Options for mergify. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder mergifyOptions(final org.projen.github.MergifyOptions mergifyOptions) {
this.options.mergifyOptions(mergifyOptions);
return this;
}
/**
* (experimental) 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.
*
* Default: true
*
* @return {@code this}
* @param mutableBuild Automatically update files modified during builds to pull-request branches. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder mutableBuild(final java.lang.Boolean mutableBuild) {
this.options.mutableBuild(mutableBuild);
return this;
}
/**
* (deprecated) Additional entries to .npmignore.
*
* @return {@code this}
* @deprecated - use `project.addPackageIgnore`
* @param npmignore Additional entries to .npmignore. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder npmignore(final java.util.List npmignore) {
this.options.npmignore(npmignore);
return this;
}
/**
* (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
*
* Default: true
*
* @return {@code this}
* @param npmignoreEnabled Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder npmignoreEnabled(final java.lang.Boolean npmignoreEnabled) {
this.options.npmignoreEnabled(npmignoreEnabled);
return this;
}
/**
* (experimental) Indicates of "projen" should be installed as a devDependency.
*
* Default: true
*
* @return {@code this}
* @param projenDevDependency Indicates of "projen" should be installed as a devDependency. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenDevDependency(final java.lang.Boolean projenDevDependency) {
this.options.projenDevDependency(projenDevDependency);
return this;
}
/**
* (experimental) Execute `projen` as the first step of the `build` task to synthesize project files.
*
* This applies both to local builds and to CI builds.
*
* Disabling this feature is NOT RECOMMENDED and means that manual changes to
* synthesized project files will be persisted.
*
* Default: true
*
* @return {@code this}
* @param projenDuringBuild Execute `projen` as the first step of the `build` task to synthesize project files. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenDuringBuild(final java.lang.Boolean projenDuringBuild) {
this.options.projenDuringBuild(projenDuringBuild);
return this;
}
/**
* (experimental) Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.
*
* Default: - true if projenrcJson is false
*
* @return {@code this}
* @param projenrcJs Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJs(final java.lang.Boolean projenrcJs) {
this.options.projenrcJs(projenrcJs);
return this;
}
/**
* (experimental) Options for .projenrc.js.
*
* Default: - default options
*
* @return {@code this}
* @param projenrcJsOptions Options for .projenrc.js. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenrcJsOptions(final org.projen.javascript.ProjenrcOptions projenrcJsOptions) {
this.options.projenrcJsOptions(projenrcJsOptions);
return this;
}
/**
* (deprecated) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued).
*
* Throw if set to true but autoApproveOptions
are not defined.
*
* Default: false
*
* @return {@code this}
* @deprecated use `autoApproveProjenUpgrades`.
* @param projenUpgradeAutoMerge Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder projenUpgradeAutoMerge(final java.lang.Boolean projenUpgradeAutoMerge) {
this.options.projenUpgradeAutoMerge(projenUpgradeAutoMerge);
return this;
}
/**
* (experimental) Customize the projenUpgrade schedule in cron expression.
*
* Default: [ "0 6 * * *" ]
*
* @return {@code this}
* @param projenUpgradeSchedule Customize the projenUpgrade schedule in cron expression. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenUpgradeSchedule(final java.util.List projenUpgradeSchedule) {
this.options.projenUpgradeSchedule(projenUpgradeSchedule);
return this;
}
/**
* (experimental) Periodically submits a pull request for projen upgrades (executes `yarn projen:upgrade`).
*
* This setting is a GitHub secret name which contains a GitHub Access Token
* with repo
and workflow
permissions.
*
* This token is used to submit the upgrade pull request, which will likely
* include workflow updates.
*
* To create a personal access token see https://github.com/settings/tokens
*
* Default: - no automatic projen upgrade pull requests
*
* @return {@code this}
* @param projenUpgradeSecret Periodically submits a pull request for projen upgrades (executes `yarn projen:upgrade`). This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenUpgradeSecret(final java.lang.String projenUpgradeSecret) {
this.options.projenUpgradeSecret(projenUpgradeSecret);
return this;
}
/**
* (experimental) Version of projen to install.
*
* Default: - Defaults to the latest version.
*
* @return {@code this}
* @param projenVersion Version of projen to install. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder projenVersion(final java.lang.String projenVersion) {
this.options.projenVersion(projenVersion);
return this;
}
/**
* (experimental) Include a GitHub pull request template.
*
* Default: true
*
* @return {@code this}
* @param pullRequestTemplate Include a GitHub pull request template. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pullRequestTemplate(final java.lang.Boolean pullRequestTemplate) {
this.options.pullRequestTemplate(pullRequestTemplate);
return this;
}
/**
* (experimental) The contents of the pull request template.
*
* Default: - default content
*
* @return {@code this}
* @param pullRequestTemplateContents The contents of the pull request template. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pullRequestTemplateContents(final java.lang.String pullRequestTemplateContents) {
this.options.pullRequestTemplateContents(pullRequestTemplateContents);
return this;
}
/**
* (experimental) Add release management to this project.
*
* Default: - true (false for subprojects)
*
* @return {@code this}
* @param release Add release management to this project. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder release(final java.lang.Boolean release) {
this.options.release(release);
return this;
}
/**
* (experimental) Automatically release to npm when new versions are introduced.
*
* Default: false
*
* @return {@code this}
* @param releaseToNpm Automatically release to npm when new versions are introduced. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder releaseToNpm(final java.lang.Boolean releaseToNpm) {
this.options.releaseToNpm(releaseToNpm);
return this;
}
/**
* (deprecated) DEPRECATED: renamed to `release`.
*
* Default: - true if not a subproject
*
* @return {@code this}
* @deprecated see `release`.
* @param releaseWorkflow DEPRECATED: renamed to `release`. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder releaseWorkflow(final java.lang.Boolean releaseWorkflow) {
this.options.releaseWorkflow(releaseWorkflow);
return this;
}
/**
* (experimental) Workflow steps to use in order to bootstrap this repo.
*
* Default: "yarn install --frozen-lockfile && yarn projen"
*
* @return {@code this}
* @param workflowBootstrapSteps Workflow steps to use in order to bootstrap this repo. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder workflowBootstrapSteps(final java.util.List extends java.lang.Object> workflowBootstrapSteps) {
this.options.workflowBootstrapSteps(workflowBootstrapSteps);
return this;
}
/**
* (experimental) The node version to use in GitHub workflows.
*
* Default: - same as `minNodeVersion`
*
* @return {@code this}
* @param workflowNodeVersion The node version to use in GitHub workflows. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder workflowNodeVersion(final java.lang.String workflowNodeVersion) {
this.options.workflowNodeVersion(workflowNodeVersion);
return this;
}
/**
* (experimental) 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.js
file 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.js
file:
*
*
* module.exports = function override(config, env) {
* config.module.unknownContextCritical = false;
* }
*
*
* Default: - No rewired config.
*
* @return {@code this}
* @see https://github.com/timarney/react-app-rewired
* @param rewire Rewire webpack configuration. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder rewire(final java.util.Map rewire) {
this.options.rewire(rewire);
return this;
}
/**
* (experimental) Generate one-time sample in `src/` and `public/` if there are no files there.
*
* Default: true
*
* @return {@code this}
* @param sampleCode Generate one-time sample in `src/` and `public/` if there are no files there. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder sampleCode(final java.lang.Boolean sampleCode) {
this.options.sampleCode(sampleCode);
return this;
}
/**
* (experimental) Source directory.
*
* Default: "src"
*
* @return {@code this}
* @param srcdir Source directory. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder srcdir(final java.lang.String srcdir) {
this.options.srcdir(srcdir);
return this;
}
/**
* @returns a newly built instance of {@link org.projen.web.ReactProject}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public org.projen.web.ReactProject build() {
return new org.projen.web.ReactProject(
this.options.build()
);
}
}
}