@malloydata/malloy-tag 0.0.343 → 0.0.345
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/parser.js +20 -16
- package/dist/parser.js.map +1 -1
- package/package.json +2 -2
- package/src/parser.ts +21 -19
package/dist/parser.js
CHANGED
|
@@ -99,36 +99,40 @@ function parseRefString(linkTo) {
|
|
|
99
99
|
}
|
|
100
100
|
return { ups, refPath };
|
|
101
101
|
}
|
|
102
|
-
function isRef(node) {
|
|
103
|
-
return 'linkTo' in node;
|
|
104
|
-
}
|
|
105
102
|
/**
|
|
106
|
-
* Convert a
|
|
103
|
+
* Convert a MOTLYPropertyValue (node or ref) into a Tag tree with parent links.
|
|
104
|
+
* Env references (@env.NAME) are resolved from process.env during hydration.
|
|
107
105
|
*/
|
|
108
|
-
function hydrate(
|
|
109
|
-
if (isRef(
|
|
110
|
-
const { ups, refPath } = parseRefString(
|
|
106
|
+
function hydrate(pv, parent) {
|
|
107
|
+
if ((0, motly_ts_parser_1.isRef)(pv)) {
|
|
108
|
+
const { ups, refPath } = parseRefString(pv.linkTo);
|
|
111
109
|
return new tags_1.RefTag(ups, refPath, parent);
|
|
112
110
|
}
|
|
113
111
|
const tag = new tags_1.Tag({}, parent);
|
|
114
|
-
if (
|
|
115
|
-
if (Array.isArray(
|
|
116
|
-
tag.eq =
|
|
112
|
+
if (pv.eq !== undefined) {
|
|
113
|
+
if (Array.isArray(pv.eq)) {
|
|
114
|
+
tag.eq = pv.eq.map(el => hydrate(el, tag));
|
|
115
|
+
}
|
|
116
|
+
else if ((0, motly_ts_parser_1.isEnvRef)(pv.eq)) {
|
|
117
|
+
const envVal = process.env[pv.eq.env];
|
|
118
|
+
if (envVal !== undefined) {
|
|
119
|
+
tag.eq = envVal;
|
|
120
|
+
}
|
|
117
121
|
}
|
|
118
|
-
else if (
|
|
119
|
-
tag.eq = new Date(
|
|
122
|
+
else if (pv.eq instanceof Date) {
|
|
123
|
+
tag.eq = new Date(pv.eq);
|
|
120
124
|
}
|
|
121
125
|
else {
|
|
122
|
-
tag.eq =
|
|
126
|
+
tag.eq = pv.eq;
|
|
123
127
|
}
|
|
124
128
|
}
|
|
125
|
-
if (
|
|
129
|
+
if (pv.properties !== undefined) {
|
|
126
130
|
tag.properties = {};
|
|
127
|
-
for (const [key, val] of Object.entries(
|
|
131
|
+
for (const [key, val] of Object.entries(pv.properties)) {
|
|
128
132
|
tag.properties[key] = hydrate(val, tag);
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
|
-
if (
|
|
135
|
+
if (pv.deleted) {
|
|
132
136
|
tag.deleted = true;
|
|
133
137
|
}
|
|
134
138
|
return tag;
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/malloy-tag",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.345",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"generate-flow": "ts-node ../../scripts/gen-flow.ts"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@malloydata/motly-ts-parser": "^0.0
|
|
31
|
+
"@malloydata/motly-ts-parser": "^0.3.0",
|
|
32
32
|
"assert": "^2.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
package/src/parser.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* SPDX-License-Identifier: MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type {MOTLYError,
|
|
7
|
-
import {MOTLYSession} from '@malloydata/motly-ts-parser';
|
|
6
|
+
import type {MOTLYError, MOTLYPropertyValue} from '@malloydata/motly-ts-parser';
|
|
7
|
+
import {MOTLYSession, isRef, isEnvRef} from '@malloydata/motly-ts-parser';
|
|
8
8
|
import {Tag, RefTag} from './tags';
|
|
9
9
|
import type {TagParse, TagError, Path} from './tags';
|
|
10
10
|
|
|
@@ -112,39 +112,41 @@ function parseRefString(linkTo: string): {ups: number; refPath: Path} {
|
|
|
112
112
|
return {ups, refPath};
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
function isRef(node: MOTLYNode): node is {linkTo: string} {
|
|
116
|
-
return 'linkTo' in node;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
115
|
/**
|
|
120
|
-
* Convert a
|
|
116
|
+
* Convert a MOTLYPropertyValue (node or ref) into a Tag tree with parent links.
|
|
117
|
+
* Env references (@env.NAME) are resolved from process.env during hydration.
|
|
121
118
|
*/
|
|
122
|
-
function hydrate(
|
|
123
|
-
if (isRef(
|
|
124
|
-
const {ups, refPath} = parseRefString(
|
|
119
|
+
function hydrate(pv: MOTLYPropertyValue, parent?: Tag): Tag {
|
|
120
|
+
if (isRef(pv)) {
|
|
121
|
+
const {ups, refPath} = parseRefString(pv.linkTo);
|
|
125
122
|
return new RefTag(ups, refPath, parent);
|
|
126
123
|
}
|
|
127
124
|
|
|
128
125
|
const tag = new Tag({}, parent);
|
|
129
126
|
|
|
130
|
-
if (
|
|
131
|
-
if (Array.isArray(
|
|
132
|
-
tag.eq =
|
|
133
|
-
} else if (
|
|
134
|
-
|
|
127
|
+
if (pv.eq !== undefined) {
|
|
128
|
+
if (Array.isArray(pv.eq)) {
|
|
129
|
+
tag.eq = pv.eq.map(el => hydrate(el, tag));
|
|
130
|
+
} else if (isEnvRef(pv.eq)) {
|
|
131
|
+
const envVal = process.env[pv.eq.env];
|
|
132
|
+
if (envVal !== undefined) {
|
|
133
|
+
tag.eq = envVal;
|
|
134
|
+
}
|
|
135
|
+
} else if (pv.eq instanceof Date) {
|
|
136
|
+
tag.eq = new Date(pv.eq);
|
|
135
137
|
} else {
|
|
136
|
-
tag.eq =
|
|
138
|
+
tag.eq = pv.eq;
|
|
137
139
|
}
|
|
138
140
|
}
|
|
139
141
|
|
|
140
|
-
if (
|
|
142
|
+
if (pv.properties !== undefined) {
|
|
141
143
|
tag.properties = {};
|
|
142
|
-
for (const [key, val] of Object.entries(
|
|
144
|
+
for (const [key, val] of Object.entries(pv.properties)) {
|
|
143
145
|
tag.properties[key] = hydrate(val, tag);
|
|
144
146
|
}
|
|
145
147
|
}
|
|
146
148
|
|
|
147
|
-
if (
|
|
149
|
+
if (pv.deleted) {
|
|
148
150
|
tag.deleted = true;
|
|
149
151
|
}
|
|
150
152
|
|