Class NodePackageOptions.Builder
- java.lang.Object
-
- io.github.cdklabs.projen.javascript.NodePackageOptions.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<NodePackageOptions>
- Enclosing interface:
- NodePackageOptions
@Stability(Experimental) public static final class NodePackageOptions.Builder extends Object implements software.amazon.jsii.Builder<NodePackageOptions>
A builder forNodePackageOptions
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
-
-
-
Method Detail
-
allowLibraryDependencies
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.Builder authorEmail(String authorEmail)
Sets the value ofNodePackageOptions.getAuthorEmail()- Parameters:
authorEmail- Author's e-mail.- Returns:
this
-
authorName
@Stability(Experimental) public NodePackageOptions.Builder authorName(String authorName)
Sets the value ofNodePackageOptions.getAuthorName()- Parameters:
authorName- Author's name.- Returns:
this
-
authorOrganization
@Stability(Experimental) public NodePackageOptions.Builder authorOrganization(Boolean authorOrganization)
Sets the value ofNodePackageOptions.getAuthorOrganization()- Parameters:
authorOrganization- Is the author an organization.- Returns:
this
-
authorUrl
@Stability(Experimental) public NodePackageOptions.Builder authorUrl(String authorUrl)
Sets the value ofNodePackageOptions.getAuthorUrl()- Parameters:
authorUrl- Author's URL / Website.- Returns:
this
-
autoDetectBin
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.Builder homepage(String homepage)
Sets the value ofNodePackageOptions.getHomepage()- Parameters:
homepage- Package's Homepage / Website.- Returns:
this
-
keywords
@Stability(Experimental) public NodePackageOptions.Builder keywords(List<String> keywords)
Sets the value ofNodePackageOptions.getKeywords()- Parameters:
keywords- Keywords to include inpackage.json.- Returns:
this
-
license
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.Builder licensed(Boolean licensed)
Sets the value ofNodePackageOptions.getLicensed()- Parameters:
licensed- Indicates if a license should be added.- Returns:
this
-
maxNodeVersion
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.Builder npmAccess(NpmAccess npmAccess)
Sets the value ofNodePackageOptions.getNpmAccess()- Parameters:
npmAccess- Access level of the npm package.- Returns:
this
-
npmProvenance
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.Builder packageName(String packageName)
Sets the value ofNodePackageOptions.getPackageName()- Parameters:
packageName- The "name" in package.json.- Returns:
this
-
peerDependencyOptions
@Stability(Experimental) public NodePackageOptions.Builder peerDependencyOptions(PeerDependencyOptions peerDependencyOptions)
Sets the value ofNodePackageOptions.getPeerDependencyOptions()- Parameters:
peerDependencyOptions- Options forpeerDeps.- Returns:
this
-
peerDeps
@Stability(Experimental) public NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.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 NodePackageOptions.Builder stability(String stability)
Sets the value ofNodePackageOptions.getStability()- Parameters:
stability- Package's Stability.- Returns:
this
-
yarnBerryOptions
@Stability(Experimental) public NodePackageOptions.Builder yarnBerryOptions(YarnBerryOptions yarnBerryOptions)
Sets the value ofNodePackageOptions.getYarnBerryOptions()- Parameters:
yarnBerryOptions- Options for Yarn Berry.- Returns:
this
-
build
@Stability(Experimental) public NodePackageOptions build()
Builds the configured instance.- Specified by:
buildin interfacesoftware.amazon.jsii.Builder<NodePackageOptions>- Returns:
- a new instance of
NodePackageOptions - Throws:
NullPointerException- if any required attribute was not provided
-
-