Class NxMonorepoProjectOptions.Builder

    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • disableTsconfig

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder disableTsconfig​(Boolean disableTsconfig)
        Sets the value of TypeScriptProjectOptions.getDisableTsconfig()
        Parameters:
        disableTsconfig - Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
        Returns:
        this
      • docgen

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder docgen​(Boolean docgen)
        Sets the value of TypeScriptProjectOptions.getDocgen()
        Parameters:
        docgen - Docgen by Typedoc.
        Returns:
        this
      • docsDirectory

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder docsDirectory​(String docsDirectory)
        Sets the value of TypeScriptProjectOptions.getDocsDirectory()
        Parameters:
        docsDirectory - Docs directory.
        Returns:
        this
      • entrypointTypes

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder entrypointTypes​(String entrypointTypes)
        Sets the value of TypeScriptProjectOptions.getEntrypointTypes()
        Parameters:
        entrypointTypes - The .d.ts file that includes the type declarations for this module.
        Returns:
        this
      • eslint

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder eslint​(Boolean eslint)
        Sets the value of TypeScriptProjectOptions.getEslint()
        Parameters:
        eslint - Setup eslint.
        Returns:
        this
      • eslintOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder eslintOptions​(io.github.cdklabs.projen.javascript.EslintOptions eslintOptions)
        Sets the value of TypeScriptProjectOptions.getEslintOptions()
        Parameters:
        eslintOptions - Eslint options.
        Returns:
        this
      • libdir

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder libdir​(String libdir)
        Sets the value of TypeScriptProjectOptions.getLibdir()
        Parameters:
        libdir - Typescript artifacts output directory.
        Returns:
        this
      • projenrcTs

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcTs​(Boolean projenrcTs)
        Sets the value of TypeScriptProjectOptions.getProjenrcTs()
        Parameters:
        projenrcTs - Use TypeScript for your projenrc file (`.projenrc.ts`).
        Returns:
        this
      • projenrcTsOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcTsOptions​(io.github.cdklabs.projen.typescript.ProjenrcOptions projenrcTsOptions)
        Sets the value of TypeScriptProjectOptions.getProjenrcTsOptions()
        Parameters:
        projenrcTsOptions - Options for .projenrc.ts.
        Returns:
        this
      • sampleCode

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder sampleCode​(Boolean sampleCode)
        Sets the value of TypeScriptProjectOptions.getSampleCode()
        Parameters:
        sampleCode - Generate one-time sample in `src/` and `test/` if there are no files there.
        Returns:
        this
      • srcdir

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder srcdir​(String srcdir)
        Sets the value of TypeScriptProjectOptions.getSrcdir()
        Parameters:
        srcdir - Typescript sources directory.
        Returns:
        this
      • testdir

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder testdir​(String testdir)
        Sets the value of TypeScriptProjectOptions.getTestdir()
        Parameters:
        testdir - Jest tests directory. Tests files should be named `xxx.test.ts`. If this directory is under srcdir (e.g. src/test, src/__tests__), then tests are going to be compiled into lib/ and executed as javascript. If the test directory is outside of src, then we configure jest to compile the code in-memory.
        Returns:
        this
      • tsconfig

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder tsconfig​(io.github.cdklabs.projen.javascript.TypescriptConfigOptions tsconfig)
        Sets the value of TypeScriptProjectOptions.getTsconfig()
        Parameters:
        tsconfig - Custom TSConfig.
        Returns:
        this
      • tsconfigDev

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder tsconfigDev​(io.github.cdklabs.projen.javascript.TypescriptConfigOptions tsconfigDev)
        Sets the value of TypeScriptProjectOptions.getTsconfigDev()
        Parameters:
        tsconfigDev - Custom tsconfig options for the development tsconfig.json file (used for testing).
        Returns:
        this
      • tsconfigDevFile

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder tsconfigDevFile​(String tsconfigDevFile)
        Sets the value of TypeScriptProjectOptions.getTsconfigDevFile()
        Parameters:
        tsconfigDevFile - The name of the development tsconfig.json file.
        Returns:
        this
      • typescriptVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder typescriptVersion​(String typescriptVersion)
        Sets the value of TypeScriptProjectOptions.getTypescriptVersion()
        Parameters:
        typescriptVersion - TypeScript version to use. NOTE: Typescript is not semantically versioned and should remain on the same minor, so we recommend using a ~ dependency (e.g. ~1.2.3).
        Returns:
        this
      • defaultReleaseBranch

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder defaultReleaseBranch​(String defaultReleaseBranch)
        Sets the value of NodeProjectOptions.getDefaultReleaseBranch()
        Parameters:
        defaultReleaseBranch - The name of the main release branch. This parameter is required.
        Returns:
        this
      • artifactsDirectory

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder artifactsDirectory​(String artifactsDirectory)
        Sets the value of NodeProjectOptions.getArtifactsDirectory()
        Parameters:
        artifactsDirectory - A directory which will contain build artifacts.
        Returns:
        this
      • autoApproveUpgrades

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder autoApproveUpgrades​(Boolean autoApproveUpgrades)
        Sets the value of NodeProjectOptions.getAutoApproveUpgrades()
        Parameters:
        autoApproveUpgrades - Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). Throw if set to true but autoApproveOptions are not defined.
        Returns:
        this
      • buildWorkflow

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder buildWorkflow​(Boolean buildWorkflow)
        Sets the value of NodeProjectOptions.getBuildWorkflow()
        Parameters:
        buildWorkflow - Define a GitHub workflow for building PRs.
        Returns:
        this
      • buildWorkflowTriggers

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder buildWorkflowTriggers​(io.github.cdklabs.projen.github.workflows.Triggers buildWorkflowTriggers)
        Sets the value of NodeProjectOptions.getBuildWorkflowTriggers()
        Parameters:
        buildWorkflowTriggers - Build workflow triggers.
        Returns:
        this
      • bundlerOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder bundlerOptions​(io.github.cdklabs.projen.javascript.BundlerOptions bundlerOptions)
        Sets the value of NodeProjectOptions.getBundlerOptions()
        Parameters:
        bundlerOptions - Options for `Bundler`.
        Returns:
        this
      • codeCov

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder codeCov​(Boolean codeCov)
        Sets the value of NodeProjectOptions.getCodeCov()
        Parameters:
        codeCov - Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with @codeCovTokenSecret.
        Returns:
        this
      • codeCovTokenSecret

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder codeCovTokenSecret​(String codeCovTokenSecret)
        Sets the value of NodeProjectOptions.getCodeCovTokenSecret()
        Parameters:
        codeCovTokenSecret - Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
        Returns:
        this
      • copyrightOwner

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder copyrightOwner​(String copyrightOwner)
        Sets the value of NodeProjectOptions.getCopyrightOwner()
        Parameters:
        copyrightOwner - License copyright owner.
        Returns:
        this
      • copyrightPeriod

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder copyrightPeriod​(String copyrightPeriod)
        Sets the value of NodeProjectOptions.getCopyrightPeriod()
        Parameters:
        copyrightPeriod - The copyright years to put in the LICENSE file.
        Returns:
        this
      • dependabot

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder dependabot​(Boolean dependabot)
        Sets the value of NodeProjectOptions.getDependabot()
        Parameters:
        dependabot - Use dependabot to handle dependency upgrades. Cannot be used in conjunction with depsUpgrade.
        Returns:
        this
      • dependabotOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder dependabotOptions​(io.github.cdklabs.projen.github.DependabotOptions dependabotOptions)
        Sets the value of NodeProjectOptions.getDependabotOptions()
        Parameters:
        dependabotOptions - Options for dependabot.
        Returns:
        this
      • depsUpgrade

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder depsUpgrade​(Boolean depsUpgrade)
        Sets the value of NodeProjectOptions.getDepsUpgrade()
        Parameters:
        depsUpgrade - Use github workflows to handle dependency upgrades. Cannot be used in conjunction with dependabot.
        Returns:
        this
      • depsUpgradeOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder depsUpgradeOptions​(io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions depsUpgradeOptions)
        Sets the value of NodeProjectOptions.getDepsUpgradeOptions()
        Parameters:
        depsUpgradeOptions - Options for `UpgradeDependencies`.
        Returns:
        this
      • gitignore

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder gitignore​(List<String> gitignore)
        Sets the value of NodeProjectOptions.getGitignore()
        Parameters:
        gitignore - Additional entries to .gitignore.
        Returns:
        this
      • jest

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder jest​(Boolean jest)
        Sets the value of NodeProjectOptions.getJest()
        Parameters:
        jest - Setup jest unit tests.
        Returns:
        this
      • jestOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder jestOptions​(io.github.cdklabs.projen.javascript.JestOptions jestOptions)
        Sets the value of NodeProjectOptions.getJestOptions()
        Parameters:
        jestOptions - Jest options.
        Returns:
        this
      • mutableBuild

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder mutableBuild​(Boolean mutableBuild)
        Sets the value of NodeProjectOptions.getMutableBuild()
        Parameters:
        mutableBuild - Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged.

        Implies that PR builds do not have anti-tamper checks.

        Returns:
        this
      • npmignore

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder npmignore​(List<String> npmignore)
        Deprecated.
        - use `project.addPackageIgnore`
        Sets the value of NodeProjectOptions.getNpmignore()
        Parameters:
        npmignore - Additional entries to .npmignore.
        Returns:
        this
      • npmignoreEnabled

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder npmignoreEnabled​(Boolean npmignoreEnabled)
        Sets the value of NodeProjectOptions.getNpmignoreEnabled()
        Parameters:
        npmignoreEnabled - Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
        Returns:
        this
      • packageValue

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder packageValue​(Boolean packageValue)
        Sets the value of NodeProjectOptions.getPackageValue()
        Parameters:
        packageValue - Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).
        Returns:
        this
      • prettier

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder prettier​(Boolean prettier)
        Sets the value of NodeProjectOptions.getPrettier()
        Parameters:
        prettier - Setup prettier.
        Returns:
        this
      • prettierOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder prettierOptions​(io.github.cdklabs.projen.javascript.PrettierOptions prettierOptions)
        Sets the value of NodeProjectOptions.getPrettierOptions()
        Parameters:
        prettierOptions - Prettier options.
        Returns:
        this
      • projenDevDependency

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenDevDependency​(Boolean projenDevDependency)
        Sets the value of NodeProjectOptions.getProjenDevDependency()
        Parameters:
        projenDevDependency - Indicates of "projen" should be installed as a devDependency.
        Returns:
        this
      • projenrcJs

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcJs​(Boolean projenrcJs)
        Sets the value of NodeProjectOptions.getProjenrcJs()
        Parameters:
        projenrcJs - Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.
        Returns:
        this
      • projenrcJsOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcJsOptions​(io.github.cdklabs.projen.javascript.ProjenrcOptions projenrcJsOptions)
        Sets the value of NodeProjectOptions.getProjenrcJsOptions()
        Parameters:
        projenrcJsOptions - Options for .projenrc.js.
        Returns:
        this
      • projenVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenVersion​(String projenVersion)
        Sets the value of NodeProjectOptions.getProjenVersion()
        Parameters:
        projenVersion - Version of projen to install.
        Returns:
        this
      • pullRequestTemplate

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder pullRequestTemplate​(Boolean pullRequestTemplate)
        Sets the value of NodeProjectOptions.getPullRequestTemplate()
        Parameters:
        pullRequestTemplate - Include a GitHub pull request template.
        Returns:
        this
      • pullRequestTemplateContents

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder pullRequestTemplateContents​(List<String> pullRequestTemplateContents)
        Sets the value of NodeProjectOptions.getPullRequestTemplateContents()
        Parameters:
        pullRequestTemplateContents - The contents of the pull request template.
        Returns:
        this
      • release

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder release​(Boolean release)
        Sets the value of NodeProjectOptions.getRelease()
        Parameters:
        release - Add release management to this project.
        Returns:
        this
      • releaseToNpm

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseToNpm​(Boolean releaseToNpm)
        Sets the value of NodeProjectOptions.getReleaseToNpm()
        Parameters:
        releaseToNpm - Automatically release to npm when new versions are introduced.
        Returns:
        this
      • releaseWorkflow

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder releaseWorkflow​(Boolean releaseWorkflow)
        Deprecated.
        see `release`.
        Sets the value of NodeProjectOptions.getReleaseWorkflow()
        Parameters:
        releaseWorkflow - DEPRECATED: renamed to `release`.
        Returns:
        this
      • workflowBootstrapSteps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder workflowBootstrapSteps​(List<? extends io.github.cdklabs.projen.github.workflows.JobStep> workflowBootstrapSteps)
        Sets the value of NodeProjectOptions.getWorkflowBootstrapSteps()
        Parameters:
        workflowBootstrapSteps - Workflow steps to use in order to bootstrap this repo.
        Returns:
        this
      • workflowGitIdentity

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder workflowGitIdentity​(io.github.cdklabs.projen.github.GitIdentity workflowGitIdentity)
        Sets the value of NodeProjectOptions.getWorkflowGitIdentity()
        Parameters:
        workflowGitIdentity - The git identity to use in workflows.
        Returns:
        this
      • workflowNodeVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder workflowNodeVersion​(String workflowNodeVersion)
        Sets the value of NodeProjectOptions.getWorkflowNodeVersion()
        Parameters:
        workflowNodeVersion - The node version to use in GitHub workflows.
        Returns:
        this
      • autoApproveOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder autoApproveOptions​(io.github.cdklabs.projen.github.AutoApproveOptions autoApproveOptions)
        Sets the value of GitHubProjectOptions.getAutoApproveOptions()
        Parameters:
        autoApproveOptions - Enable and configure the 'auto approve' workflow.
        Returns:
        this
      • autoMerge

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder autoMerge​(Boolean autoMerge)
        Sets the value of GitHubProjectOptions.getAutoMerge()
        Parameters:
        autoMerge - Enable automatic merging on GitHub. Has no effect if github.mergify is set to false.
        Returns:
        this
      • autoMergeOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder autoMergeOptions​(io.github.cdklabs.projen.github.AutoMergeOptions autoMergeOptions)
        Sets the value of GitHubProjectOptions.getAutoMergeOptions()
        Parameters:
        autoMergeOptions - Configure options for automatic merging on GitHub. Has no effect if github.mergify or autoMerge is set to false.
        Returns:
        this
      • clobber

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder clobber​(Boolean clobber)
        Sets the value of GitHubProjectOptions.getClobber()
        Parameters:
        clobber - Add a `clobber` task which resets the repo to origin.
        Returns:
        this
      • devContainer

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder devContainer​(Boolean devContainer)
        Sets the value of GitHubProjectOptions.getDevContainer()
        Parameters:
        devContainer - Add a VSCode development environment (used for GitHub Codespaces).
        Returns:
        this
      • github

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder github​(Boolean github)
        Sets the value of GitHubProjectOptions.getGithub()
        Parameters:
        github - Enable GitHub integration. Enabled by default for root projects. Disabled for non-root projects.
        Returns:
        this
      • githubOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder githubOptions​(io.github.cdklabs.projen.github.GitHubOptions githubOptions)
        Sets the value of GitHubProjectOptions.getGithubOptions()
        Parameters:
        githubOptions - Options for GitHub integration.
        Returns:
        this
      • gitpod

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder gitpod​(Boolean gitpod)
        Sets the value of GitHubProjectOptions.getGitpod()
        Parameters:
        gitpod - Add a Gitpod development environment.
        Returns:
        this
      • mergify

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder mergify​(Boolean mergify)
        Deprecated.
        use `githubOptions.mergify` instead
        Sets the value of GitHubProjectOptions.getMergify()
        Parameters:
        mergify - Whether mergify should be enabled on this repository or not.
        Returns:
        this
      • mergifyOptions

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder mergifyOptions​(io.github.cdklabs.projen.github.MergifyOptions mergifyOptions)
        Deprecated.
        use `githubOptions.mergifyOptions` instead
        Sets the value of GitHubProjectOptions.getMergifyOptions()
        Parameters:
        mergifyOptions - Options for mergify.
        Returns:
        this
      • projectType

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder projectType​(io.github.cdklabs.projen.ProjectType projectType)
        Deprecated.
        no longer supported at the base project level
        Sets the value of GitHubProjectOptions.getProjectType()
        Parameters:
        projectType - Which type of project this is (library/app).
        Returns:
        this
      • projenCredentials

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenCredentials​(io.github.cdklabs.projen.github.GithubCredentials projenCredentials)
        Sets the value of GitHubProjectOptions.getProjenCredentials()
        Parameters:
        projenCredentials - Choose a method of providing GitHub API access for projen workflows.
        Returns:
        this
      • projenTokenSecret

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder projenTokenSecret​(String projenTokenSecret)
        Deprecated.
        use `projenCredentials`
        Sets the value of GitHubProjectOptions.getProjenTokenSecret()
        Parameters:
        projenTokenSecret - The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This token needs to have the repo, workflows and packages scope.
        Returns:
        this
      • readme

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder readme​(io.github.cdklabs.projen.SampleReadmeProps readme)
        Sets the value of GitHubProjectOptions.getReadme()
        Parameters:
        readme - The README setup.
        Returns:
        this
      • stale

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder stale​(Boolean stale)
        Sets the value of GitHubProjectOptions.getStale()
        Parameters:
        stale - Auto-close of stale issues and pull request. See staleOptions for options.
        Returns:
        this
      • staleOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder staleOptions​(io.github.cdklabs.projen.github.StaleOptions staleOptions)
        Sets the value of GitHubProjectOptions.getStaleOptions()
        Parameters:
        staleOptions - Auto-close stale issues and pull requests. To disable set stale to false.
        Returns:
        this
      • vscode

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder vscode​(Boolean vscode)
        Sets the value of GitHubProjectOptions.getVscode()
        Parameters:
        vscode - Enable VSCode integration. Enabled by default for root projects. Disabled for non-root projects.
        Returns:
        this
      • name

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder name​(String name)
        Sets the value of ProjectOptions.getName()
        Parameters:
        name - This is the name of your project. This parameter is required.
        Returns:
        this
      • commitGenerated

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder commitGenerated​(Boolean commitGenerated)
        Sets the value of ProjectOptions.getCommitGenerated()
        Parameters:
        commitGenerated - Whether to commit the managed files by default.
        Returns:
        this
      • logging

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder logging​(io.github.cdklabs.projen.LoggerOptions logging)
        Sets the value of ProjectOptions.getLogging()
        Parameters:
        logging - Configure logging options such as verbosity.
        Returns:
        this
      • outdir

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder outdir​(String outdir)
        Sets the value of ProjectOptions.getOutdir()
        Parameters:
        outdir - The root directory of the project. Relative to this directory, all files are synthesized.

        If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other sub-projects.

        Returns:
        this
      • parent

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder parent​(io.github.cdklabs.projen.Project parent)
        Sets the value of ProjectOptions.getParent()
        Parameters:
        parent - The parent project, if this project is part of a bigger project.
        Returns:
        this
      • projenCommand

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenCommand​(String projenCommand)
        Sets the value of ProjectOptions.getProjenCommand()
        Parameters:
        projenCommand - The shell command to use in order to run the projen CLI. Can be used to customize in special environments.
        Returns:
        this
      • projenrcJson

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcJson​(Boolean projenrcJson)
        Sets the value of ProjectOptions.getProjenrcJson()
        Parameters:
        projenrcJson - Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.
        Returns:
        this
      • projenrcJsonOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder projenrcJsonOptions​(io.github.cdklabs.projen.ProjenrcOptions projenrcJsonOptions)
        Sets the value of ProjectOptions.getProjenrcJsonOptions()
        Parameters:
        projenrcJsonOptions - Options for .projenrc.json.
        Returns:
        this
      • renovatebot

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder renovatebot​(Boolean renovatebot)
        Sets the value of ProjectOptions.getRenovatebot()
        Parameters:
        renovatebot - Use renovatebot to handle dependency upgrades.
        Returns:
        this
      • renovatebotOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder renovatebotOptions​(io.github.cdklabs.projen.RenovatebotOptions renovatebotOptions)
        Sets the value of ProjectOptions.getRenovatebotOptions()
        Parameters:
        renovatebotOptions - Options for renovatebot.
        Returns:
        this
      • allowLibraryDependencies

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder allowLibraryDependencies​(Boolean allowLibraryDependencies)
        Sets the value of NodePackageOptions.getAllowLibraryDependencies()
        Parameters:
        allowLibraryDependencies - Allow the project to include `peerDependencies` and `bundledDependencies`. This is normally only allowed for libraries. For apps, there's no meaning for specifying these.
        Returns:
        this
      • authorEmail

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder authorEmail​(String authorEmail)
        Sets the value of NodePackageOptions.getAuthorEmail()
        Parameters:
        authorEmail - Author's e-mail.
        Returns:
        this
      • authorName

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder authorName​(String authorName)
        Sets the value of NodePackageOptions.getAuthorName()
        Parameters:
        authorName - Author's name.
        Returns:
        this
      • authorOrganization

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder authorOrganization​(Boolean authorOrganization)
        Sets the value of NodePackageOptions.getAuthorOrganization()
        Parameters:
        authorOrganization - Is the author an organization.
        Returns:
        this
      • authorUrl

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder authorUrl​(String authorUrl)
        Sets the value of NodePackageOptions.getAuthorUrl()
        Parameters:
        authorUrl - Author's URL / Website.
        Returns:
        this
      • autoDetectBin

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder autoDetectBin​(Boolean autoDetectBin)
        Sets the value of NodePackageOptions.getAutoDetectBin()
        Parameters:
        autoDetectBin - Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
        Returns:
        this
      • bin

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder bin​(Map<String,​String> bin)
        Sets the value of NodePackageOptions.getBin()
        Parameters:
        bin - 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.
        Returns:
        this
      • bugsEmail

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder bugsEmail​(String bugsEmail)
        Sets the value of NodePackageOptions.getBugsEmail()
        Parameters:
        bugsEmail - The email address to which issues should be reported.
        Returns:
        this
      • bugsUrl

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder bugsUrl​(String bugsUrl)
        Sets the value of NodePackageOptions.getBugsUrl()
        Parameters:
        bugsUrl - The url to your project's issue tracker.
        Returns:
        this
      • bundledDeps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder bundledDeps​(List<String> bundledDeps)
        Sets the value of NodePackageOptions.getBundledDeps()
        Parameters:
        bundledDeps - List of dependencies to bundle into this module. These modules will be added both to the dependencies section and bundledDependencies 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.

        Returns:
        this
      • codeArtifactOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder codeArtifactOptions​(io.github.cdklabs.projen.javascript.CodeArtifactOptions codeArtifactOptions)
        Sets the value of NodePackageOptions.getCodeArtifactOptions()
        Parameters:
        codeArtifactOptions - Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
        Returns:
        this
      • deps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder deps​(List<String> deps)
        Sets the value of NodePackageOptions.getDeps()
        Parameters:
        deps - Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g. express). This will behave similar 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.
        Returns:
        this
      • description

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder description​(String description)
        Sets the value of NodePackageOptions.getDescription()
        Parameters:
        description - The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
        Returns:
        this
      • devDeps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder devDeps​(List<String> devDeps)
        Sets the value of NodePackageOptions.getDevDeps()
        Parameters:
        devDeps - Build dependencies for this module. These dependencies will only be available in your build environment but will not be fetched when this module is consumed.

        The recommendation is to only specify the module name here (e.g. express). This will behave similar 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.

        Returns:
        this
      • entrypoint

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder entrypoint​(String entrypoint)
        Sets the value of NodePackageOptions.getEntrypoint()
        Parameters:
        entrypoint - Module entrypoint (`main` in `package.json`). Set to an empty string to not include main in your package.json
        Returns:
        this
      • homepage

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder homepage​(String homepage)
        Sets the value of NodePackageOptions.getHomepage()
        Parameters:
        homepage - Package's Homepage / Website.
        Returns:
        this
      • keywords

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder keywords​(List<String> keywords)
        Sets the value of NodePackageOptions.getKeywords()
        Parameters:
        keywords - Keywords to include in `package.json`.
        Returns:
        this
      • license

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder license​(String license)
        Sets the value of NodePackageOptions.getLicense()
        Parameters:
        license - License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use the licensed option if you want to no license to be specified.
        Returns:
        this
      • licensed

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder licensed​(Boolean licensed)
        Sets the value of NodePackageOptions.getLicensed()
        Parameters:
        licensed - Indicates if a license should be added.
        Returns:
        this
      • maxNodeVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder maxNodeVersion​(String maxNodeVersion)
        Sets the value of NodePackageOptions.getMaxNodeVersion()
        Parameters:
        maxNodeVersion - Minimum node.js version to require via `engines` (inclusive).
        Returns:
        this
      • minNodeVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder minNodeVersion​(String minNodeVersion)
        Sets the value of NodePackageOptions.getMinNodeVersion()
        Parameters:
        minNodeVersion - Minimum Node.js version to require via package.json `engines` (inclusive).
        Returns:
        this
      • npmAccess

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder npmAccess​(io.github.cdklabs.projen.javascript.NpmAccess npmAccess)
        Sets the value of NodePackageOptions.getNpmAccess()
        Parameters:
        npmAccess - Access level of the npm package.
        Returns:
        this
      • npmRegistry

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder npmRegistry​(String npmRegistry)
        Deprecated.
        use `npmRegistryUrl` instead
        Sets the value of NodePackageOptions.getNpmRegistry()
        Parameters:
        npmRegistry - The host name of the npm registry to publish to. Cannot be set together with npmRegistryUrl.
        Returns:
        this
      • npmRegistryUrl

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder npmRegistryUrl​(String npmRegistryUrl)
        Sets the value of NodePackageOptions.getNpmRegistryUrl()
        Parameters:
        npmRegistryUrl - The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://")
        Returns:
        this
      • npmTokenSecret

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder npmTokenSecret​(String npmTokenSecret)
        Sets the value of NodePackageOptions.getNpmTokenSecret()
        Parameters:
        npmTokenSecret - GitHub secret which contains the NPM token to use when publishing packages.
        Returns:
        this
      • packageManager

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder packageManager​(io.github.cdklabs.projen.javascript.NodePackageManager packageManager)
        Sets the value of NodePackageOptions.getPackageManager()
        Parameters:
        packageManager - The Node Package Manager used to execute scripts.
        Returns:
        this
      • packageName

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder packageName​(String packageName)
        Sets the value of NodePackageOptions.getPackageName()
        Parameters:
        packageName - The "name" in package.json.
        Returns:
        this
      • peerDependencyOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder peerDependencyOptions​(io.github.cdklabs.projen.javascript.PeerDependencyOptions peerDependencyOptions)
        Sets the value of NodePackageOptions.getPeerDependencyOptions()
        Parameters:
        peerDependencyOptions - Options for `peerDeps`.
        Returns:
        this
      • peerDeps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder peerDeps​(List<String> peerDeps)
        Sets the value of NodePackageOptions.getPeerDeps()
        Parameters:
        peerDeps - Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the consumer of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in 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.

        Returns:
        this
      • repository

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder repository​(String repository)
        Sets the value of NodePackageOptions.getRepository()
        Parameters:
        repository - The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
        Returns:
        this
      • repositoryDirectory

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder repositoryDirectory​(String repositoryDirectory)
        Sets the value of NodePackageOptions.getRepositoryDirectory()
        Parameters:
        repositoryDirectory - If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.
        Returns:
        this
      • scopedPackagesOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder scopedPackagesOptions​(List<? extends io.github.cdklabs.projen.javascript.ScopedPackagesOptions> scopedPackagesOptions)
        Sets the value of NodePackageOptions.getScopedPackagesOptions()
        Parameters:
        scopedPackagesOptions - Options for privately hosted scoped packages.
        Returns:
        this
      • scripts

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder scripts​(Map<String,​String> scripts)
        Sets the value of NodePackageOptions.getScripts()
        Parameters:
        scripts - npm scripts to include. If a script has the same name as a standard script, the standard script will be overwritten.
        Returns:
        this
      • stability

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder stability​(String stability)
        Sets the value of NodePackageOptions.getStability()
        Parameters:
        stability - Package's Stability.
        Returns:
        this
      • jsiiReleaseVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder jsiiReleaseVersion​(String jsiiReleaseVersion)
        Sets the value of ReleaseProjectOptions.getJsiiReleaseVersion()
        Parameters:
        jsiiReleaseVersion - Version requirement of `publib` which is used to publish modules to npm.
        Returns:
        this
      • majorVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder majorVersion​(Number majorVersion)
        Sets the value of ReleaseProjectOptions.getMajorVersion()
        Parameters:
        majorVersion - Major version to release from the default branch. If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version.
        Returns:
        this
      • minMajorVersion

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder minMajorVersion​(Number minMajorVersion)
        Sets the value of ReleaseProjectOptions.getMinMajorVersion()
        Parameters:
        minMajorVersion - Minimal Major version to release. This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number.

        Can not be set together with majorVersion.

        Returns:
        this
      • npmDistTag

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder npmDistTag​(String npmDistTag)
        Sets the value of ReleaseProjectOptions.getNpmDistTag()
        Parameters:
        npmDistTag - The npmDistTag to use when publishing from the default branch. To set the npm dist-tag for release branches, set the npmDistTag property for each branch.
        Returns:
        this
      • postBuildSteps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder postBuildSteps​(List<? extends io.github.cdklabs.projen.github.workflows.JobStep> postBuildSteps)
        Sets the value of ReleaseProjectOptions.getPostBuildSteps()
        Parameters:
        postBuildSteps - Steps to execute after build as part of the release workflow.
        Returns:
        this
      • prerelease

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder prerelease​(String prerelease)
        Sets the value of ReleaseProjectOptions.getPrerelease()
        Parameters:
        prerelease - Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
        Returns:
        this
      • publishDryRun

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder publishDryRun​(Boolean publishDryRun)
        Sets the value of ReleaseProjectOptions.getPublishDryRun()
        Parameters:
        publishDryRun - Instead of actually publishing to package managers, just print the publishing command.
        Returns:
        this
      • publishTasks

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder publishTasks​(Boolean publishTasks)
        Sets the value of ReleaseProjectOptions.getPublishTasks()
        Parameters:
        publishTasks - Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity.
        Returns:
        this
      • releaseBranches

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseBranches​(Map<String,​? extends io.github.cdklabs.projen.release.BranchOptions> releaseBranches)
        Sets the value of ReleaseProjectOptions.getReleaseBranches()
        Parameters:
        releaseBranches - Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch must be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the majorVersion field must also be provided for the default branch.
        Returns:
        this
      • releaseEveryCommit

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder releaseEveryCommit​(Boolean releaseEveryCommit)
        Deprecated.
        Use `releaseTrigger: ReleaseTrigger.continuous()` instead
        Sets the value of ReleaseProjectOptions.getReleaseEveryCommit()
        Parameters:
        releaseEveryCommit - Automatically release new versions every commit to one of branches in `releaseBranches`.
        Returns:
        this
      • releaseFailureIssue

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseFailureIssue​(Boolean releaseFailureIssue)
        Sets the value of ReleaseProjectOptions.getReleaseFailureIssue()
        Parameters:
        releaseFailureIssue - Create a github issue on every failed publishing task.
        Returns:
        this
      • releaseFailureIssueLabel

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseFailureIssueLabel​(String releaseFailureIssueLabel)
        Sets the value of ReleaseProjectOptions.getReleaseFailureIssueLabel()
        Parameters:
        releaseFailureIssueLabel - The label to apply to issues indicating publish failures. Only applies if releaseFailureIssue is true.
        Returns:
        this
      • releaseSchedule

        @Stability(Deprecated)
        @Deprecated
        public NxMonorepoProjectOptions.Builder releaseSchedule​(String releaseSchedule)
        Deprecated.
        Use `releaseTrigger: ReleaseTrigger.scheduled()` instead
        Sets the value of ReleaseProjectOptions.getReleaseSchedule()
        Parameters:
        releaseSchedule - CRON schedule to trigger new releases.
        Returns:
        this
      • releaseTagPrefix

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseTagPrefix​(String releaseTagPrefix)
        Sets the value of ReleaseProjectOptions.getReleaseTagPrefix()
        Parameters:
        releaseTagPrefix - Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix.
        Returns:
        this
      • releaseTrigger

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseTrigger​(io.github.cdklabs.projen.release.ReleaseTrigger releaseTrigger)
        Sets the value of ReleaseProjectOptions.getReleaseTrigger()
        Parameters:
        releaseTrigger - The release trigger to use.
        Returns:
        this
      • releaseWorkflowName

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseWorkflowName​(String releaseWorkflowName)
        Sets the value of ReleaseProjectOptions.getReleaseWorkflowName()
        Parameters:
        releaseWorkflowName - The name of the default release workflow.
        Returns:
        this
      • releaseWorkflowSetupSteps

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder releaseWorkflowSetupSteps​(List<? extends io.github.cdklabs.projen.github.workflows.JobStep> releaseWorkflowSetupSteps)
        Sets the value of ReleaseProjectOptions.getReleaseWorkflowSetupSteps()
        Parameters:
        releaseWorkflowSetupSteps - A set of workflow steps to execute in order to setup the workflow container.
        Returns:
        this
      • versionrcOptions

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder versionrcOptions​(Map<String,​? extends Object> versionrcOptions)
        Sets the value of ReleaseProjectOptions.getVersionrcOptions()
        Parameters:
        versionrcOptions - Custom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it.
        Returns:
        this
      • workflowContainerImage

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder workflowContainerImage​(String workflowContainerImage)
        Sets the value of ReleaseProjectOptions.getWorkflowContainerImage()
        Parameters:
        workflowContainerImage - Container image to use for GitHub workflows.
        Returns:
        this
      • workflowRunsOn

        @Stability(Experimental)
        public NxMonorepoProjectOptions.Builder workflowRunsOn​(List<String> workflowRunsOn)
        Sets the value of ReleaseProjectOptions.getWorkflowRunsOn()
        Parameters:
        workflowRunsOn - Github Runner selection labels.
        Returns:
        this