@platformos/platformos-graph 0.0.7 → 0.0.8
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/CHANGELOG.md +9 -0
- package/dist/getWebComponentMap.js +1 -1
- package/dist/getWebComponentMap.js.map +1 -1
- package/dist/graph/augment.js +0 -3
- package/dist/graph/augment.js.map +1 -1
- package/dist/graph/build.d.ts +2 -2
- package/dist/graph/build.js +11 -8
- package/dist/graph/build.js.map +1 -1
- package/dist/graph/module.d.ts +6 -9
- package/dist/graph/module.js +53 -117
- package/dist/graph/module.js.map +1 -1
- package/dist/graph/serialize.d.ts +2 -2
- package/dist/graph/serialize.js +2 -2
- package/dist/graph/serialize.js.map +1 -1
- package/dist/graph/test-helpers.d.ts +0 -13
- package/dist/graph/test-helpers.js +0 -10
- package/dist/graph/test-helpers.js.map +1 -1
- package/dist/graph/traverse.d.ts +3 -3
- package/dist/graph/traverse.js +19 -349
- package/dist/graph/traverse.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/toSourceCode.d.ts +1 -4
- package/dist/toSourceCode.js +8 -52
- package/dist/toSourceCode.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +21 -78
- package/dist/types.js.map +1 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -18
- package/dist/utils/index.js.map +1 -1
- package/fixtures/skeleton/{layout/theme.liquid → app/views/layouts/application.liquid} +3 -4
- package/fixtures/skeleton/app/views/pages/index.liquid +5 -0
- package/fixtures/skeleton/app/views/partials/header.liquid +3 -0
- package/package.json +4 -4
- package/src/getWebComponentMap.ts +1 -1
- package/src/graph/augment.ts +1 -13
- package/src/graph/build.spec.ts +31 -171
- package/src/graph/build.ts +18 -14
- package/src/graph/module.ts +59 -135
- package/src/graph/serialize.spec.ts +22 -29
- package/src/graph/serialize.ts +2 -2
- package/src/graph/test-helpers.ts +1 -18
- package/src/graph/traverse.ts +28 -501
- package/src/index.ts +3 -3
- package/src/toSourceCode.ts +14 -55
- package/src/types.ts +23 -100
- package/src/utils/index.ts +0 -24
- package/fixtures/skeleton/blocks/_private.liquid +0 -1
- package/fixtures/skeleton/blocks/_static.liquid +0 -10
- package/fixtures/skeleton/blocks/group.liquid +0 -27
- package/fixtures/skeleton/blocks/render-static.liquid +0 -22
- package/fixtures/skeleton/blocks/text.liquid +0 -14
- package/fixtures/skeleton/jsconfig.json +0 -9
- package/fixtures/skeleton/sections/custom-section.liquid +0 -6
- package/fixtures/skeleton/sections/header-group.json +0 -36
- package/fixtures/skeleton/sections/header.liquid +0 -1
- package/fixtures/skeleton/templates/index.json +0 -20
|
@@ -1,59 +1,52 @@
|
|
|
1
1
|
import { path as pathUtils } from '@platformos/platformos-check-common';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { AppGraph } from '../types';
|
|
4
|
+
import { getLayoutModule, getPartialModule } from './module';
|
|
5
|
+
import { serializeAppGraph } from './serialize';
|
|
6
6
|
import { bind } from './traverse';
|
|
7
7
|
|
|
8
|
-
describe('Unit:
|
|
8
|
+
describe('Unit: serializeAppGraph', () => {
|
|
9
9
|
it('serialize the graph', () => {
|
|
10
|
-
const rootUri = 'file:///
|
|
10
|
+
const rootUri = 'file:///app';
|
|
11
11
|
const p = (part: string) => pathUtils.join(rootUri, part);
|
|
12
|
-
const graph:
|
|
12
|
+
const graph: AppGraph = {
|
|
13
13
|
entryPoints: [],
|
|
14
14
|
modules: {},
|
|
15
15
|
rootUri,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const layout = getLayoutModule(graph, p('app/views/layouts/application.liquid'))!;
|
|
19
|
+
const headerPartial = getPartialModule(graph, 'header');
|
|
20
20
|
const parentPartial = getPartialModule(graph, 'parent');
|
|
21
21
|
const childPartial = getPartialModule(graph, 'child');
|
|
22
|
-
bind(template, customSection, { sourceRange: [0, 5] });
|
|
23
|
-
bind(customSection, parentPartial, { sourceRange: [10, 15] });
|
|
24
|
-
bind(parentPartial, childPartial, { sourceRange: [20, 25] });
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
bind(
|
|
23
|
+
bind(layout, headerPartial, { sourceRange: [0, 5] });
|
|
24
|
+
bind(layout, parentPartial, { sourceRange: [10, 15] });
|
|
25
|
+
bind(parentPartial, childPartial, { sourceRange: [20, 25] });
|
|
28
26
|
|
|
29
|
-
graph.entryPoints = [
|
|
30
|
-
[
|
|
27
|
+
graph.entryPoints = [layout];
|
|
28
|
+
[layout, headerPartial, parentPartial, childPartial].forEach((module) => {
|
|
31
29
|
graph.modules[module.uri] = module;
|
|
32
30
|
});
|
|
33
31
|
|
|
34
|
-
const { nodes, edges } =
|
|
35
|
-
expect(nodes).toHaveLength(
|
|
36
|
-
expect(edges).toHaveLength(
|
|
32
|
+
const { nodes, edges } = serializeAppGraph(graph);
|
|
33
|
+
expect(nodes).toHaveLength(4);
|
|
34
|
+
expect(edges).toHaveLength(3);
|
|
37
35
|
expect(edges).toEqual(
|
|
38
36
|
expect.arrayContaining([
|
|
39
37
|
{
|
|
40
|
-
source: { uri: '
|
|
41
|
-
target: { uri: '
|
|
42
|
-
type: 'direct',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
source: { uri: 'file:///theme/sections/custom-section.liquid', range: [10, 15] },
|
|
46
|
-
target: { uri: 'file:///theme/app/views/partials/parent.liquid' },
|
|
38
|
+
source: { uri: p('app/views/layouts/application.liquid'), range: [0, 5] },
|
|
39
|
+
target: { uri: p('app/views/partials/header.liquid') },
|
|
47
40
|
type: 'direct',
|
|
48
41
|
},
|
|
49
42
|
{
|
|
50
|
-
source: { uri: '
|
|
51
|
-
target: { uri: '
|
|
43
|
+
source: { uri: p('app/views/layouts/application.liquid'), range: [10, 15] },
|
|
44
|
+
target: { uri: p('app/views/partials/parent.liquid') },
|
|
52
45
|
type: 'direct',
|
|
53
46
|
},
|
|
54
47
|
{
|
|
55
|
-
source: { uri: '
|
|
56
|
-
target: { uri: '
|
|
48
|
+
source: { uri: p('app/views/partials/parent.liquid'), range: [20, 25] },
|
|
49
|
+
target: { uri: p('app/views/partials/child.liquid') },
|
|
57
50
|
type: 'direct',
|
|
58
51
|
},
|
|
59
52
|
]),
|
package/src/graph/serialize.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SerializableEdge, SerializableGraph, SerializableNode,
|
|
1
|
+
import { SerializableEdge, SerializableGraph, SerializableNode, AppGraph } from '../types';
|
|
2
2
|
|
|
3
|
-
export function
|
|
3
|
+
export function serializeAppGraph(graph: AppGraph): SerializableGraph {
|
|
4
4
|
const nodes: SerializableNode[] = Object.values(graph.modules).map((module) => ({
|
|
5
5
|
uri: module.uri,
|
|
6
6
|
type: module.type,
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LiquidSourceCode,
|
|
3
|
-
memoize,
|
|
4
|
-
path as pathUtils,
|
|
5
|
-
SectionSchema,
|
|
6
|
-
ThemeBlockSchema,
|
|
7
|
-
toSchema,
|
|
8
|
-
} from '@platformos/platformos-check-common';
|
|
1
|
+
import { memoize, path as pathUtils } from '@platformos/platformos-check-common';
|
|
9
2
|
import { AbstractFileSystem } from '@platformos/platformos-common';
|
|
10
3
|
import { NodeFileSystem } from '@platformos/platformos-check-node';
|
|
11
4
|
import { vi } from 'vitest';
|
|
@@ -28,16 +21,6 @@ export async function getDependencies(rootUri: string, fs: AbstractFileSystem =
|
|
|
28
21
|
const getSourceCode = makeGetSourceCode(fs);
|
|
29
22
|
const deps = {
|
|
30
23
|
fs,
|
|
31
|
-
getSectionSchema: memoize(async (name: string) => {
|
|
32
|
-
const uri = pathUtils.join(skeleton, 'sections', `${name}.liquid`);
|
|
33
|
-
const sourceCode = (await getSourceCode(uri)) as LiquidSourceCode;
|
|
34
|
-
return (await toSchema('theme', uri, sourceCode, async () => true)) as SectionSchema;
|
|
35
|
-
}, identity),
|
|
36
|
-
getBlockSchema: memoize(async (name: string) => {
|
|
37
|
-
const uri = pathUtils.join(skeleton, 'blocks', `${name}.liquid`);
|
|
38
|
-
const sourceCode = (await getSourceCode(uri)) as LiquidSourceCode;
|
|
39
|
-
return (await toSchema('theme', uri, sourceCode, async () => true)) as ThemeBlockSchema;
|
|
40
|
-
}, identity),
|
|
41
24
|
getSourceCode,
|
|
42
25
|
getWebComponentDefinitionReference: (customElementName: string) =>
|
|
43
26
|
webComponentDefs.get(customElementName),
|