Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions websites/api.rushstack.io/data/api_nav.json
Original file line number Diff line number Diff line change
Expand Up @@ -4778,6 +4778,11 @@
"label": "rushAlerts",
"id": "pages/rush-lib.iexperimentsjson.rushalerts"
},
{
"type": "doc",
"label": "strictChangefileValidation",
"id": "pages/rush-lib.iexperimentsjson.strictchangefilevalidation"
},
{
"type": "doc",
"label": "useIPCScriptsInWatchMode",
Expand Down Expand Up @@ -6422,6 +6427,11 @@
"label": "minimumReleaseAgeExclude",
"id": "pages/rush-lib.pnpmoptionsconfiguration.minimumreleaseageexclude"
},
{
"type": "doc",
"label": "minimumReleaseAgeMinutes",
"id": "pages/rush-lib.pnpmoptionsconfiguration.minimumreleaseageminutes"
},
{
"type": "doc",
"label": "pnpmLockfilePolicies",
Expand Down Expand Up @@ -13687,6 +13697,21 @@
"type": "doc",
"label": "areDeepEqual",
"id": "pages/node-core-library.objects.aredeepequal"
},
{
"type": "doc",
"label": "isRecord",
"id": "pages/node-core-library.objects.isrecord"
},
{
"type": "doc",
"label": "mergeWith",
"id": "pages/node-core-library.objects.mergewith"
},
{
"type": "doc",
"label": "MergeWithCustomizer",
"id": "pages/node-core-library.objects.mergewithcustomizer"
}
]
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
hide_title: true
custom_edit_url: null
pagination_prev: null
pagination_next: null
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@rushstack/node-core-library](./node-core-library.md) &gt; [Objects](./node-core-library.objects.md) &gt; [isRecord](./node-core-library.objects.isrecord.md)

## Objects.isRecord() function

Returns `true` if `value` is a non-null, non-array plain object (i.e. assignable to `Record<string, unknown>`<></>), narrowing the type accordingly.

**Signature:**

```typescript
export declare function isRecord(value: unknown): value is Record<string, unknown>;
```

## Parameters

<table><thead><tr><th>

Parameter


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

value


</td><td>

unknown


</td><td>


</td></tr>
</tbody></table>

**Returns:**

value is Record&lt;string, unknown&gt;

48 changes: 48 additions & 0 deletions websites/api.rushstack.io/docs/pages/node-core-library.objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,54 @@ Description
Determines if two objects are deeply equal.


</td></tr>
<tr><td>

[isRecord(value)](./node-core-library.objects.isrecord.md)


</td><td>

Returns `true` if `value` is a non-null, non-array plain object (i.e. assignable to `Record<string, unknown>`<></>), narrowing the type accordingly.


</td></tr>
<tr><td>

[mergeWith(target, source, customizer)](./node-core-library.objects.mergewith.md)


</td><td>

Recursively merges own enumerable string-keyed properties of `source` into `target`<></>, invoking `customizer` for each property. Mutates and returns `target`<></>.


</td></tr>
</tbody></table>

## Type Aliases

<table><thead><tr><th>

Type Alias


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[MergeWithCustomizer](./node-core-library.objects.mergewithcustomizer.md)


</td><td>

Customizer function for use with `mergeWith`<></>. Return `undefined` to fall back to the default deep-merge behavior for that property.


</td></tr>
</tbody></table>

Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
hide_title: true
custom_edit_url: null
pagination_prev: null
pagination_next: null
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@rushstack/node-core-library](./node-core-library.md) &gt; [Objects](./node-core-library.objects.md) &gt; [mergeWith](./node-core-library.objects.mergewith.md)

## Objects.mergeWith() function

Recursively merges own enumerable string-keyed properties of `source` into `target`<></>, invoking `customizer` for each property. Mutates and returns `target`<></>.

**Signature:**

```typescript
export declare function mergeWith<TTarget extends object, TSource extends object>(target: TTarget, source: TSource, customizer?: MergeWithCustomizer): TTarget;
```

## Parameters

<table><thead><tr><th>

Parameter


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

target


</td><td>

TTarget


</td><td>


</td></tr>
<tr><td>

source


</td><td>

TSource


</td><td>


</td></tr>
<tr><td>

customizer


</td><td>

[MergeWithCustomizer](./node-core-library.objects.mergewithcustomizer.md)


</td><td>

_(Optional)_


</td></tr>
</tbody></table>

**Returns:**

TTarget

## Remarks

For each property in `source`<></>, `customizer` is called with `(targetValue, sourceValue, key)`<></>. If the customizer returns a value other than `undefined`<></>, that value is assigned directly. Otherwise the default behavior applies: plain objects are merged recursively; all other values (arrays, primitives, `null`<></>) overwrite the corresponding target property.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
hide_title: true
custom_edit_url: null
pagination_prev: null
pagination_next: null
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@rushstack/node-core-library](./node-core-library.md) &gt; [Objects](./node-core-library.objects.md) &gt; [MergeWithCustomizer](./node-core-library.objects.mergewithcustomizer.md)

## Objects.MergeWithCustomizer type

Customizer function for use with `mergeWith`<></>. Return `undefined` to fall back to the default deep-merge behavior for that property.

**Signature:**

```typescript
export type MergeWithCustomizer = (objValue: unknown, srcValue: unknown, key: string) => unknown;
```
19 changes: 19 additions & 0 deletions websites/api.rushstack.io/docs/pages/rush-lib.iexperimentsjson.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,25 @@ boolean
**_(BETA)_** _(Optional)_ (UNDER DEVELOPMENT) The Rush alerts feature provides a way to send announcements to engineers working in the monorepo, by printing directly in the user's shell window when they invoke Rush commands. This ensures that important notices will be seen by anyone doing active development, since people often ignore normal discussion group messages or don't know to subscribe.


</td></tr>
<tr><td>

[strictChangefileValidation?](./rush-lib.iexperimentsjson.strictchangefilevalidation.md)


</td><td>


</td><td>

boolean


</td><td>

**_(BETA)_** _(Optional)_ If true, `rush change --verify` will perform additional validation of change files. Specifically, it will report errors if change files reference projects that do not exist in the Rush configuration, or if change files target a project that belongs to a lockstepped version policy but is not the policy's main project.


</td></tr>
<tr><td>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
hide_title: true
custom_edit_url: null
pagination_prev: null
pagination_next: null
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@microsoft/rush-lib](./rush-lib.md) &gt; [IExperimentsJson](./rush-lib.iexperimentsjson.md) &gt; [strictChangefileValidation](./rush-lib.iexperimentsjson.strictchangefilevalidation.md)

## IExperimentsJson.strictChangefileValidation property

> This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
>

If true, `rush change --verify` will perform additional validation of change files. Specifically, it will report errors if change files reference projects that do not exist in the Rush configuration, or if change files target a project that belongs to a lockstepped version policy but is not the policy's main project.

**Signature:**

```typescript
strictChangefileValidation?: boolean;
```
Original file line number Diff line number Diff line change
Expand Up @@ -370,8 +370,6 @@ number \| undefined

</td><td>

The minimum number of minutes that must pass after a version is published before pnpm will install it. This setting helps reduce the risk of installing compromised packages, as malicious releases are typically discovered and removed within a short time frame.


</td></tr>
<tr><td>
Expand All @@ -391,7 +389,28 @@ string\[\] \| undefined

</td><td>

List of package names or patterns that are excluded from the minimumReleaseAge check. These packages will always install the newest version immediately, even if minimumReleaseAge is set.
List of package names or patterns that are excluded from the minimumReleaseAge check. These packages will always install the newest version immediately, even if minimumReleaseAgeMinutes is set.


</td></tr>
<tr><td>

[minimumReleaseAgeMinutes](./rush-lib.pnpmoptionsconfiguration.minimumreleaseageminutes.md)


</td><td>

`readonly`


</td><td>

number \| undefined


</td><td>

The minimum number of minutes that must pass after a version is published before pnpm will install it. This setting helps reduce the risk of installing compromised packages, as malicious releases are typically discovered and removed within a short time frame.


</td></tr>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,13 @@ pagination_next: null

## PnpmOptionsConfiguration.minimumReleaseAge property

The minimum number of minutes that must pass after a version is published before pnpm will install it. This setting helps reduce the risk of installing compromised packages, as malicious releases are typically discovered and removed within a short time frame.
> Warning: This API is now obsolete.
>
> Use [PnpmOptionsConfiguration.minimumReleaseAgeMinutes](./rush-lib.pnpmoptionsconfiguration.minimumreleaseageminutes.md) instead.
>

**Signature:**

```typescript
readonly minimumReleaseAge: number | undefined;
get minimumReleaseAge(): number | undefined;
```

## Remarks

(SUPPORTED ONLY IN PNPM 10.16.0 AND NEWER)

PNPM documentation: https://pnpm.io/settings\#minimumreleaseage

The default value is 0 (disabled).

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pagination_next: null

## PnpmOptionsConfiguration.minimumReleaseAgeExclude property

List of package names or patterns that are excluded from the minimumReleaseAge check. These packages will always install the newest version immediately, even if minimumReleaseAge is set.
List of package names or patterns that are excluded from the minimumReleaseAge check. These packages will always install the newest version immediately, even if minimumReleaseAgeMinutes is set.

**Signature:**

Expand Down
Loading
Loading