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