All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.projen.web.ReactProject Maven / Gradle / Ivy

The newest version!
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 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 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 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() ); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy