Skip to content

Commit 55fbd02

Browse files
committed
Add loose mode for repeatable delimiters
1 parent 9085eda commit 55fbd02

File tree

2 files changed

+154
-129
lines changed

2 files changed

+154
-129
lines changed

src/index.spec.ts

Lines changed: 77 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { describe, it, expect } from "vitest";
22
import * as util from "util";
33
import * as pathToRegexp from "./index";
4-
import semver from "semver";
54

65
type Test = [
76
pathToRegexp.Path,
@@ -2703,96 +2702,92 @@ const TESTS: Test[] = [
27032702
[["foobar", ["foobar", "foobar"]]],
27042703
[[{ name: "foobar" }, "foobar"]],
27052704
],
2706-
];
27072705

2708-
/**
2709-
* Named capturing groups (available from 1812 version 10)
2710-
*/
2711-
if (semver.gte(process.version, "10.0.0")) {
2712-
TESTS.push(
2706+
/**
2707+
* Named capturing groups (available from 1812 version 10)
2708+
*/
2709+
[
2710+
/\/(?<groupname>.+)/,
2711+
undefined,
27132712
[
2714-
/\/(?<groupname>.+)/,
2715-
undefined,
2716-
[
2717-
{
2718-
name: "groupname",
2719-
prefix: "",
2720-
suffix: "",
2721-
modifier: "",
2722-
pattern: "",
2723-
},
2724-
],
2725-
[
2726-
["/", null],
2727-
["/foo", ["/foo", "foo"]],
2728-
],
2729-
[],
2713+
{
2714+
name: "groupname",
2715+
prefix: "",
2716+
suffix: "",
2717+
modifier: "",
2718+
pattern: "",
2719+
},
27302720
],
27312721
[
2732-
/\/(?<test>.*).(?<format>html|json)/,
2733-
undefined,
2734-
[
2735-
{
2736-
name: "test",
2737-
prefix: "",
2738-
suffix: "",
2739-
modifier: "",
2740-
pattern: "",
2741-
},
2742-
{
2743-
name: "format",
2744-
prefix: "",
2745-
suffix: "",
2746-
modifier: "",
2747-
pattern: "",
2748-
},
2749-
],
2750-
[
2751-
["/route", null],
2752-
["/route.txt", null],
2753-
["/route.html", ["/route.html", "route", "html"]],
2754-
["/route.json", ["/route.json", "route", "json"]],
2755-
],
2756-
[],
2722+
["/", null],
2723+
["/foo", ["/foo", "foo"]],
27572724
],
2725+
[],
2726+
],
2727+
[
2728+
/\/(?<test>.*).(?<format>html|json)/,
2729+
undefined,
27582730
[
2759-
/\/(.+)\/(?<groupname>.+)\/(.+)/,
2760-
undefined,
2761-
[
2762-
{
2763-
name: 0,
2764-
prefix: "",
2765-
suffix: "",
2766-
modifier: "",
2767-
pattern: "",
2768-
},
2769-
{
2770-
name: "groupname",
2771-
prefix: "",
2772-
suffix: "",
2773-
modifier: "",
2774-
pattern: "",
2775-
},
2776-
{
2777-
name: 1,
2778-
prefix: "",
2779-
suffix: "",
2780-
modifier: "",
2781-
pattern: "",
2782-
},
2783-
],
2731+
{
2732+
name: "test",
2733+
prefix: "",
2734+
suffix: "",
2735+
modifier: "",
2736+
pattern: "",
2737+
},
2738+
{
2739+
name: "format",
2740+
prefix: "",
2741+
suffix: "",
2742+
modifier: "",
2743+
pattern: "",
2744+
},
2745+
],
2746+
[
2747+
["/route", null],
2748+
["/route.txt", null],
2749+
["/route.html", ["/route.html", "route", "html"]],
2750+
["/route.json", ["/route.json", "route", "json"]],
2751+
],
2752+
[],
2753+
],
2754+
[
2755+
/\/(.+)\/(?<groupname>.+)\/(.+)/,
2756+
undefined,
2757+
[
2758+
{
2759+
name: 0,
2760+
prefix: "",
2761+
suffix: "",
2762+
modifier: "",
2763+
pattern: "",
2764+
},
2765+
{
2766+
name: "groupname",
2767+
prefix: "",
2768+
suffix: "",
2769+
modifier: "",
2770+
pattern: "",
2771+
},
2772+
{
2773+
name: 1,
2774+
prefix: "",
2775+
suffix: "",
2776+
modifier: "",
2777+
pattern: "",
2778+
},
2779+
],
2780+
[
2781+
["/test", null],
2782+
["/test/testData", null],
27842783
[
2785-
["/test", null],
2786-
["/test/testData", null],
2787-
[
2788-
"/test/testData/extraStuff",
2789-
["/test/testData/extraStuff", "test", "testData", "extraStuff"],
2790-
],
2784+
"/test/testData/extraStuff",
2785+
["/test/testData/extraStuff", "test", "testData", "extraStuff"],
27912786
],
2792-
[],
27932787
],
2794-
);
2795-
}
2788+
[],
2789+
],
2790+
];
27962791

27972792
/**
27982793
* Dynamically generate the entire test suite.

0 commit comments

Comments
 (0)