@peripheries/renderer 0.4.0 → 0.4.1
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 +3 -0
- package/dist/catalog.js +15 -6
- package/dist/catalog.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -49,6 +49,9 @@ sharing the channel reads it.
|
|
|
49
49
|
|
|
50
50
|
## Versions
|
|
51
51
|
|
|
52
|
+
- **0.4.1:** a card no longer carries a snippet; a component's first snippet is
|
|
53
|
+
its `example` (budget 1,000), shown beside the card in a pattern's pack. The
|
|
54
|
+
card budget drops to 400.
|
|
52
55
|
- **0.4.0:** `DIAGNOSTICS` and `PAGE_RULES`; `/catalog` with `checkCatalog`; the
|
|
53
56
|
knowledge types in `@peripheries/runtime`.
|
|
54
57
|
- **0.3.0:** `@peripheries/runtime/rank`, sibling order on `graph_node.rank`
|
package/dist/catalog.js
CHANGED
|
@@ -5,6 +5,7 @@ import Ajv2020 from "ajv/dist/2020.js";
|
|
|
5
5
|
var ref = (kind, key) => `${kind}:${key}`;
|
|
6
6
|
var size = (v) => JSON.stringify(v ?? null).length;
|
|
7
7
|
var isReference = (v) => typeof v === "string" && (v.startsWith("@") || v.includes("${"));
|
|
8
|
+
var holdsReference = (v) => isReference(v) || (Array.isArray(v) ? v.some(holdsReference) : typeof v === "object" && v !== null && Object.values(v).some(holdsReference));
|
|
8
9
|
function card(lineage, row, schema) {
|
|
9
10
|
return {
|
|
10
11
|
lineage,
|
|
@@ -13,10 +14,10 @@ function card(lineage, row, schema) {
|
|
|
13
14
|
title: row.title,
|
|
14
15
|
summary: row.summary,
|
|
15
16
|
tags: row.tags ?? [],
|
|
16
|
-
...schema?.required ? { required: schema.required } : {}
|
|
17
|
-
...row.kind === "component" && row.snippets?.[0] ? { snippet: row.snippets[0] } : {}
|
|
17
|
+
...schema?.required ? { required: schema.required } : {}
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
var exampleOf = (row) => row?.kind === "component" ? row.snippets?.[0] : void 0;
|
|
20
21
|
function checkCatalog(input) {
|
|
21
22
|
const out = [];
|
|
22
23
|
const at = (row, field) => `${ref(row.kind, row.key)}${field ? `.${field}` : ""}`;
|
|
@@ -137,17 +138,25 @@ function checkCatalog(input) {
|
|
|
137
138
|
severity: "error",
|
|
138
139
|
code: "KNOWLEDGE_BUDGET",
|
|
139
140
|
path: at(row),
|
|
140
|
-
message: `its card is ${n} characters (budget ${KNOWLEDGE_BUDGETS.card}); shorten the summary
|
|
141
|
+
message: `its card is ${n} characters (budget ${KNOWLEDGE_BUDGETS.card}); shorten the summary or tags`
|
|
142
|
+
});
|
|
143
|
+
const example = exampleOf(row);
|
|
144
|
+
if (example && size(example) > KNOWLEDGE_BUDGETS.example) out.push({
|
|
145
|
+
severity: "error",
|
|
146
|
+
code: "KNOWLEDGE_BUDGET",
|
|
147
|
+
path: at(row, "snippets[0]"),
|
|
148
|
+
message: `its example (first snippet) is ${size(example)} characters (budget ${KNOWLEDGE_BUDGETS.example}); make the smallest example minimal, or bind its data`
|
|
141
149
|
});
|
|
142
150
|
}
|
|
143
151
|
for (const row of input.rows.filter((r) => r.kind === "kit" || r.kind === "pattern")) {
|
|
144
152
|
const self = ref(row.kind, row.key);
|
|
145
|
-
const
|
|
153
|
+
const targets = input.links.filter((l) => ref(l.from.kind, l.from.key) === self && !l.to.lineage).map((l) => byRef.get(ref(l.to.kind, l.to.key)));
|
|
154
|
+
const sources = input.links.filter((l) => !l.to.lineage && ref(l.to.kind, l.to.key) === self).map((l) => byRef.get(ref(l.from.kind, l.from.key)));
|
|
146
155
|
const n = size({
|
|
147
156
|
body: row.body,
|
|
148
157
|
snippets: row.snippets,
|
|
149
158
|
attributes: row.attributes
|
|
150
|
-
}) +
|
|
159
|
+
}) + targets.reduce((sum, r) => sum + (r ? size(cardOf(r)) + size(exampleOf(r)) : 0), 0) + sources.reduce((sum, r) => sum + (r && (r.kind !== "component" || r.page_cell !== false) ? size(cardOf(r)) : 0), 0);
|
|
151
160
|
if (n > KNOWLEDGE_BUDGETS.pack) out.push({
|
|
152
161
|
severity: "error",
|
|
153
162
|
code: "KNOWLEDGE_BUDGET",
|
|
@@ -200,7 +209,7 @@ function checkSnippet(snippet, catalog, schemaOf, ajv) {
|
|
|
200
209
|
const properties = cell.component ? schemaOf(cell.component)?.properties : void 0;
|
|
201
210
|
for (const [prop, value] of Object.entries(cell.props ?? {})) {
|
|
202
211
|
const schema = properties?.[prop];
|
|
203
|
-
if (!schema || typeof schema !== "object" ||
|
|
212
|
+
if (!schema || typeof schema !== "object" || holdsReference(value)) continue;
|
|
204
213
|
let valid;
|
|
205
214
|
try {
|
|
206
215
|
valid = ajv.validate(schema, value);
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","names":[],"sources":["../src/catalog/check.ts"],"mappings":";;;;AA4BA,IAAM,OAAO,MAAc,QAAgB,GAAG,KAAK,GAAG;AACtD,IAAM,QAAQ,MAAe,KAAK,UAAU,KAAK,IAAI,CAAC,CAAC;AACvD,IAAM,eAAe,MAAe,OAAO,MAAM,aAAa,EAAE,WAAW,GAAG,KAAK,EAAE,SAAS,IAAI;
|
|
1
|
+
{"version":3,"file":"catalog.js","names":[],"sources":["../src/catalog/check.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peripheries/renderer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "The one renderer for pages of federated component bundles: a framework-free core, a React renderer, the runtime a page boots with, and golden pages for testing.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"README.md"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@peripheries/runtime": "0.4.
|
|
37
|
+
"@peripheries/runtime": "0.4.1",
|
|
38
38
|
"ajv": "8.20.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|