pacc 1.0.1 → 1.0.3

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 CHANGED
@@ -21,13 +21,13 @@ propetty path utils
21
21
 
22
22
  * [AttributeDefinition](#attributedefinition)
23
23
  * [Properties](#properties)
24
- * [tokens](#tokens)
25
- * [Parameters](#parameters)
26
24
  * [setAttribute](#setattribute)
27
- * [Parameters](#parameters-1)
25
+ * [Parameters](#parameters)
28
26
  * [getAttribute](#getattribute)
29
- * [Parameters](#parameters-2)
27
+ * [Parameters](#parameters-1)
30
28
  * [getAttributeAndOperator](#getattributeandoperator)
29
+ * [Parameters](#parameters-2)
30
+ * [tokens](#tokens)
31
31
  * [Parameters](#parameters-3)
32
32
 
33
33
  ## AttributeDefinition
@@ -47,14 +47,6 @@ Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Globa
47
47
  * `get` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** get the value can be used to calculate default values
48
48
  * `env` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?** environment variable use to provide the value
49
49
 
50
- ## tokens
51
-
52
- Split property path into tokens
53
-
54
- ### Parameters
55
-
56
- * `string` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
57
-
58
50
  ## setAttribute
59
51
 
60
52
  Set Object attribute.
@@ -91,6 +83,14 @@ The name may be a property path like 'a.b.c <='.
91
83
 
92
84
  Returns **\[any, [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)]** value associated with the given property name
93
85
 
86
+ ## tokens
87
+
88
+ Split property path into tokens
89
+
90
+ ### Parameters
91
+
92
+ * `string` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
93
+
94
94
  # install
95
95
 
96
96
  With [npm](http://npmjs.org) do:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pacc",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -29,7 +29,7 @@
29
29
  "browser-ava": "^2.0.0",
30
30
  "c8": "^8.0.1",
31
31
  "documentation": "^14.0.2",
32
- "semantic-release": "^22.0.6"
32
+ "semantic-release": "^22.0.7"
33
33
  },
34
34
  "repository": {
35
35
  "type": "git",
package/src/attribute.mjs CHANGED
@@ -13,180 +13,9 @@
13
13
  * @property {string[]|string} [env] environment variable use to provide the value
14
14
  */
15
15
 
16
- /**
17
- * Split property path into tokens
18
- * @generator
19
- * @param {string} string
20
- * @yields {string}
21
- */
22
- export function* tokens(string) {
23
- let state, buffer;
24
-
25
- for (const c of string) {
26
- switch (state) {
27
- case "string-escaping":
28
- const esc = {
29
- "\\": "\\",
30
- b: "\b",
31
- f: "\f",
32
- n: "\n",
33
- r: "\r",
34
- t: "\t"
35
- };
36
- buffer += esc[c];
37
- state = "string";
38
- continue;
39
- }
40
-
41
- switch (c) {
42
- case "\t":
43
- case " ":
44
- switch (state) {
45
- case undefined:
46
- break;
47
- case "string":
48
- buffer += c;
49
- break;
50
- case "identifier":
51
- yield buffer;
52
- buffer = "";
53
- state = undefined;
54
- break;
55
- default:
56
- yield state;
57
- state = undefined;
58
- }
59
- break;
60
-
61
- case "\\":
62
- switch (state) {
63
- case "string":
64
- state = "string-escaping";
65
- break;
66
- }
67
- break;
68
- case '"':
69
- case "'":
70
- switch (state) {
71
- case undefined:
72
- buffer = "";
73
- state = "string";
74
- break;
75
- case "string":
76
- yield buffer;
77
- state = undefined;
78
- break;
79
- case "identifier":
80
- yield buffer;
81
- buffer = "";
82
- state = "string";
83
- break;
84
- default:
85
- yield state;
86
- buffer = "";
87
- state = "string";
88
- }
89
- break;
90
- case "!":
91
- case ">":
92
- case "<":
93
- switch (state) {
94
- case undefined:
95
- state = c;
96
- break;
97
- case "string":
98
- buffer += c;
99
- break;
100
- case "identifier":
101
- yield buffer;
102
- state = c;
103
- break;
104
- default:
105
- yield state;
106
- state = c;
107
- }
108
- break;
109
-
110
- case "=":
111
- switch (state) {
112
- case undefined:
113
- state = c;
114
- break;
115
- case "string":
116
- buffer += c;
117
- break;
118
- case "identifier":
119
- yield buffer;
120
- state = c;
121
- break;
122
- default:
123
- state += c;
124
- }
125
- break;
126
- case ".":
127
- case "+":
128
- case "-":
129
- case "*":
130
- case "/":
131
- case "(":
132
- case ")":
133
- case "[":
134
- case "]":
135
- switch (state) {
136
- case undefined:
137
- state = c;
138
- break;
139
- case "string":
140
- buffer += c;
141
- break;
142
- case "identifier":
143
- yield buffer;
144
- state = c;
145
- break;
146
- default:
147
- yield state;
148
- state = c;
149
- }
150
- break;
151
- default:
152
- switch (state) {
153
- case undefined:
154
- buffer = c;
155
- state = "identifier";
156
- break;
157
- case "string":
158
- case "identifier":
159
- buffer += c;
160
- break;
161
- default:
162
- if (
163
- (c >= "a" && c <= "z") ||
164
- (c >= "A" && c <= "Z") ||
165
- (c >= "0" && c <= "9") ||
166
- c === "_"
167
- ) {
168
- yield state;
169
- state = "identifier";
170
- buffer = c;
171
- } else {
172
- state += c;
173
- }
174
- }
175
- }
176
- }
16
+ import { tokens } from "./tokens.mjs";
177
17
 
178
- switch (state) {
179
- case undefined:
180
- break;
181
- case "string":
182
- throw new Error("unterminated string");
183
- case "identifier":
184
- yield buffer;
185
- break;
186
- default:
187
- yield state;
188
- }
189
- }
18
+ export { tokens };
190
19
 
191
20
  /**
192
21
  * Set Object attribute.
@@ -201,8 +30,6 @@ export function setAttribute(object, expression, value) {
201
30
 
202
31
  for (const token of tokens(expression)) {
203
32
  switch (token) {
204
- case ">":
205
- case "<":
206
33
  case ".":
207
34
  case "[":
208
35
  case "]":
package/src/tokens.mjs ADDED
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Split property path into tokens
3
+ * @generator
4
+ * @param {string} string
5
+ * @yields {string}
6
+ */
7
+ export function* tokens(string) {
8
+ let state, buffer;
9
+
10
+ for (const c of string) {
11
+ switch (state) {
12
+ case "string-escaping":
13
+ const esc = {
14
+ "\\": "\\",
15
+ b: "\b",
16
+ f: "\f",
17
+ n: "\n",
18
+ r: "\r",
19
+ t: "\t"
20
+ };
21
+ buffer += esc[c];
22
+ state = "string";
23
+ continue;
24
+ }
25
+
26
+ switch (c) {
27
+ case "\t":
28
+ case " ":
29
+ switch (state) {
30
+ case undefined:
31
+ break;
32
+ case "string":
33
+ buffer += c;
34
+ break;
35
+ case "identifier":
36
+ yield buffer;
37
+ buffer = "";
38
+ state = undefined;
39
+ break;
40
+ default:
41
+ yield state;
42
+ state = undefined;
43
+ }
44
+ break;
45
+
46
+ case "\\":
47
+ switch (state) {
48
+ case "string":
49
+ state = "string-escaping";
50
+ break;
51
+ }
52
+ break;
53
+ case '"':
54
+ case "'":
55
+ switch (state) {
56
+ case undefined:
57
+ buffer = "";
58
+ state = "string";
59
+ break;
60
+ case "string":
61
+ yield buffer;
62
+ state = undefined;
63
+ break;
64
+ case "identifier":
65
+ yield buffer;
66
+ buffer = "";
67
+ state = "string";
68
+ break;
69
+ default:
70
+ yield state;
71
+ buffer = "";
72
+ state = "string";
73
+ }
74
+ break;
75
+ case "!":
76
+ case ">":
77
+ case "<":
78
+ case "&":
79
+ case "|":
80
+ switch (state) {
81
+ case "&":
82
+ case "|":
83
+ if (state === c) {
84
+ yield state + c;
85
+ state = undefined;
86
+ } else {
87
+ yield state;
88
+ state = c;
89
+ }
90
+ break;
91
+ case undefined:
92
+ state = c;
93
+ break;
94
+ case "string":
95
+ buffer += c;
96
+ break;
97
+ case "identifier":
98
+ yield buffer;
99
+ state = c;
100
+ break;
101
+ default:
102
+ yield state;
103
+ state = c;
104
+ }
105
+ break;
106
+
107
+ case "=":
108
+ switch (state) {
109
+ case undefined:
110
+ state = c;
111
+ break;
112
+ case "string":
113
+ buffer += c;
114
+ break;
115
+ case "identifier":
116
+ yield buffer;
117
+ state = c;
118
+ break;
119
+ default:
120
+ state += c;
121
+ }
122
+ break;
123
+ case ":":
124
+ case ";":
125
+ case ",":
126
+ case ".":
127
+ case "+":
128
+ case "-":
129
+ case "*":
130
+ case "/":
131
+ case "(":
132
+ case ")":
133
+ case "[":
134
+ case "]":
135
+ case "{":
136
+ case "}":
137
+ switch (state) {
138
+ case undefined:
139
+ state = c;
140
+ break;
141
+ case "string":
142
+ buffer += c;
143
+ break;
144
+ case "identifier":
145
+ yield buffer;
146
+ state = c;
147
+ break;
148
+ default:
149
+ yield state;
150
+ state = c;
151
+ }
152
+ break;
153
+ default:
154
+ switch (state) {
155
+ case undefined:
156
+ buffer = c;
157
+ state = "identifier";
158
+ break;
159
+ case "string":
160
+ case "identifier":
161
+ buffer += c;
162
+ break;
163
+ default:
164
+ if (
165
+ (c >= "a" && c <= "z") ||
166
+ (c >= "A" && c <= "Z") ||
167
+ (c >= "0" && c <= "9") ||
168
+ c === "_"
169
+ ) {
170
+ yield state;
171
+ state = "identifier";
172
+ buffer = c;
173
+ } else {
174
+ state += c;
175
+ }
176
+ }
177
+ }
178
+ }
179
+
180
+ switch (state) {
181
+ case undefined:
182
+ break;
183
+ case "string":
184
+ throw new Error("unterminated string");
185
+ case "identifier":
186
+ yield buffer;
187
+ break;
188
+ default:
189
+ yield state;
190
+ }
191
+ }