@ptolemy2002/rgx 4.4.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/flag-transformer/accentInsensitive.d.ts +2 -0
- package/dist/flag-transformer/accentInsensitive.js +20 -0
- package/dist/flag-transformer/index.d.ts +2 -0
- package/dist/flag-transformer/index.js +18 -0
- package/dist/flag-transformer/register.d.ts +2 -0
- package/dist/flag-transformer/register.js +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -905,6 +905,48 @@ Unregisters a previously registered custom flag transformer by its key. If the k
|
|
|
905
905
|
#### Returns
|
|
906
906
|
- `void`: This function does not return a value.
|
|
907
907
|
|
|
908
|
+
### accentInsensitiveFlagTransformer
|
|
909
|
+
```typescript
|
|
910
|
+
const accentInsensitiveFlagTransformer: RegExpFlagTransformer
|
|
911
|
+
```
|
|
912
|
+
|
|
913
|
+
A pre-built `RegExpFlagTransformer` that makes a regex pattern accent-insensitive. It replaces any accentable characters (a, e, i, o, u and their uppercase equivalents) in the regex source with alternation groups that match both the base character and its accented variants. For example, `é` becomes `(e|é|è|ë|ê)`. The following accent mappings are supported:
|
|
914
|
+
|
|
915
|
+
- `a` / `A`: á, à, ä, â, ã / Á, À, Ä, Â, Ã
|
|
916
|
+
- `e` / `E`: é, è, ë, ê / É, È, Ë, Ê
|
|
917
|
+
- `i` / `I`: í, ì, ï, î / Í, Ì, Ï, Î
|
|
918
|
+
- `o` / `O`: ó, ò, ö, ô, õ / Ó, Ò, Ö, Ô, Õ
|
|
919
|
+
- `u` / `U`: ú, ù, ü, û / Ú, Ù, Ü, Û
|
|
920
|
+
|
|
921
|
+
#### Parameters
|
|
922
|
+
- `exp` (`RegExp`): The regular expression to transform.
|
|
923
|
+
|
|
924
|
+
#### Returns
|
|
925
|
+
- `RegExp`: A new `RegExp` with the same flags but with accentable characters in the source replaced by accent-insensitive alternation groups.
|
|
926
|
+
|
|
927
|
+
### registerCustomFlagTransformers
|
|
928
|
+
```typescript
|
|
929
|
+
function registerCustomFlagTransformers(): void
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
Registers the library's built-in custom flag transformers. Currently registers the following:
|
|
933
|
+
- `"a"` flag: `accentInsensitiveFlagTransformer` — makes patterns accent-insensitive.
|
|
934
|
+
|
|
935
|
+
This function is called automatically when importing from the main module entry point, so you typically do not need to call it yourself. It only needs to be called manually if you import directly from sub-modules.
|
|
936
|
+
|
|
937
|
+
#### Returns
|
|
938
|
+
- `void`: This function does not return a value.
|
|
939
|
+
|
|
940
|
+
### unregisterCustomFlagTransformers
|
|
941
|
+
```typescript
|
|
942
|
+
function unregisterCustomFlagTransformers(): void
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
Unregisters all built-in custom flag transformers that were registered by `registerCustomFlagTransformers`. Currently unregisters the `"a"` flag.
|
|
946
|
+
|
|
947
|
+
#### Returns
|
|
948
|
+
- `void`: This function does not return a value.
|
|
949
|
+
|
|
908
950
|
### applyFlagTransformers
|
|
909
951
|
```typescript
|
|
910
952
|
function applyFlagTransformers(regex: RegExp, flags: string, alreadyAppliedFlags?: string): RegExp
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accentInsensitiveFlagTransformer = void 0;
|
|
4
|
+
const accentPatterns = [
|
|
5
|
+
"(a|á|à|ä|â|ã)", "(A|Á|À|Ä|Â|Ã)",
|
|
6
|
+
"(e|é|è|ë|ê)", "(E|É|È|Ë|Ê)",
|
|
7
|
+
"(i|í|ì|ï|î)", "(I|Í|Ì|Ï|Î)",
|
|
8
|
+
"(o|ó|ò|ö|ô|õ)", "(O|Ó|Ò|Ö|Ô|Õ)",
|
|
9
|
+
"(u|ú|ù|ü|û)", "(U|Ú|Ù|Ü|Û)"
|
|
10
|
+
];
|
|
11
|
+
const accentInsensitiveFlagTransformer = function (exp) {
|
|
12
|
+
let source = exp.source;
|
|
13
|
+
const flags = exp.flags;
|
|
14
|
+
accentPatterns.forEach((pattern) => {
|
|
15
|
+
// Replace any of the characters in the pattern with the pattern itself
|
|
16
|
+
source = source.replaceAll(new RegExp(pattern, "g"), pattern);
|
|
17
|
+
});
|
|
18
|
+
return new RegExp(source, flags);
|
|
19
|
+
};
|
|
20
|
+
exports.accentInsensitiveFlagTransformer = accentInsensitiveFlagTransformer;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./accentInsensitive"), exports);
|
|
18
|
+
__exportStar(require("./register"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCustomFlagTransformers = registerCustomFlagTransformers;
|
|
4
|
+
exports.unregisterCustomFlagTransformers = unregisterCustomFlagTransformers;
|
|
5
|
+
const ExtRegExp_1 = require("../ExtRegExp");
|
|
6
|
+
const accentInsensitive_1 = require("./accentInsensitive");
|
|
7
|
+
function registerCustomFlagTransformers() {
|
|
8
|
+
(0, ExtRegExp_1.registerFlagTransformer)("a", accentInsensitive_1.accentInsensitiveFlagTransformer);
|
|
9
|
+
}
|
|
10
|
+
function unregisterCustomFlagTransformers() {
|
|
11
|
+
(0, ExtRegExp_1.unregisterFlagTransformer)("a");
|
|
12
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export * from "./resolve";
|
|
|
9
9
|
export * from "./concat";
|
|
10
10
|
export * from "./utils";
|
|
11
11
|
export * from "./ExtRegExp";
|
|
12
|
+
export * from "./flag-transformer";
|
|
12
13
|
export declare function rgxa(tokens: t.RGXToken[], flags?: string): ExtRegExp;
|
|
13
14
|
export default function rgx(flags?: string): (strings: TemplateStringsArray, ...tokens: t.RGXToken[]) => ExtRegExp;
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.rgxa = rgxa;
|
|
18
18
|
exports.default = rgx;
|
|
19
19
|
const class_1 = require("./class");
|
|
20
|
+
const flag_transformer_1 = require("./flag-transformer");
|
|
20
21
|
const concat_1 = require("./concat");
|
|
21
22
|
const internal_1 = require("./internal");
|
|
22
23
|
const ExtRegExp_1 = require("./ExtRegExp");
|
|
@@ -29,8 +30,11 @@ __exportStar(require("./resolve"), exports);
|
|
|
29
30
|
__exportStar(require("./concat"), exports);
|
|
30
31
|
__exportStar(require("./utils"), exports);
|
|
31
32
|
__exportStar(require("./ExtRegExp"), exports);
|
|
33
|
+
__exportStar(require("./flag-transformer"), exports);
|
|
32
34
|
// Call this for certain class methods to work correctly
|
|
33
35
|
(0, class_1.rgxClassInit)();
|
|
36
|
+
// Call this for our custom flags to work correctly
|
|
37
|
+
(0, flag_transformer_1.registerCustomFlagTransformers)();
|
|
34
38
|
function rgxa(tokens, flags = '') {
|
|
35
39
|
(0, ExtRegExp_1.assertValidRegexFlags)(flags);
|
|
36
40
|
const pattern = (0, concat_1.rgxConcat)(tokens);
|