1
+ /**
2
+ * The following code snippet is copied from the index.ts file of the strip-json-trailing-commas project
3
+ * (commit 3cfa16a2aa6bbef8ed740c346321ef6c2b42237d),
4
+ * available at: https://github.com/nokazn/strip-json-trailing-commas/blob/3cfa16a2aa6bbef8ed740c346321ef6c2b42237d/src/index.ts
5
+ *
6
+ * The original code is licensed under the MIT License:
7
+ *
8
+ * MIT License
9
+ *
10
+ * Copyright 2021 https://github.com/nokazn
11
+ *
12
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ * of this software and associated documentation files (the "Software"), to deal
14
+ * in the Software without restriction, including without limitation the rights
15
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ * copies of the Software, and to permit persons to whom the Software is
17
+ * furnished to do so, subject to the following conditions:
18
+ *
19
+ * The above copyright notice and this permission notice shall be included in all
20
+ * copies or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ * SOFTWARE.
29
+ */
30
+
31
+ export default function stripJsonTrailingCommas ( content : string ) : string {
32
+ /**
33
+ * preceded by number or string or boolean (true/false) or null or '}' or ']' (and with 0 or more spaces)
34
+ * match with ','
35
+ * followed by '}' or ']'
36
+ */
37
+ return content . replace ( / (?< = ( t r u e | f a l s e | n u l l | [ " \d } \] ] ) \s * ) , (? = \s * [ } \] ] ) / g, '' ) ;
38
+ }
0 commit comments