Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9349371
string.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
string.js
View Options
import
{
isRegExp
,
isString
}
from
'./is'
;
/**
* Truncates given string to the maximum characters count
*
* @param str An object that contains serializable values
* @param max Maximum number of characters in truncated string (0 = unlimited)
* @returns string Encoded
*/
export
function
truncate
(
str
,
max
)
{
if
(
max
===
void
0
)
{
max
=
0
;
}
if
(
typeof
str
!==
'string'
||
max
===
0
)
{
return
str
;
}
return
str
.
length
<=
max
?
str
:
str
.
substr
(
0
,
max
)
+
"..."
;
}
/**
* This is basically just `trim_line` from
* https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67
*
* @param str An object that contains serializable values
* @param max Maximum number of characters in truncated string
* @returns string Encoded
*/
export
function
snipLine
(
line
,
colno
)
{
var
newLine
=
line
;
var
ll
=
newLine
.
length
;
if
(
ll
<=
150
)
{
return
newLine
;
}
if
(
colno
>
ll
)
{
// eslint-disable-next-line no-param-reassign
colno
=
ll
;
}
var
start
=
Math
.
max
(
colno
-
60
,
0
);
if
(
start
<
5
)
{
start
=
0
;
}
var
end
=
Math
.
min
(
start
+
140
,
ll
);
if
(
end
>
ll
-
5
)
{
end
=
ll
;
}
if
(
end
===
ll
)
{
start
=
Math
.
max
(
end
-
140
,
0
);
}
newLine
=
newLine
.
slice
(
start
,
end
);
if
(
start
>
0
)
{
newLine
=
"'{snip} "
+
newLine
;
}
if
(
end
<
ll
)
{
newLine
+=
' {snip}'
;
}
return
newLine
;
}
/**
* Join values in array
* @param input array of values to be joined together
* @param delimiter string to be placed in-between values
* @returns Joined values
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export
function
safeJoin
(
input
,
delimiter
)
{
if
(
!
Array
.
isArray
(
input
))
{
return
''
;
}
var
output
=
[];
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for
(
var
i
=
0
;
i
<
input
.
length
;
i
++
)
{
var
value
=
input
[
i
];
try
{
output
.
push
(
String
(
value
));
}
catch
(
e
)
{
output
.
push
(
'[value cannot be serialized]'
);
}
}
return
output
.
join
(
delimiter
);
}
/**
* Checks if the value matches a regex or includes the string
* @param value The string value to be checked against
* @param pattern Either a regex or a string that must be contained in value
*/
export
function
isMatchingPattern
(
value
,
pattern
)
{
if
(
!
isString
(
value
))
{
return
false
;
}
if
(
isRegExp
(
pattern
))
{
return
pattern
.
test
(
value
);
}
if
(
typeof
pattern
===
'string'
)
{
return
value
.
indexOf
(
pattern
)
!==
-
1
;
}
return
false
;
}
//# sourceMappingURL=string.js.map
File Metadata
Details
Attached
Mime Type
text/x-Algol68
Expires
Jul 4 2025, 7:19 PM (6 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3433088
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment