@shapeshift-labs/frontier-lang-parser 0.3.67 → 0.3.68
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/dist/operations.js +5 -3
- package/package.json +1 -1
package/dist/operations.js
CHANGED
|
@@ -133,16 +133,18 @@ function readAuthoredLines(block) {
|
|
|
133
133
|
|
|
134
134
|
function idFrom(text, fallback) { return /@id\(\s*["']([^"']+)["']\s*\)/.exec(text)?.[1] ?? fallback; }
|
|
135
135
|
function nameFrom(header) { return /^([A-Za-z_$][\w$]*)/.exec(header)?.[1] ?? 'SemanticOperations'; }
|
|
136
|
-
function readInlineWord(label, text) { return new RegExp('(?:^|\\s)' + label + '\\s+([^\\s,]+)').exec(text)?.[1]?.trim(); }
|
|
136
|
+
function readInlineWord(label, text) { return new RegExp('(?:^|\\s)' + label + '\\s+([^\\s,]+)').exec(unquotedText(text))?.[1]?.trim(); }
|
|
137
137
|
function readInlineQuoted(label, text) { return new RegExp("(?:^|\\s)" + label + "\\s+[\"']([^\"']+)[\"']").exec(text)?.[1]?.trim(); }
|
|
138
|
-
function readInlineFlag(label, text) { return new RegExp('(?:^|\\s)' + label + '(?:\\s|$)').test(text) || undefined; }
|
|
138
|
+
function readInlineFlag(label, text) { return new RegExp('(?:^|\\s)' + label + '(?:\\s|$)').test(unquotedText(text)) || undefined; }
|
|
139
139
|
function readInlineList(text, ...labels) {
|
|
140
|
+
const source = unquotedText(text);
|
|
140
141
|
for (const label of labels) {
|
|
141
|
-
const value = new RegExp('(?:^|\\s)' + label + '\\s+([^\\s]+)').exec(
|
|
142
|
+
const value = new RegExp('(?:^|\\s)' + label + '\\s+([^\\s]+)').exec(source)?.[1]?.trim();
|
|
142
143
|
if (value) return value.split(/[|,]/).map((item) => item.trim()).filter(Boolean);
|
|
143
144
|
}
|
|
144
145
|
return undefined;
|
|
145
146
|
}
|
|
147
|
+
function unquotedText(text) { return text.replace(/"[^"]*"|'[^']*'/g, (match) => ' '.repeat(match.length)); }
|
|
146
148
|
function cleanRecord(record) {
|
|
147
149
|
return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined && (!Array.isArray(value) || value.length > 0)));
|
|
148
150
|
}
|