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