Skip to content

Commit e983517

Browse files
committed
Engine structure tweaks
1 parent 1690777 commit e983517

26 files changed

+92
-43
lines changed

src/app/internal/list.html/page.tsx

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { Level } from '@/components/Level';
2+
import { getEngines } from '@/engines';
3+
4+
5+
6+
export default function List() {
7+
8+
const rows = getEngines().map((engine) => {
9+
return (<tr key={`engine_${engine.handle}`}><td>{engine.short_name}</td><td><Level level={engine.level}/></td></tr>);
10+
});
11+
12+
const total = getEngines().length;
13+
const working = getEngines().filter(engine => engine.test_url).length;
14+
15+
return (
16+
<>
17+
<h1>Engines</h1>
18+
<table className="table table-striped">
19+
<thead>
20+
<tr>
21+
<th>Name</th>
22+
<th>Level</th>
23+
</tr>
24+
</thead>
25+
<tbody>
26+
{rows}
27+
</tbody>
28+
</table>
29+
<p>
30+
<Level level="alpha"/>: {getEngines().filter(engine => engine.level === 'alpha').length}<br/>
31+
<Level level="beta"/>: {getEngines().filter(engine => engine.level === 'beta').length}<br/>
32+
<Level level="golden"/>: {getEngines().filter(engine => engine.level === 'golden').length}<br/>
33+
Total working: {working}<br />
34+
<Level level="notimplemented"/>: {getEngines().filter(engine => engine.level === 'notimplemented').length}<br/>
35+
Grand total: {total}
36+
</p>
37+
</>
38+
);
39+
}

src/app/robots.txt/route.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ Disallow: /
1414
Sitemap: https://www.regexplanet.com/sitemap.xml
1515
1616
User-agent: *
17+
Disallow: /int
1718
Disallow: /honeypot.txt
18-
`
19+
`;
1920
}
2021

2122
return new Response(robotsTxt, {

src/components/Level.tsx

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
type LevelProps = {
2+
level: string;
3+
}
4+
5+
export function Level({ level }: LevelProps) {
6+
if (level === 'alpha') {
7+
return (<span className="badge bg-danger">{level}</span>);
8+
}
9+
if (level === 'beta') {
10+
return (<span className="badge bg-warning">{level}</span>);
11+
}
12+
if (level === 'golden') {
13+
return (<span className="badge bg-success">{level}</span>);
14+
}
15+
if (level === 'notimplemented') {
16+
return (<i>(not implemented yet)</i>);
17+
}
18+
return (<>{level}</>)
19+
}

src/components/TestResults.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export function TestResults({ onClear, testOutput }: props) {
1111
return (
1212
<>
1313
<h2 className="pt-3">Results <button className="btn btn-outline-primary btn-sm" onClick={onClear}>Clear</button></h2>
14-
{ testOutput.message ? <div className={messageClass}>{testOutput.message}</div> : <></>}
14+
{ testOutput.message && testOutput.message != "OK" ? <div className={messageClass}>{testOutput.message}</div> : <></>}
1515
{ testOutput.html ? <div dangerouslySetInnerHTML={{ __html: testOutput.html }} /> : <></> }
1616
<hr/>
1717
</>

src/engines/RegexEngine.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export type RegexEngine = {
2727
links: Record<string, string>; // A map of (name: url) for other help links. These will be displayed on the support page under “Official Documentation”
2828
logo_icon: string; // SVG icon (just the logo, no text) in a square
2929
logo_ar21: string; // SVG logo (including language name) in a 2:1 aspect ratio
30-
nodeping_url?: string; // URL of the nodeping status page
30+
nodeping_id: string; // ID of the nodeping status check
3131
notfound?: string[]; // A list of handles that this is a substitute for (i.e. nodejs is a substitute for javascript)
3232
options: RegexOption[]; // A list of which options it supports.
3333
option_notes?: string; // Notes to display on the options page (html allowed)

src/engines/browser.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ export const browser: RegexEngine = {
77
help_url:
88
"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
99
handle: "browser",
10-
level: "alpha",
10+
level: "golden",
1111
links: {},
1212
logo_icon: "/images/browsers/browser-icon.svg",
1313
logo_ar21: "/images/browsers/browser-ar21.svg",
14-
nodeping_url: undefined,
14+
nodeping_id: "N/A",
1515
notfound: ["javascript", "typescript"],
1616
options: [
1717
{

src/engines/bun.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const bun: RegexEngine = {
77
help_url:
88
"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
99
handle: "bun",
10-
level: "beta",
10+
level: "golden",
1111
links: {
1212
"MDN RegExp Object":
1313
"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp",
@@ -16,8 +16,7 @@ export const bun: RegexEngine = {
1616
},
1717
logo_icon: "https://www.vectorlogo.zone/logos/bunsh/bunsh-icon.svg",
1818
logo_ar21: "https://www.vectorlogo.zone/logos/bunsh/bunsh-ar21.svg",
19-
nodeping_url:
20-
"https://nodeping.com/reports/checks/iajucfo0-kq0e-47ql-82sk-xoji0l2ejmfw",
19+
nodeping_id: "iajucfo0-kq0e-47ql-82sk-xoji0l2ejmfw",
2120
notfound: ["javascript", "typescript"],
2221
options: [
2322
{

src/engines/deno.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const deno: RegexEngine = {
77
help_url:
88
"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
99
handle: "deno",
10-
level: "beta",
10+
level: "golden",
1111
links: {
1212
"MDN RegExp Object":
1313
"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp",
@@ -16,8 +16,7 @@ export const deno: RegexEngine = {
1616
},
1717
logo_icon: "https://www.vectorlogo.zone/logos/deno/deno-icon.svg",
1818
logo_ar21: "https://www.vectorlogo.zone/logos/deno/deno-ar21.svg",
19-
nodeping_url:
20-
"https://nodeping.com/reports/checks/iajucfo0-kq0e-47ql-82sk-xoji0l2ejmfw",
19+
nodeping_id: "9z4pmj0b-ve3m-42s9-8s07-6c53rlel69iy",
2120
notfound: ["javascript", "typescript"],
2221
options: [
2322
{

src/engines/dotnet.ts

+2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ export const dotnet: RegexEngine = {
2020
},
2121
logo_icon: "https://www.vectorlogo.zone/logos/dotnet/dotnet-icon.svg",
2222
logo_ar21: "https://www.vectorlogo.zone/logos/dotnet/dotnet-ar21.svg",
23+
nodeping_id: "9z4pmj0b-ve3m-42s9-8s07-6c53rlel69iy",
2324
options: [],
2425
short_name: ".NET",
26+
source_url: "https://github.com/regexplanet/regexplanet-dotnet",
2527
status_url: "https://dotnet.gcr.regexplanet.com/status.json",
2628
test_url: "https://dotnet.gcr.regexplanet.com/test.json",
2729
};

src/engines/empty.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const LATER: RegexEngine = {
1010
links: {},
1111
logo_icon: "https://www.vectorlogo.zone/logos/LATER/LATER-icon.svg",
1212
logo_ar21: "https://www.vectorlogo.zone/logos/LATER/LATER-ar21.svg",
13-
nodeping_url: "https://nodeping.com/reports/checks/LATER",
13+
nodeping_id: "LATER",
1414
options: [],
1515
short_name: "LATER",
1616
source_url: "https://github.com/regexplanet/regexplanet-LATER",

src/engines/erlang.ts

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const erlang: RegexEngine = {
1010
links: {},
1111
logo_ar21: "https://www.vectorlogo.zone/logos/erlang/erlang-ar21.svg",
1212
logo_icon: "https://www.vectorlogo.zone/logos/erlang/erlang-icon.svg",
13+
nodeping_id: "LATER",
1314
options: [],
1415
short_name: "Erlang",
1516
};

src/engines/go.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ export const go: RegexEngine = {
1010
links: { "re2 syntax": "http://code.google.com/p/re2/wiki/Syntax" },
1111
logo_icon: "https://www.vectorlogo.zone/logos/golang/golang-icon.svg",
1212
logo_ar21: "https://www.vectorlogo.zone/logos/golang/golang-ar21.svg",
13-
nodeping_url:
14-
"https://nodeping.com/reports/checks/cvdmibs4-lyts-48bp-8l93-a4y3ihfrkncc",
13+
nodeping_id: "cvdmibs4-lyts-48bp-8l93-a4y3ihfrkncc",
1514
options: [
1615
{
1716
code: "posix",

src/engines/haskell.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@ import type { RegexEngine } from "./RegexEngine";
33
export const haskell: RegexEngine = {
44
description: "Text.Regex",
55
enabled: false,
6-
level: "alpha",
6+
level: "notimplemented",
77
handle: "haskell",
88
help_label: "Text.Regex",
99
help_url:
1010
"http://hackage.haskell.org/package/regex-compat-0.95.1/docs/Text-Regex.html",
11-
nodeping_url:
12-
"https://nodeping.com/reports/checks/kt5c4lp3-80p5-4rzk-8nq2-kqtyvq4p1a2d",
11+
nodeping_id: "kt5c4lp3-80p5-4rzk-8nq2-kqtyvq4p1a2d",
1312
links: {
1413
haskellwiki: "http://www.haskell.org/haskellwiki/Regular_expressions",
1514
"Text.Regex.TDFA":

src/engines/java.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ export const java: RegexEngine = {
1111
links: {},
1212
logo_icon: "https://www.vectorlogo.zone/logos/java/java-icon.svg",
1313
logo_ar21: "https://www.vectorlogo.zone/logos/java/java-ar21.svg",
14-
nodeping_url:
15-
"https://nodeping.com/reports/checks/m84cfhq9-gk43-44r5-8mih-syzu6vp45tuk",
14+
nodeping_id: "m84cfhq9-gk43-44r5-8mih-syzu6vp45tuk",
1615
notfound: ["kotlin"],
1716
options: [
1817
{

src/engines/mysql.ts

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const mysql: RegexEngine = {
1010
links: {},
1111
logo_icon: "https://www.vectorlogo.zone/logos/mysql/mysql-icon.svg",
1212
logo_ar21: "https://www.vectorlogo.zone/logos/mysql/mysql-ar21.svg",
13+
nodeping_id: "LATER",
1314
options: [],
1415
short_name: "MySQL",
1516
};

src/engines/nodejs.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ export const nodejs: RegexEngine = {
1717
},
1818
logo_ar21: "https://www.vectorlogo.zone/logos/nodejs/nodejs-ar21.svg",
1919
logo_icon: "https://www.vectorlogo.zone/logos/nodejs/nodejs-icon.svg",
20-
nodeping_url:
21-
"https://nodeping.com/reports/checks/9z4pmj0b-ve3m-42s9-8s07-6c53rlel69iy",
20+
nodeping_id: "9z4pmj0b-ve3m-42s9-8s07-6c53rlel69iy",
2221
notfound: ["javascript", "typescript"],
2322
options: [
2423
/*{

src/engines/perl.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ export const perl: RegexEngine = {
1313
},
1414
logo_icon: "https://www.vectorlogo.zone/logos/perl/perl-icon.svg",
1515
logo_ar21: "https://www.vectorlogo.zone/logos/perl/perl-ar21.svg",
16-
nodeping_url:
17-
"https://nodeping.com/reports/checks/gkh86985-3ae2-4w7b-8opi-il8pki62v1ie",
16+
nodeping_id: "gkh86985-3ae2-4w7b-8opi-il8pki62v1ie",
1817
options: [
1918
{
2019
code: "m",

src/engines/php.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ export const php: RegexEngine = {
66
help_label: "PCRE Overview",
77
help_url: "http://www.php.net/manual/en/book.pcre.php",
88
handle: "php",
9-
level: "alpha",
9+
level: "beta",
1010
links: {
1111
"Pattern Modifiers":
1212
"http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php",
1313
},
1414
logo_icon: "https://www.vectorlogo.zone/logos/php/php-icon.svg",
1515
logo_ar21: "https://www.vectorlogo.zone/logos/php/php-ar21.svg",
16-
nodeping_url:
17-
"https://nodeping.com/reports/checks/tv5izwkj-w7m2-4epk-8l9i-2z8y36h0o1n1",
16+
nodeping_id: "tv5izwkj-w7m2-4epk-8l9i-2z8y36h0o1n1",
1817
options: [
1918
{
2019
code: "i",

src/engines/postgresql.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ export const postgresql: RegexEngine = {
77
help_url:
88
"https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP",
99
handle: "postgresql",
10-
level: "alpha",
10+
level: "golden",
1111
links: {
1212
Options:
1313
"https://www.postgresql.org/docs/current/functions-matching.html#POSIX-EMBEDDED-OPTIONS-TABLE",
1414
},
1515
logo_icon: "https://www.vectorlogo.zone/logos/postgresql/postgresql-icon.svg",
1616
logo_ar21: "https://www.vectorlogo.zone/logos/postgresql/postgresql-ar21.svg",
17-
nodeping_url:
18-
"https://nodeping.com/reports/checks/43ytdj0n-jeiu-4zta-8ptc-wr7xmxztp5i8",
17+
nodeping_id: "43ytdj0n-jeiu-4zta-8ptc-wr7xmxztp5i8",
1918
options: [
2019
{ code: "b", description: "rest of RE is a BRE" },
2120
{

src/engines/python.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ export const python: RegexEngine = {
1010
links: {},
1111
logo_icon: "https://www.vectorlogo.zone/logos/python/python-icon.svg",
1212
logo_ar21: "https://www.vectorlogo.zone/logos/python/python-ar21.svg",
13-
nodeping_url:
14-
"https://nodeping.com/reports/checks/15fanuwl-znir-46nz-8542-fzsk4fg3zrvg",
13+
nodeping_id: "15fanuwl-znir-46nz-8542-fzsk4fg3zrvg",
1514
options: [
1615
//{ code: "A", legacyCode: "", numericCode: 256, description: "ASCII" },
1716
{

src/engines/ruby.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ export const ruby: RegexEngine = {
1212
},
1313
logo_icon: "https://www.vectorlogo.zone/logos/ruby-lang/ruby-lang-icon.svg",
1414
logo_ar21: "https://www.vectorlogo.zone/logos/ruby-lang/ruby-lang-ar21.svg",
15-
nodeping_url:
16-
"https://nodeping.com/reports/checks/e6od3bui-a5wl-49ff-8698-0cbtjc52rqw1",
15+
nodeping_id: "e6od3bui-a5wl-49ff-8698-0cbtjc52rqw1",
1716
options: [
1817
{
1918
code: "x",
@@ -38,5 +37,5 @@ export const ruby: RegexEngine = {
3837
short_name: "Ruby",
3938
source_url: "https://github.com/regexplanet/regexplanet-ruby",
4039
status_url: "https://ruby.gcr.regexplanet.com/status.json",
41-
test_url: "https://ruby.gcr.regexplanet.com/status.json",
40+
test_url: "https://ruby.gcr.regexplanet.com/test.json",
4241
};

src/engines/rust.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const rust: RegexEngine = {
66
help_label: "docs.rs",
77
help_url: "https://docs.rs/regex/latest/regex/",
88
handle: "rust",
9-
level: "alpha",
9+
level: "golden",
1010
links: {
1111
"Struct regex::Regex":
1212
"https://docs.rs/regex/latest/regex/struct.Regex.html",
@@ -15,8 +15,7 @@ export const rust: RegexEngine = {
1515
},
1616
logo_icon: "https://www.vectorlogo.zone/logos/rust-lang/rust-lang-icon.svg",
1717
logo_ar21: "https://www.vectorlogo.zone/logos/rust-lang/rust-lang-ar21.svg",
18-
nodeping_url:
19-
"https://nodeping.com/reports/checks/ujhwq5rz-ozzd-4uj7-8jth-4osxplhcw4j2",
18+
nodeping_id: "ujhwq5rz-ozzd-4uj7-8jth-4osxplhcw4j2",
2019
options: [],
2120
option_notes: `Rust supports options in the regex pattern and with separate calls to <a href="https://docs.rs/regex/latest/regex/struct.RegexBuilder.html">RegexBuilder</a>.`,
2221
short_name: "Rust",

src/engines/swift.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ export const swift: RegexEngine = {
1212
},
1313
logo_icon: "https://www.vectorlogo.zone/logos/swift/swift-icon.svg",
1414
logo_ar21: "https://www.vectorlogo.zone/logos/swift/swift-ar21.svg",
15-
nodeping_url:
16-
"https://nodeping.com/reports/checks/sd8rr8e8-0vw2-4cur-87tg-tnm9et6pc6w5",
15+
nodeping_id: "sd8rr8e8-0vw2-4cur-87tg-tnm9et6pc6w5",
1716
options: [
1817
{
1918
code: "anchorsMatchLineEndings",

src/engines/tcl.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ export const tcl: RegexEngine = {
1010
links: {},
1111
logo_icon: "https://www.vectorlogo.zone/logos/tcl/tcl-icon.svg",
1212
logo_ar21: "https://www.vectorlogo.zone/logos/tcl/tcl-ar21.svg",
13-
nodeping_url:
14-
"https://nodeping.com/reports/checks/kk4u50sh-kave-4wwx-8f2i-74tgnum8szwa",
13+
nodeping_id: "kk4u50sh-kave-4wwx-8f2i-74tgnum8szwa",
1514
options: [],
1615
short_name: "tcl",
1716
source_url: "https://github.com/regexplanet/regexplanet-tcl",

src/engines/xregexp.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ export const xregexp: RegexEngine = {
1515
},
1616
logo_icon: "https://www.vectorlogo.zone/logos/xregexp/xregexp-icon.svg",
1717
logo_ar21: "https://www.vectorlogo.zone/logos/xregexp/xregexp-ar21.svg",
18-
nodeping_url:
19-
"https://nodeping.com/reports/checks/7ysrbqyo-38sg-44au-8j78-g6fpipl8sxho",
18+
nodeping_id: "7ysrbqyo-38sg-44au-8j78-g6fpipl8sxho",
2019
notfound: ["javascript", "typescript"],
2120
options: [
2221
{

src/types/EngineStatus.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
type EngineStatus = {
22
success: boolean;
33
version?: string;
4+
detail?: string;
45
time_millis?: number;
56
err?: Error;
67
};

0 commit comments

Comments
 (0)