@rnx-kit/types-kit-config
v1.0.0
Published
Type definitions for the rnx-kit configuration
Keywords
Readme
@rnx-kit/types-kit-config
TypeScript type definitions for rnx-kit configuration, dependency alignment, and lint rules. This package exists to break circular dependencies between rnx-kit packages that share these types.
Installation
yarn add @rnx-kit/types-kit-config --devor if you're using npm
npm add --save-dev @rnx-kit/types-kit-configUsage
import type {
KitConfig,
AlignDepsConfig,
Capability,
} from "@rnx-kit/types-kit-config";Types
Configuration Types
KitConfig
Configuration for an rnx-kit package, stored in the rnx-kit field of
package.json.
| Name | Type | Description |
| --------- | --------------------------------------------- | ------------------------------------------------------------------------- |
| extends | string \| undefined | Load base config from file or module. |
| kitType | KitType \| undefined | Whether this kit is an "app" or a "library". Defaults to "library". |
| alignDeps | AlignDepsConfig \| undefined | Configures how align-deps should align dependencies for this package. |
| bundle | BundleConfig \| BundleConfig[] \| undefined | Specifies how the package is bundled. |
| server | ServerConfig \| undefined | Specifies how the package's bundle server is configured. |
| lint | object \| undefined | Configures rnx-kit linting tools and their rules. |
KitType
type KitType = "app" | "library";DependencyVersions
A record mapping package names to version strings.
GetDependencyVersions
A function returning a DependencyVersions record.
Dependency Alignment Types
AlignDepsConfig
Configuration for the align-deps dependency alignment tool.
| Name | Type | Description |
| ------------ | ------------------------------------------------------------- | ---------------------------------------------------------- |
| presets | string[] \| undefined | Presets to use for aligning dependencies. |
| requirements | string[] \| { development: string[]; production: string[] } | Requirements for this package, e.g. react-native@>=0.66. |
| capabilities | Capability[] \| undefined | Capabilities used by the kit. |
Capability
Well-known capability names used by align-deps for dependency management.
Includes platform cores (core, core-android, core-ios, etc.), Metro
tooling (metro, metro-config), navigation (navigation/native,
navigation/stack), and many common React Native libraries.
MetaCapability
Meta-capabilities that aggregate other capabilities (e.g. "core/testing").
Lint Rule Types
RuleBaseOptions
Base options shared by all lint rules.
| Name | Type | Description |
| ------- | ---------------------- | ------------------------------------------------ |
| enabled | boolean \| undefined | Whether to enable this rule. Defaults to true. |
NoDuplicatesRuleOptions
Options for the no-duplicates lockfile lint rule. Extends RuleBaseOptions.
| Name | Type | Description |
| -------- | --------------------------------------------------------------- | ----------------------------------------- |
| packages | readonly (string \| readonly [string, number])[] \| undefined | List of packages to check for duplicates. |
NoWorkspacePackageFromNpmRuleOptions
Options for the no-workspace-package-from-npm lockfile lint rule. Extends
RuleBaseOptions.
