@teambit/harmony 0.4.0 → 0.4.2
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/extension-graph/extension-graph.d.ts +1 -1
- package/dist/extension-graph/extension-graph.js +10 -9
- package/dist/extension-graph/extension-graph.js.map +1 -1
- package/dist/harmony.d.ts +4 -3
- package/dist/harmony.js +6 -5
- package/dist/harmony.js.map +1 -1
- package/dist/{preview-1670772070506.js → preview-1670777698767.js} +1 -1
- package/extension-graph/extension-graph.ts +10 -9
- package/harmony.ts +8 -6
- package/package-tar/teambit-harmony-0.4.2.tgz +0 -0
- package/package.json +2 -2
- package/package-tar/teambit-harmony-0.4.0.tgz +0 -0
|
@@ -16,7 +16,7 @@ export default class DependencyGraph extends Graph<Extension, Edge> {
|
|
|
16
16
|
private sortDeps;
|
|
17
17
|
byExecutionOrder(): Extension[];
|
|
18
18
|
private enrichRuntimeExtension;
|
|
19
|
-
enrichRuntime(runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn): Promise<any[][]>;
|
|
19
|
+
enrichRuntime(runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn, options?: DependencyGraphOptions): Promise<any[][]>;
|
|
20
20
|
add(manifest: ExtensionManifest): this;
|
|
21
21
|
load(extensions: ExtensionManifest[]): this;
|
|
22
22
|
getExtension(manifest: ExtensionManifest): Extension;
|
|
@@ -41,7 +41,7 @@ class DependencyGraph extends cleargraph_1.Graph {
|
|
|
41
41
|
byExecutionOrder() {
|
|
42
42
|
return this.toposort(true);
|
|
43
43
|
}
|
|
44
|
-
enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn) {
|
|
44
|
+
enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn, options = {}) {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
46
|
yield requireFn(aspect, runtime);
|
|
47
47
|
const runtimeManifest = aspect.getRuntime(runtime);
|
|
@@ -51,15 +51,16 @@ class DependencyGraph extends cleargraph_1.Graph {
|
|
|
51
51
|
if (!deps)
|
|
52
52
|
return;
|
|
53
53
|
const promises = deps.map((dep) => __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
|
|
54
|
+
const depId = options.getName ? options.getName(dep) : dep.id;
|
|
55
|
+
if (!this.hasNode(depId)) {
|
|
55
56
|
this.add(dep);
|
|
56
57
|
if (dep.declareRuntime) {
|
|
57
58
|
runtimes.add(dep.declareRuntime);
|
|
58
59
|
}
|
|
59
|
-
yield requireFn(this.get(
|
|
60
|
-
yield this.enrichRuntimeExtension(
|
|
60
|
+
yield requireFn(this.get(depId), runtime);
|
|
61
|
+
yield this.enrichRuntimeExtension(depId, this.get(depId), runtime, runtimes, requireFn);
|
|
61
62
|
}
|
|
62
|
-
this.setEdge(id,
|
|
63
|
+
this.setEdge(id, depId, {
|
|
63
64
|
runtime: runtime.name,
|
|
64
65
|
type: 'runtime-dependency'
|
|
65
66
|
});
|
|
@@ -67,10 +68,10 @@ class DependencyGraph extends cleargraph_1.Graph {
|
|
|
67
68
|
return Promise.all(promises);
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
|
-
enrichRuntime(runtime, runtimes, requireFn) {
|
|
71
|
+
enrichRuntime(runtime, runtimes, requireFn, options = {}) {
|
|
71
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
73
|
const promises = Array.from(this.nodes.entries()).map(([id, aspect]) => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
return this.enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn);
|
|
74
|
+
return this.enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn, options);
|
|
74
75
|
}));
|
|
75
76
|
return Promise.all(promises);
|
|
76
77
|
});
|
|
@@ -133,8 +134,8 @@ class DependencyGraph extends cleargraph_1.Graph {
|
|
|
133
134
|
/**
|
|
134
135
|
* build Harmony from set of extensions
|
|
135
136
|
*/
|
|
136
|
-
static from(extensions, options) {
|
|
137
|
-
const { vertices, edges } = (0, from_extension_1.fromExtensions)(extensions);
|
|
137
|
+
static from(extensions, options = {}) {
|
|
138
|
+
const { vertices, edges } = (0, from_extension_1.fromExtensions)(extensions, options);
|
|
138
139
|
return new DependencyGraph(vertices, edges);
|
|
139
140
|
}
|
|
140
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-graph.js","sourceRoot":"","sources":["../../extension-graph/extension-graph.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAmC;AACnC,qDAAiE;AAUjE,SAAS,OAAO,CAAC,QAAa;IAC5B,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AACvF,CAAC;AAOD,MAAqB,eAAgB,SAAQ,kBAAsB;IAAnE;;QACU,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"extension-graph.js","sourceRoot":"","sources":["../../extension-graph/extension-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/harmony.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import ExtensionGraph from './extension-graph/extension-graph';
|
|
2
|
+
import ExtensionGraph, { DependencyGraphOptions } from './extension-graph/extension-graph';
|
|
3
3
|
import { Extension, ExtensionManifest } from './extension';
|
|
4
4
|
import { Config } from './config';
|
|
5
5
|
import { Aspect } from './aspect';
|
|
@@ -20,6 +20,7 @@ export declare class Harmony {
|
|
|
20
20
|
readonly config: Config;
|
|
21
21
|
readonly runtimes: Runtimes;
|
|
22
22
|
readonly activeRuntime: string;
|
|
23
|
+
private depOptions;
|
|
23
24
|
constructor(
|
|
24
25
|
/**
|
|
25
26
|
* extension graph
|
|
@@ -28,7 +29,7 @@ export declare class Harmony {
|
|
|
28
29
|
/**
|
|
29
30
|
* harmony top level config
|
|
30
31
|
*/
|
|
31
|
-
config: Config, runtimes: Runtimes, activeRuntime: string);
|
|
32
|
+
config: Config, runtimes: Runtimes, activeRuntime: string, depOptions: DependencyGraphOptions);
|
|
32
33
|
current: string | null;
|
|
33
34
|
private runtime;
|
|
34
35
|
/**
|
|
@@ -58,5 +59,5 @@ export declare class Harmony {
|
|
|
58
59
|
get<T>(id: string): T;
|
|
59
60
|
resolveRuntime(name: string): RuntimeDefinition;
|
|
60
61
|
run(requireFn?: RequireFn): Promise<void>;
|
|
61
|
-
static load(aspects: Aspect[], runtime: string, globalConfig: GlobalConfig): Promise<Harmony>;
|
|
62
|
+
static load(aspects: Aspect[], runtime: string, globalConfig: GlobalConfig, options?: DependencyGraphOptions): Promise<Harmony>;
|
|
62
63
|
}
|
package/dist/harmony.js
CHANGED
|
@@ -29,11 +29,12 @@ class Harmony {
|
|
|
29
29
|
/**
|
|
30
30
|
* harmony top level config
|
|
31
31
|
*/
|
|
32
|
-
config, runtimes, activeRuntime) {
|
|
32
|
+
config, runtimes, activeRuntime, depOptions) {
|
|
33
33
|
this.graph = graph;
|
|
34
34
|
this.config = config;
|
|
35
35
|
this.runtimes = runtimes;
|
|
36
36
|
this.activeRuntime = activeRuntime;
|
|
37
|
+
this.depOptions = depOptions;
|
|
37
38
|
this.current = null;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
@@ -131,18 +132,18 @@ class Harmony {
|
|
|
131
132
|
// runtime.require(runtimeFile);
|
|
132
133
|
});
|
|
133
134
|
// requireFn ? await requireFn(aspect, runtime) : defaultRequireFn(this.graph);
|
|
134
|
-
yield this.graph.enrichRuntime(runtime, this.runtimes, requireFn || defaultRequireFn);
|
|
135
|
+
yield this.graph.enrichRuntime(runtime, this.runtimes, requireFn || defaultRequireFn, this.depOptions);
|
|
135
136
|
const executionOrder = this.graph.byExecutionOrder();
|
|
136
137
|
yield (0, utils_1.asyncForEach)(executionOrder, (ext) => __awaiter(this, void 0, void 0, function* () {
|
|
137
138
|
yield this.runOne(ext, runtime);
|
|
138
139
|
}));
|
|
139
140
|
});
|
|
140
141
|
}
|
|
141
|
-
static load(aspects, runtime, globalConfig) {
|
|
142
|
+
static load(aspects, runtime, globalConfig, options = {}) {
|
|
142
143
|
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
-
const aspectGraph = extension_graph_1.default.from(aspects);
|
|
144
|
+
const aspectGraph = extension_graph_1.default.from(aspects, options);
|
|
144
145
|
const runtimes = yield runtimes_1.Runtimes.load(aspectGraph);
|
|
145
|
-
return new Harmony(aspectGraph, config_1.Config.from(globalConfig), runtimes, runtime);
|
|
146
|
+
return new Harmony(aspectGraph, config_1.Config.from(globalConfig), runtimes, runtime, options);
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
}
|
package/dist/harmony.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harmony.js","sourceRoot":"","sources":["../harmony.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"harmony.js","sourceRoot":"","sources":["../harmony.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
;
|
|
2
|
-
import * as overview_0 from '/Users/ranmizrahi/Library/Caches/Bit/capsules/7f5d1a1e47c697a28e5a51f9bcc7868796763a93/teambit.harmony_harmony@0.4.
|
|
2
|
+
import * as overview_0 from '/Users/ranmizrahi/Library/Caches/Bit/capsules/7f5d1a1e47c697a28e5a51f9bcc7868796763a93/teambit.harmony_harmony@0.4.2/dist/harmony.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -44,24 +44,25 @@ export default class DependencyGraph extends Graph<Extension, Edge> {
|
|
|
44
44
|
return this.toposort(true);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
private async enrichRuntimeExtension(id: string, aspect: Extension, runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn) {
|
|
47
|
+
private async enrichRuntimeExtension(id: string, aspect: Extension, runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn, options: DependencyGraphOptions = {}) {
|
|
48
48
|
await requireFn(aspect, runtime);
|
|
49
49
|
const runtimeManifest = aspect.getRuntime(runtime)
|
|
50
50
|
if (!runtimeManifest) return;
|
|
51
51
|
const deps = runtimeManifest.dependencies;
|
|
52
52
|
if (!deps) return;
|
|
53
53
|
const promises = deps.map(async (dep: any) => {
|
|
54
|
-
|
|
54
|
+
const depId = options.getName ? options.getName(dep): dep.id;
|
|
55
|
+
if (!this.hasNode(depId)) {
|
|
55
56
|
this.add(dep);
|
|
56
57
|
if (dep.declareRuntime) {
|
|
57
58
|
runtimes.add(dep.declareRuntime);
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
await requireFn(this.get(
|
|
61
|
-
await this.enrichRuntimeExtension(
|
|
61
|
+
await requireFn(this.get(depId), runtime);
|
|
62
|
+
await this.enrichRuntimeExtension(depId, this.get(depId), runtime, runtimes, requireFn);
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
this.setEdge(id,
|
|
65
|
+
this.setEdge(id, depId, {
|
|
65
66
|
runtime: runtime.name,
|
|
66
67
|
type: 'runtime-dependency'
|
|
67
68
|
});
|
|
@@ -70,9 +71,9 @@ export default class DependencyGraph extends Graph<Extension, Edge> {
|
|
|
70
71
|
return Promise.all(promises);
|
|
71
72
|
}
|
|
72
73
|
|
|
73
|
-
async enrichRuntime(runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn) {
|
|
74
|
+
async enrichRuntime(runtime: RuntimeDefinition, runtimes: Runtimes, requireFn: RequireFn, options: DependencyGraphOptions = {}) {
|
|
74
75
|
const promises = Array.from(this.nodes.entries()).map(async ([id, aspect]) => {
|
|
75
|
-
return this.enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn);
|
|
76
|
+
return this.enrichRuntimeExtension(id, aspect, runtime, runtimes, requireFn, options);
|
|
76
77
|
});
|
|
77
78
|
|
|
78
79
|
return Promise.all(promises);
|
|
@@ -147,8 +148,8 @@ export default class DependencyGraph extends Graph<Extension, Edge> {
|
|
|
147
148
|
/**
|
|
148
149
|
* build Harmony from set of extensions
|
|
149
150
|
*/
|
|
150
|
-
static from(extensions: ExtensionManifest[], options
|
|
151
|
-
const { vertices, edges } = fromExtensions(extensions);
|
|
151
|
+
static from(extensions: ExtensionManifest[], options: DependencyGraphOptions = {}) {
|
|
152
|
+
const { vertices, edges } = fromExtensions(extensions, options);
|
|
152
153
|
|
|
153
154
|
return new DependencyGraph(vertices, edges);
|
|
154
155
|
}
|
package/harmony.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import ExtensionGraph from './extension-graph/extension-graph';
|
|
2
|
+
import ExtensionGraph, { DependencyGraphOptions } from './extension-graph/extension-graph';
|
|
3
3
|
import { ExtensionLoadError } from './exceptions';
|
|
4
4
|
import { Extension, ExtensionManifest } from './extension';
|
|
5
5
|
import { asyncForEach } from './utils';
|
|
@@ -29,7 +29,9 @@ export class Harmony {
|
|
|
29
29
|
|
|
30
30
|
readonly runtimes: Runtimes,
|
|
31
31
|
|
|
32
|
-
readonly activeRuntime: string
|
|
32
|
+
readonly activeRuntime: string,
|
|
33
|
+
|
|
34
|
+
private depOptions: DependencyGraphOptions
|
|
33
35
|
) {}
|
|
34
36
|
|
|
35
37
|
public current: string|null = null;
|
|
@@ -130,7 +132,7 @@ export class Harmony {
|
|
|
130
132
|
// runtime.require(runtimeFile);
|
|
131
133
|
};
|
|
132
134
|
// requireFn ? await requireFn(aspect, runtime) : defaultRequireFn(this.graph);
|
|
133
|
-
await this.graph.enrichRuntime(runtime, this.runtimes, requireFn || defaultRequireFn);
|
|
135
|
+
await this.graph.enrichRuntime(runtime, this.runtimes, requireFn || defaultRequireFn, this.depOptions);
|
|
134
136
|
|
|
135
137
|
const executionOrder = this.graph.byExecutionOrder();
|
|
136
138
|
await asyncForEach(executionOrder, async (ext: Extension) => {
|
|
@@ -138,9 +140,9 @@ export class Harmony {
|
|
|
138
140
|
});
|
|
139
141
|
}
|
|
140
142
|
|
|
141
|
-
static async load(aspects: Aspect[], runtime: string, globalConfig: GlobalConfig) {
|
|
142
|
-
const aspectGraph = ExtensionGraph.from(aspects as any);
|
|
143
|
+
static async load(aspects: Aspect[], runtime: string, globalConfig: GlobalConfig, options: DependencyGraphOptions = {}) {
|
|
144
|
+
const aspectGraph = ExtensionGraph.from(aspects as any, options);
|
|
143
145
|
const runtimes = await Runtimes.load(aspectGraph);
|
|
144
|
-
return new Harmony(aspectGraph, Config.from(globalConfig), runtimes, runtime);
|
|
146
|
+
return new Harmony(aspectGraph, Config.from(globalConfig), runtimes, runtime, options);
|
|
145
147
|
}
|
|
146
148
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/harmony",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/harmony/harmony",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.harmony",
|
|
8
8
|
"name": "harmony",
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.2"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"reflect-metadata": "^0.1.13",
|
|
Binary file
|