Skip to content

Commit 20a1c55

Browse files
authored
Merge pull request #205 from docsbydoxdox/feature/use-super-regex
[feat] Switched to using super-regex for matching.
2 parents 1112b9a + 11ddc82 commit 20a1c55

File tree

17 files changed

+153
-23
lines changed

17 files changed

+153
-23
lines changed

.github/workflows/test.workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
strategy:
2222
matrix:
2323
os: [ubuntu-latest]
24-
node: [14.15.0, 16.10.0, 18.0.0]
24+
node: [14.18.0, 16.10.0, 18.0.0]
2525

2626
steps:
2727
- name: Check out repository

package-lock.json

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

packages/doxdox-cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"types": "./dist/src/index.d.ts",
1010
"type": "module",
1111
"engines": {
12-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
12+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1313
},
1414
"dependencies": {
1515
"doxdox-core": "4.0.0-preview.16",

packages/doxdox-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"devDependencies": {
1212
"@types/jest": "29.1.2",

packages/doxdox-parser-custom/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
12-
"comment-parser": "1.3.1"
12+
"comment-parser": "1.3.1",
13+
"super-regex": "0.2.0"
1314
},
1415
"peerDependencies": {
1516
"doxdox-core": "4.0.0-preview.16"

packages/doxdox-parser-custom/src/index.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ import { File, Method, multiLinePatternMatch, slugify } from 'doxdox-core';
66

77
import { parse as commentParse } from 'comment-parser';
88

9+
import { firstMatch, matches } from 'super-regex';
10+
11+
const REGEX_TIMEOUT = 1000;
12+
913
const JSDOC_PATTERN = /[ \t]*\/\*\*\s*\n?([^*]*(\*[^/])?)*\*\//g;
1014

1115
const IDENTIFIER_PATTERNS = [
@@ -36,8 +40,9 @@ export const parseString = async (
3640
path: string,
3741
content: string
3842
): Promise<File> => {
39-
const comments =
40-
content.match(JSDOC_PATTERN) || ([] as unknown as string[]);
43+
const comments = Array.from(
44+
matches(JSDOC_PATTERN, content, { timeout: REGEX_TIMEOUT })
45+
).map(({ match }) => match);
4146

4247
const methods = comments.map(comment => ({
4348
rawComment: comment,
@@ -71,10 +76,14 @@ export const parseString = async (
7176
const [firstLine] = method.code.trim().split(/\r?\n/);
7277

7378
for (let i = 0; i < IDENTIFIER_PATTERNS.length; i += 1) {
74-
const matches = firstLine.trim().match(IDENTIFIER_PATTERNS[i]);
75-
76-
if (matches) {
77-
method.name = matches[1];
79+
const results = firstMatch(
80+
IDENTIFIER_PATTERNS[i],
81+
firstLine.trim(),
82+
{ timeout: REGEX_TIMEOUT }
83+
);
84+
85+
if (results) {
86+
method.name = results.groups[0];
7887

7988
break;
8089
}

packages/doxdox-parser-dox/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"dox": "1.0.0"

packages/doxdox-parser-jsdoc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"jsdoc": "3.6.11",

packages/doxdox-parser-template/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"peerDependencies": {
1212
"doxdox-core": "4.0.0-preview.16"

packages/doxdox-renderer-bootstrap/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"highlight.js": "11.6.0",

packages/doxdox-renderer-dash/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"adm-zip": "0.5.9",

packages/doxdox-renderer-github-wiki/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"adm-zip": "0.5.9",

packages/doxdox-renderer-json/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"peerDependencies": {
1212
"doxdox-core": "4.0.0-preview.16"

packages/doxdox-renderer-markdown/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"markdown-table": "3.0.2"

packages/doxdox-renderer-pdf/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"dependencies": {
1212
"highlight.js": "11.6.0",

packages/doxdox-renderer-template/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"types": "./dist/index.d.ts",
77
"type": "module",
88
"engines": {
9-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
9+
"node": "^14.18.0 || ^16.10.0 || >=18.0.0"
1010
},
1111
"peerDependencies": {
1212
"doxdox-core": "4.0.0-preview.16"

0 commit comments

Comments
 (0)