@nejs/basic-extensions 2.2.0 → 2.3.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 +143 -65
- package/dist/@nejs/{basic-extensions.bundle.2.1.0.js → basic-extensions.bundle.2.2.1.js} +5 -5
- package/dist/@nejs/basic-extensions.bundle.2.2.1.js.map +7 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stringextensions.d.ts +13 -0
- package/dist/cjs/stringextensions.js +129 -1
- package/dist/cjs/stringextensions.js.map +1 -1
- package/dist/mjs/index.js +2 -1
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/stringextensions.d.ts +13 -0
- package/dist/mjs/stringextensions.js +128 -0
- package/dist/mjs/stringextensions.js.map +1 -1
- package/docs/index.html +618 -175
- package/package.json +3 -3
- package/src/index.js +6 -5
- package/src/stringextensions.js +139 -0
- package/tests/arrayextensions.test.js +54 -0
- package/tests/stringextensions.test.js +60 -0
- package/dist/@nejs/basic-extensions.bundle.2.1.0.js.map +0 -7
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";;;AAAA,mEAAyF;AACzF,+DAAmF;AACnF,yDAA2D;AAC3D,yDAA2D;AAC3D,iEAA0D;AAC1D,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,17 @@
|
|
|
7
7
|
* utility functions.
|
|
8
8
|
*/
|
|
9
9
|
export const StringExtensions: Patch;
|
|
10
|
+
/**
|
|
11
|
+
* `StringPrototypeExtensions` provides a set of utility methods that are
|
|
12
|
+
* added to the `String` prototype. This allows all string instances to
|
|
13
|
+
* access new functionality directly, enhancing their capabilities beyond
|
|
14
|
+
* the standard `String` class methods. These extensions are applied using
|
|
15
|
+
* the `Patch` class from '@nejs/extension', ensuring that they do not
|
|
16
|
+
* interfere with the global namespace or existing properties.
|
|
17
|
+
*
|
|
18
|
+
* The extensions include methods for extracting substrings based on
|
|
19
|
+
* specific tokens, checking the presence of certain patterns, and more,
|
|
20
|
+
* making string manipulation tasks more convenient and expressive.
|
|
21
|
+
*/
|
|
22
|
+
export const StringPrototypeExtensions: Patch;
|
|
10
23
|
import { Patch } from '@nejs/extension';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StringExtensions = void 0;
|
|
3
|
+
exports.StringPrototypeExtensions = exports.StringExtensions = void 0;
|
|
4
4
|
const extension_1 = require("@nejs/extension");
|
|
5
|
+
const parenthesisPair = ['(', ')'];
|
|
5
6
|
/**
|
|
6
7
|
* `StringExtensions` is a patch for the JavaScript built-in `String` class. It
|
|
7
8
|
* adds utility methods to the `String` class without modifying the global namespace
|
|
@@ -24,5 +25,132 @@ exports.StringExtensions = new extension_1.Patch(String, {
|
|
|
24
25
|
}
|
|
25
26
|
return false;
|
|
26
27
|
},
|
|
28
|
+
/**
|
|
29
|
+
* A getter property that returns a pair of parentheses as an array.
|
|
30
|
+
* This property can be used when operations require a clear distinction
|
|
31
|
+
* between the opening and closing parentheses, such as parsing or
|
|
32
|
+
* matching balanced expressions in strings.
|
|
33
|
+
*
|
|
34
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
35
|
+
* opening parenthesis '(' as the first element, and the closing parenthesis
|
|
36
|
+
* ')' as the second element.
|
|
37
|
+
*/
|
|
38
|
+
get parenthesisPair() {
|
|
39
|
+
return ['(', ')'];
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* A getter property that returns a pair of square brackets as an array.
|
|
43
|
+
* This property is particularly useful for operations that require a clear
|
|
44
|
+
* distinction between the opening and closing square brackets, such as
|
|
45
|
+
* parsing arrays in strings or matching balanced expressions within
|
|
46
|
+
* square brackets.
|
|
47
|
+
*
|
|
48
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
49
|
+
* opening square bracket '[' as the first element, and the closing square
|
|
50
|
+
* bracket ']' as the second element.
|
|
51
|
+
*/
|
|
52
|
+
get squareBracketsPair() {
|
|
53
|
+
return ['[', ']'];
|
|
54
|
+
},
|
|
55
|
+
/**
|
|
56
|
+
* A getter property that returns a pair of curly brackets as an array.
|
|
57
|
+
* This property is particularly useful for operations that require a clear
|
|
58
|
+
* distinction between the opening and closing curly brackets, such as
|
|
59
|
+
* parsing objects in strings or matching balanced expressions within
|
|
60
|
+
* curly brackets. The returned array consists of the opening curly bracket
|
|
61
|
+
* '{' as the first element, and the closing curly bracket '}' as the
|
|
62
|
+
* second element.
|
|
63
|
+
*
|
|
64
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
65
|
+
* opening curly bracket '{' as the first element, and the closing curly
|
|
66
|
+
* bracket '}' as the second element.
|
|
67
|
+
*/
|
|
68
|
+
get curlyBracketsPair() {
|
|
69
|
+
return ['{', '}'];
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* `StringPrototypeExtensions` provides a set of utility methods that are
|
|
74
|
+
* added to the `String` prototype. This allows all string instances to
|
|
75
|
+
* access new functionality directly, enhancing their capabilities beyond
|
|
76
|
+
* the standard `String` class methods. These extensions are applied using
|
|
77
|
+
* the `Patch` class from '@nejs/extension', ensuring that they do not
|
|
78
|
+
* interfere with the global namespace or existing properties.
|
|
79
|
+
*
|
|
80
|
+
* The extensions include methods for extracting substrings based on
|
|
81
|
+
* specific tokens, checking the presence of certain patterns, and more,
|
|
82
|
+
* making string manipulation tasks more convenient and expressive.
|
|
83
|
+
*/
|
|
84
|
+
exports.StringPrototypeExtensions = new extension_1.Patch(String.prototype, {
|
|
85
|
+
/**
|
|
86
|
+
* Extracts a substring from the current string, starting at a given offset
|
|
87
|
+
* and bounded by specified opening and closing tokens. This method is
|
|
88
|
+
* particularly useful for parsing nested structures or quoted strings,
|
|
89
|
+
* where the level of nesting or the presence of escape characters must
|
|
90
|
+
* be considered.
|
|
91
|
+
*
|
|
92
|
+
* @param {number} offset The position in the string from which to start the
|
|
93
|
+
* search for the substring.
|
|
94
|
+
* @param {[string, string]} tokens An array containing two strings: the
|
|
95
|
+
* opening and closing tokens that define the boundaries of the substring
|
|
96
|
+
* to be extracted.
|
|
97
|
+
* @returns {Object} An object with two properties: `extracted`, the
|
|
98
|
+
* extracted substring, and `newOffset`, the position in the original
|
|
99
|
+
* string immediately after the end of the extracted substring. If no
|
|
100
|
+
* substring is found, `extracted` is `null` and `newOffset` is the same
|
|
101
|
+
* as the input offset.
|
|
102
|
+
*/
|
|
103
|
+
extractSubstring(offset = 0, tokens = parenthesisPair) {
|
|
104
|
+
let [openToken, closeToken] = tokens;
|
|
105
|
+
let depth = 0;
|
|
106
|
+
let start = -1;
|
|
107
|
+
let end = -1;
|
|
108
|
+
let leadingToken = '';
|
|
109
|
+
let firstToken = 0;
|
|
110
|
+
for (let i = offset; i < this.length; i++) {
|
|
111
|
+
const char = this[i];
|
|
112
|
+
if (char === openToken) {
|
|
113
|
+
depth++;
|
|
114
|
+
if (start === -1)
|
|
115
|
+
start = i;
|
|
116
|
+
}
|
|
117
|
+
else if (char === closeToken) {
|
|
118
|
+
depth--;
|
|
119
|
+
if (depth === 0) {
|
|
120
|
+
end = i;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
let lRange = [
|
|
126
|
+
Math.max(0, start - 100),
|
|
127
|
+
start
|
|
128
|
+
];
|
|
129
|
+
let leading = [...this.substring(lRange[0], lRange[1])].reverse().join('');
|
|
130
|
+
let reversedLeadingToken;
|
|
131
|
+
try {
|
|
132
|
+
reversedLeadingToken = /([^ \,\"\'\`]+)/.exec(leading)[1] ?? '';
|
|
133
|
+
leadingToken = [...reversedLeadingToken].reverse().join('');
|
|
134
|
+
}
|
|
135
|
+
catch (ignored) { }
|
|
136
|
+
if (start !== -1 && end !== -1) {
|
|
137
|
+
const sliceRange = [start, end + 1];
|
|
138
|
+
const extracted = this.slice(sliceRange[0], sliceRange[1]);
|
|
139
|
+
return {
|
|
140
|
+
extracted,
|
|
141
|
+
range: [start, end],
|
|
142
|
+
newOffset: end + 1,
|
|
143
|
+
leadingToken,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return {
|
|
148
|
+
extracted: null,
|
|
149
|
+
range: [start, end],
|
|
150
|
+
newOffset: offset,
|
|
151
|
+
leadingToken,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
},
|
|
27
155
|
});
|
|
28
156
|
//# sourceMappingURL=stringextensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringextensions.js","sourceRoot":"","sources":["../../src/stringextensions.js"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC;;;;;;;GAOG;AACU,QAAA,gBAAgB,GAAG,IAAI,iBAAK,CAAC,MAAM,EAAE;IAChD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"stringextensions.js","sourceRoot":"","sources":["../../src/stringextensions.js"],"names":[],"mappings":"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"}
|
package/dist/mjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { ObjectExtensions, ObjectPrototypeExtensions } from './objectextensions.
|
|
|
3
3
|
import { MapPrototypeExtensions } from './mapextensions.js';
|
|
4
4
|
import { SetPrototypeExtensions } from './setextensions.js';
|
|
5
5
|
import { ReflectExtensions } from './reflectextensions.js';
|
|
6
|
-
import { StringExtensions } from './stringextensions.js';
|
|
6
|
+
import { StringExtensions, StringPrototypeExtensions } from './stringextensions.js';
|
|
7
7
|
import { SymbolExtensions } from './symbolextensions.js';
|
|
8
8
|
import { ArrayPrototypeExtensions } from './arrayextensions.js';
|
|
9
9
|
import { DescriptorExtensions, Descriptor } from './newClasses/descriptor.js';
|
|
@@ -22,6 +22,7 @@ const StaticPatches = [
|
|
|
22
22
|
];
|
|
23
23
|
const InstancePatches = [
|
|
24
24
|
[Object.prototype, ObjectPrototypeExtensions, Object.name],
|
|
25
|
+
[String.prototype, StringPrototypeExtensions, String.name],
|
|
25
26
|
[Function.prototype, FunctionPrototypeExtensions, Function.name],
|
|
26
27
|
[Array.prototype, ArrayPrototypeExtensions, Array.name],
|
|
27
28
|
[Map.prototype, MapPrototypeExtensions, Map.name],
|
package/dist/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,17 @@
|
|
|
7
7
|
* utility functions.
|
|
8
8
|
*/
|
|
9
9
|
export const StringExtensions: Patch;
|
|
10
|
+
/**
|
|
11
|
+
* `StringPrototypeExtensions` provides a set of utility methods that are
|
|
12
|
+
* added to the `String` prototype. This allows all string instances to
|
|
13
|
+
* access new functionality directly, enhancing their capabilities beyond
|
|
14
|
+
* the standard `String` class methods. These extensions are applied using
|
|
15
|
+
* the `Patch` class from '@nejs/extension', ensuring that they do not
|
|
16
|
+
* interfere with the global namespace or existing properties.
|
|
17
|
+
*
|
|
18
|
+
* The extensions include methods for extracting substrings based on
|
|
19
|
+
* specific tokens, checking the presence of certain patterns, and more,
|
|
20
|
+
* making string manipulation tasks more convenient and expressive.
|
|
21
|
+
*/
|
|
22
|
+
export const StringPrototypeExtensions: Patch;
|
|
10
23
|
import { Patch } from '@nejs/extension';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Patch } from '@nejs/extension';
|
|
2
|
+
const parenthesisPair = ['(', ')'];
|
|
2
3
|
/**
|
|
3
4
|
* `StringExtensions` is a patch for the JavaScript built-in `String` class. It
|
|
4
5
|
* adds utility methods to the `String` class without modifying the global namespace
|
|
@@ -21,5 +22,132 @@ export const StringExtensions = new Patch(String, {
|
|
|
21
22
|
}
|
|
22
23
|
return false;
|
|
23
24
|
},
|
|
25
|
+
/**
|
|
26
|
+
* A getter property that returns a pair of parentheses as an array.
|
|
27
|
+
* This property can be used when operations require a clear distinction
|
|
28
|
+
* between the opening and closing parentheses, such as parsing or
|
|
29
|
+
* matching balanced expressions in strings.
|
|
30
|
+
*
|
|
31
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
32
|
+
* opening parenthesis '(' as the first element, and the closing parenthesis
|
|
33
|
+
* ')' as the second element.
|
|
34
|
+
*/
|
|
35
|
+
get parenthesisPair() {
|
|
36
|
+
return ['(', ')'];
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* A getter property that returns a pair of square brackets as an array.
|
|
40
|
+
* This property is particularly useful for operations that require a clear
|
|
41
|
+
* distinction between the opening and closing square brackets, such as
|
|
42
|
+
* parsing arrays in strings or matching balanced expressions within
|
|
43
|
+
* square brackets.
|
|
44
|
+
*
|
|
45
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
46
|
+
* opening square bracket '[' as the first element, and the closing square
|
|
47
|
+
* bracket ']' as the second element.
|
|
48
|
+
*/
|
|
49
|
+
get squareBracketsPair() {
|
|
50
|
+
return ['[', ']'];
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* A getter property that returns a pair of curly brackets as an array.
|
|
54
|
+
* This property is particularly useful for operations that require a clear
|
|
55
|
+
* distinction between the opening and closing curly brackets, such as
|
|
56
|
+
* parsing objects in strings or matching balanced expressions within
|
|
57
|
+
* curly brackets. The returned array consists of the opening curly bracket
|
|
58
|
+
* '{' as the first element, and the closing curly bracket '}' as the
|
|
59
|
+
* second element.
|
|
60
|
+
*
|
|
61
|
+
* @returns {[string, string]} An array containing a pair of strings: the
|
|
62
|
+
* opening curly bracket '{' as the first element, and the closing curly
|
|
63
|
+
* bracket '}' as the second element.
|
|
64
|
+
*/
|
|
65
|
+
get curlyBracketsPair() {
|
|
66
|
+
return ['{', '}'];
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* `StringPrototypeExtensions` provides a set of utility methods that are
|
|
71
|
+
* added to the `String` prototype. This allows all string instances to
|
|
72
|
+
* access new functionality directly, enhancing their capabilities beyond
|
|
73
|
+
* the standard `String` class methods. These extensions are applied using
|
|
74
|
+
* the `Patch` class from '@nejs/extension', ensuring that they do not
|
|
75
|
+
* interfere with the global namespace or existing properties.
|
|
76
|
+
*
|
|
77
|
+
* The extensions include methods for extracting substrings based on
|
|
78
|
+
* specific tokens, checking the presence of certain patterns, and more,
|
|
79
|
+
* making string manipulation tasks more convenient and expressive.
|
|
80
|
+
*/
|
|
81
|
+
export const StringPrototypeExtensions = new Patch(String.prototype, {
|
|
82
|
+
/**
|
|
83
|
+
* Extracts a substring from the current string, starting at a given offset
|
|
84
|
+
* and bounded by specified opening and closing tokens. This method is
|
|
85
|
+
* particularly useful for parsing nested structures or quoted strings,
|
|
86
|
+
* where the level of nesting or the presence of escape characters must
|
|
87
|
+
* be considered.
|
|
88
|
+
*
|
|
89
|
+
* @param {number} offset The position in the string from which to start the
|
|
90
|
+
* search for the substring.
|
|
91
|
+
* @param {[string, string]} tokens An array containing two strings: the
|
|
92
|
+
* opening and closing tokens that define the boundaries of the substring
|
|
93
|
+
* to be extracted.
|
|
94
|
+
* @returns {Object} An object with two properties: `extracted`, the
|
|
95
|
+
* extracted substring, and `newOffset`, the position in the original
|
|
96
|
+
* string immediately after the end of the extracted substring. If no
|
|
97
|
+
* substring is found, `extracted` is `null` and `newOffset` is the same
|
|
98
|
+
* as the input offset.
|
|
99
|
+
*/
|
|
100
|
+
extractSubstring(offset = 0, tokens = parenthesisPair) {
|
|
101
|
+
let [openToken, closeToken] = tokens;
|
|
102
|
+
let depth = 0;
|
|
103
|
+
let start = -1;
|
|
104
|
+
let end = -1;
|
|
105
|
+
let leadingToken = '';
|
|
106
|
+
let firstToken = 0;
|
|
107
|
+
for (let i = offset; i < this.length; i++) {
|
|
108
|
+
const char = this[i];
|
|
109
|
+
if (char === openToken) {
|
|
110
|
+
depth++;
|
|
111
|
+
if (start === -1)
|
|
112
|
+
start = i;
|
|
113
|
+
}
|
|
114
|
+
else if (char === closeToken) {
|
|
115
|
+
depth--;
|
|
116
|
+
if (depth === 0) {
|
|
117
|
+
end = i;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
let lRange = [
|
|
123
|
+
Math.max(0, start - 100),
|
|
124
|
+
start
|
|
125
|
+
];
|
|
126
|
+
let leading = [...this.substring(lRange[0], lRange[1])].reverse().join('');
|
|
127
|
+
let reversedLeadingToken;
|
|
128
|
+
try {
|
|
129
|
+
reversedLeadingToken = /([^ \,\"\'\`]+)/.exec(leading)[1] ?? '';
|
|
130
|
+
leadingToken = [...reversedLeadingToken].reverse().join('');
|
|
131
|
+
}
|
|
132
|
+
catch (ignored) { }
|
|
133
|
+
if (start !== -1 && end !== -1) {
|
|
134
|
+
const sliceRange = [start, end + 1];
|
|
135
|
+
const extracted = this.slice(sliceRange[0], sliceRange[1]);
|
|
136
|
+
return {
|
|
137
|
+
extracted,
|
|
138
|
+
range: [start, end],
|
|
139
|
+
newOffset: end + 1,
|
|
140
|
+
leadingToken,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
return {
|
|
145
|
+
extracted: null,
|
|
146
|
+
range: [start, end],
|
|
147
|
+
newOffset: offset,
|
|
148
|
+
leadingToken,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
},
|
|
24
152
|
});
|
|
25
153
|
//# sourceMappingURL=stringextensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringextensions.js","sourceRoot":"","sources":["../../src/stringextensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;IAChD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK;QACZ,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"stringextensions.js","sourceRoot":"","sources":["../../src/stringextensions.js"],"names":[],"mappings":"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"}
|