Skip to content

Commit 7dba8c5

Browse files
committed
Auto-generated commit
1 parent 42578b4 commit 7dba8c5

File tree

12 files changed

+120
-73
lines changed

12 files changed

+120
-73
lines changed

.github/.keepalive

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,19 @@ To view installation and usage instructions specific to each branch build, be su
7373
var replaceBefore = require( '@stdlib/string-base-replace-before' );
7474
```
7575

76-
#### replaceBefore( str, search, replacement )
76+
#### replaceBefore( str, search, replacement, fromIndex )
7777

7878
Replaces the substring before the first occurrence of a specified search string.
7979

8080
```javascript
81-
var out = replaceBefore( 'beep boop', ' ', 'loop' );
81+
var out = replaceBefore( 'beep boop', ' ', 'loop', 0 );
8282
// returns 'loop boop'
8383

84-
out = replaceBefore( 'beep boop', 'o', 'bar' );
84+
out = replaceBefore( 'beep boop', 'o', 'bar', 0 );
8585
// returns 'baroop'
86+
87+
out = replaceBefore( 'beep boop', 'p', 'bar', 5 );
88+
// returns 'barp'
8689
```
8790

8891
</section>
@@ -97,6 +100,7 @@ out = replaceBefore( 'beep boop', 'o', 'bar' );
97100

98101
- If a search string is not present in a provided string, the function returns the provided string unchanged.
99102
- If a search string is an empty string, the function returns the provided string unchanged.
103+
- If `fromIndex` is less than `0` or greater than `str.length`, the search starts at index `0` and `str.length`, respectively.
100104

101105
</section>
102106

@@ -113,16 +117,16 @@ out = replaceBefore( 'beep boop', 'o', 'bar' );
113117
```javascript
114118
var replaceBefore = require( '@stdlib/string-base-replace-before' );
115119

116-
var out = replaceBefore( 'beep boop', 'p', 'see' );
120+
var out = replaceBefore( 'beep boop', 'p', 'see', 0 );
117121
// returns 'seep boop'
118122

119-
out = replaceBefore( 'Hello World!', 'xyz', 'foo' );
123+
out = replaceBefore( 'Hello World!', 'xyz', 'foo', 0 );
120124
// returns 'Hello World!'
121125

122-
out = replaceBefore( 'Hello World!', '', 'foo' );
126+
out = replaceBefore( 'Hello World!', '', 'foo', 0 );
123127
// returns 'Hello World!'
124128

125-
out = replaceBefore( '', 'xyz', 'foo' );
129+
out = replaceBefore( '', 'xyz', 'foo', 0 );
126130
// returns ''
127131
```
128132

benchmark/benchmark.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ bench( pkg, function benchmark( b ) {
4444

4545
b.tic();
4646
for ( i = 0; i < b.iterations; i++ ) {
47-
out = replaceBefore( str, '.', values[ i%values.length ] );
47+
out = replaceBefore( str, '.', values[ i%values.length ], 0 );
4848
if ( typeof out !== 'string' ) {
4949
b.fail( 'should return a string' );
5050
}

dist/index.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/repl.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
{{alias}}( str, search, replacement )
2+
{{alias}}( str, search, replacement, fromIndex )
33
Replaces the substring before the first occurrence of a specified search
44
string.
55

@@ -10,21 +10,23 @@
1010

1111
search: string
1212
Search string.
13-
13+
1414
replacement: string
1515
Replacement string.
1616

17+
fromIndex: integer
18+
Index from which to start the search.
19+
1720
Returns
1821
-------
1922
out: string
2023
Output string.
2124

2225
Examples
2326
--------
24-
> var str = 'beep boop';
25-
> var out = {{alias}}( str, ' ', 'foo' )
27+
> var out = {{alias}}( 'beep boop', ' ', 'foo', 0 )
2628
'foo boop'
27-
> out = {{alias}}( str, 'o', 'foo' )
29+
> out = {{alias}}( 'beep boop', 'o', 'foo', 0 )
2830
'foooop'
2931

3032
See Also

docs/types/index.d.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,26 @@
2424
* @param str - input string
2525
* @param search - search string
2626
* @param replacement - replacement string
27+
* @param fromIndex - index at which to start the search
2728
* @returns output string
2829
*
2930
* @example
30-
* var out = replaceBefore( 'beep boop', ' ', 'foo' );
31+
* var out = replaceBefore( 'beep boop', ' ', 'foo', 0 );
3132
* // returns 'foo boop'
3233
*
3334
* @example
34-
* var out = replaceBefore( 'beep boop', 'p', 'foo' );
35-
* // returns 'foop boop'
35+
* var out = replaceBefore( 'beep boop', 'p', 'foo', 5 );
36+
* // returns 'foop'
3637
*
3738
* @example
38-
* var out = replaceBefore( 'Hello World!', '', 'foo' );
39+
* var out = replaceBefore( 'Hello World!', '', 'foo', 0 );
3940
* // returns 'Hello world!'
4041
*
4142
* @example
42-
* var out = replaceBefore( 'Hello World!', 'xyz', 'foo' );
43+
* var out = replaceBefore( 'Hello World!', 'xyz', 'foo', 0 );
4344
* // returns 'Hello World!'
4445
*/
45-
declare function replaceBefore( str: string, search: string, replacement: string ): string;
46+
declare function replaceBefore( str: string, search: string, replacement: string, fromIndex: number ): string;
4647

4748

4849
// EXPORTS //

docs/types/test.ts

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,38 +23,46 @@ import replaceBefore = require( './index' );
2323

2424
// The function returns a string...
2525
{
26-
replaceBefore( 'beep boop', ' ', 'foo' ); // $ExpectType string
27-
replaceBefore( 'beep boop', 'xyz', 'foo' ); // $ExpectType string
28-
replaceBefore( 'beep boop', '', 'foo' ); // $ExpectType string
26+
replaceBefore( 'beep boop', ' ', 'foo', 0 ); // $ExpectType string
27+
replaceBefore( 'beep boop', 'xyz', 'foo', 0 ); // $ExpectType string
28+
replaceBefore( 'beep boop', '', 'foo', 0 ); // $ExpectType string
2929
}
3030

3131
// The compiler throws an error if the function is provided arguments having invalid types...
3232
{
33-
replaceBefore( true, 'd', 'foo' ); // $ExpectError
34-
replaceBefore( false, 'd' , 'foo' ); // $ExpectError
35-
replaceBefore( 3, 'd' , 'foo' ); // $ExpectError
36-
replaceBefore( [], 'd' , 'foo' ); // $ExpectError
37-
replaceBefore( {}, 'd' , 'foo' ); // $ExpectError
38-
replaceBefore( ( x: number ): number => x, 'd', 'foo' ); // $ExpectError
39-
40-
replaceBefore( 'abc', true, 'foo' ); // $ExpectError
41-
replaceBefore( 'abc', false, 'foo' ); // $ExpectError
42-
replaceBefore( 'abc', 5 , 'foo' ); // $ExpectError
43-
replaceBefore( 'abc', [], 'foo' ); // $ExpectError
44-
replaceBefore( 'abc', {} , 'foo' ); // $ExpectError
45-
replaceBefore( 'abc', ( x: number ): number => x , 'foo' ); // $ExpectError
46-
47-
replaceBefore( 'abc', 'd', true ); // $ExpectError
48-
replaceBefore( 'abc', 'd', false ); // $ExpectError
49-
replaceBefore( 'abc', 'd', 5 ); // $ExpectError
50-
replaceBefore( 'abc', 'd', [] ); // $ExpectError
51-
replaceBefore( 'abc', 'd', {} ); // $ExpectError
52-
replaceBefore( 'abc', 'd', ( x: number ): number => x ); // $ExpectError
33+
replaceBefore( true, 'd', 'foo', 0 ); // $ExpectError
34+
replaceBefore( false, 'd' , 'foo', 0 ); // $ExpectError
35+
replaceBefore( 3, 'd' , 'foo', 0 ); // $ExpectError
36+
replaceBefore( [], 'd' , 'foo', 0 ); // $ExpectError
37+
replaceBefore( {}, 'd' , 'foo', 0 ); // $ExpectError
38+
replaceBefore( ( x: number ): number => x, 'd', 'foo', 0 ); // $ExpectError
39+
40+
replaceBefore( 'abc', true, 'foo', 0 ); // $ExpectError
41+
replaceBefore( 'abc', false, 'foo', 0 ); // $ExpectError
42+
replaceBefore( 'abc', 5 , 'foo', 0 ); // $ExpectError
43+
replaceBefore( 'abc', [], 'foo', 0 ); // $ExpectError
44+
replaceBefore( 'abc', {} , 'foo', 0 ); // $ExpectError
45+
replaceBefore( 'abc', ( x: number ): number => x , 'foo', 0 ); // $ExpectError
46+
47+
replaceBefore( 'abc', 'd', true, 0 ); // $ExpectError
48+
replaceBefore( 'abc', 'd', false, 0 ); // $ExpectError
49+
replaceBefore( 'abc', 'd', 5, 0 ); // $ExpectError
50+
replaceBefore( 'abc', 'd', [], 0 ); // $ExpectError
51+
replaceBefore( 'abc', 'd', {}, 0 ); // $ExpectError
52+
replaceBefore( 'abc', 'd', ( x: number ): number => x, 0 ); // $ExpectError
53+
54+
replaceBefore( 'abc', 'd', 'foo', true ); // $ExpectError
55+
replaceBefore( 'abc', 'd', 'foo', false ); // $ExpectError
56+
replaceBefore( 'abc', 'd', 'foo', '5' ); // $ExpectError
57+
replaceBefore( 'abc', 'd', 'foo', [] ); // $ExpectError
58+
replaceBefore( 'abc', 'd', 'foo', {} ); // $ExpectError
59+
replaceBefore( 'abc', 'd', 'foo', ( x: number ): number => x ); // $ExpectError
5360
}
5461

5562
// The compiler throws an error if the function is provided insufficient arguments...
5663
{
5764
replaceBefore(); // $ExpectError
5865
replaceBefore( 'abc' ); // $ExpectError
5966
replaceBefore( 'abc', 'd' ); // $ExpectError
67+
replaceBefore( 'abc', 'd', 'foo', 1, 1 ); // $ExpectError
6068
}

examples/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,18 @@
2020

2121
var replaceBefore = require( './../lib' );
2222

23-
var out = replaceBefore( 'beep boop', 'p', 'see' );
23+
var out = replaceBefore( 'beep boop', 'p', 'see', 0 );
2424
console.log( out );
2525
// => 'seep boop'
2626

27-
out = replaceBefore( 'Hello World!', 'xyz', 'foo' );
27+
out = replaceBefore( 'Hello World!', 'xyz', 'foo', 0 );
2828
console.log( out );
2929
// => 'Hello World!'
3030

31-
out = replaceBefore( 'Hello World!', '', 'foo' );
31+
out = replaceBefore( 'Hello World!', '', 'foo', 0 );
3232
console.log( out );
3333
// => 'Hello World!'
3434

35-
out = replaceBefore( '', 'xyz', 'foo' );
35+
out = replaceBefore( '', 'xyz', 'foo', 0 );
3636
console.log( out );
3737
// => ''

lib/index.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,10 @@
2626
* @example
2727
* var replaceBefore = require( '@stdlib/string-base-replace-before' );
2828
*
29-
* var str = 'beep boop';
30-
*
31-
* var out = replaceBefore( str, ' ', 'foo' );
29+
* var out = replaceBefore( 'beep boop', ' ', 'foo', 0 );
3230
* // returns 'foo boop'
3331
*
34-
* out = replaceBefore( str, 'o', 'bar' );
32+
* out = replaceBefore( 'beep boop', 'o', 'bar', 0 );
3533
* // returns 'baroop'
3634
*/
3735

0 commit comments

Comments
 (0)