From 9395d41f3a11360ef9931dc3364e8fa9f239ae4c Mon Sep 17 00:00:00 2001 From: ivojawer Date: Fri, 21 Jun 2024 17:59:07 -0300 Subject: [PATCH] filename validation + fqn parser --- src/parser.ts | 2 +- src/validator/index.ts | 2 +- src/wre/game.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/parser.ts b/src/parser.ts index 2bded46a..7ad53e69 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -187,7 +187,7 @@ export const Import: Parser = node(ImportNode)(() => export const name: Parser = lazy('identifier', () => regex(/[^\W\d]\w*/)) -export const packageName: Parser = regex(/\W[\W-]*/) +export const packageName: Parser = lazy('package identifier', () => regex(/[^\W\d][\w-]*/)) export const FullyQualifiedReference: Parser> = node(ReferenceNode)(() => obj({ name: packageName.or(name).sepBy1(key('.')).tieWith('.') }) diff --git a/src/validator/index.ts b/src/validator/index.ts index ed2c3c80..ee85f7e1 100644 --- a/src/validator/index.ts +++ b/src/validator/index.ts @@ -453,7 +453,7 @@ sourceMapForNodeName) export const shouldNotUseSpecialCharactersInName = error(node => !node.fileName || - node.fileName.match(/([A-Za-z.\-_/\d])/g)!.length === node.fileName.length + node.fileName.match(/([A-Za-z._/\d])/g)!.length === node.fileName.length && node.fileName.match(/\./g)!.length === 1 , valuesForFileName, sourceMapForNodeName) diff --git a/src/wre/game.ts b/src/wre/game.ts index f54301da..e56f64f2 100644 --- a/src/wre/game.ts +++ b/src/wre/game.ts @@ -181,4 +181,4 @@ const game: Natives = { }, } -export default game +export default game \ No newline at end of file