edacation 0.4.0 → 0.5.0

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.
@@ -1,5 +1,7 @@
1
1
  import { type ProjectConfiguration } from './configuration.js';
2
2
  type ProjectTarget = ProjectConfiguration['targets'][number];
3
+ export type ProjectEvent = 'inputFiles' | 'outputFiles' | 'configuration';
4
+ type EventCallback = (project: Project, events: ProjectEvent[]) => void;
3
5
  export interface ProjectInputFileState {
4
6
  path: string;
5
7
  type: 'design' | 'testbench';
@@ -11,8 +13,9 @@ export declare class ProjectInputFile {
11
13
  get path(): ProjectInputFileState['path'];
12
14
  get type(): ProjectInputFileState['type'];
13
15
  set type(type: ProjectInputFileState['type']);
14
- static serialize(file: ProjectInputFile): ProjectInputFileState;
16
+ serialize(): ProjectInputFileState;
15
17
  static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
18
+ copy(): ProjectInputFile;
16
19
  }
17
20
  export interface ProjectOutputFileState {
18
21
  path: string;
@@ -31,8 +34,9 @@ export declare class ProjectOutputFile {
31
34
  get target(): ProjectTarget | null;
32
35
  get stale(): ProjectOutputFileState['stale'];
33
36
  set stale(isStale: ProjectOutputFileState['stale']);
34
- static serialize(file: ProjectOutputFile): ProjectOutputFileState;
37
+ serialize(): ProjectOutputFileState;
35
38
  static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile;
39
+ copy(project: Project): ProjectOutputFile;
36
40
  }
37
41
  export interface ProjectState {
38
42
  name: string;
@@ -45,7 +49,10 @@ export declare class Project {
45
49
  private inputFiles;
46
50
  private outputFiles;
47
51
  private configuration;
48
- constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration);
52
+ private eventCallback?;
53
+ private batchedEvents;
54
+ private batchCounter;
55
+ constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration, eventCallback?: EventCallback);
49
56
  getName(): string;
50
57
  getInputFiles(): ProjectInputFile[];
51
58
  hasInputFile(filePath: string): boolean;
@@ -64,6 +71,10 @@ export declare class Project {
64
71
  }[]): void;
65
72
  removeOutputFiles(filePaths: string[]): void;
66
73
  expireOutputFiles(): void;
74
+ setTopLevelModule(targetId: string, module: string): void;
75
+ setTestbenchPath(targetId: string, testbenchPath?: string): void;
76
+ setInputFileType(filePath: string, type: ProjectInputFile['type']): void;
77
+ getTarget(id: string): ProjectTarget | null;
67
78
  getConfiguration(): {
68
79
  targets: {
69
80
  id: string;
@@ -195,7 +206,10 @@ export declare class Project {
195
206
  } | undefined;
196
207
  };
197
208
  updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
198
- getTarget(id: string): ProjectTarget | null;
209
+ protected importFromProject(other: Project, doTriggerEvent?: boolean): void;
210
+ protected emitEvents(...events: ProjectEvent[]): void;
211
+ protected batchEvents<T>(func: () => T, ...events: ProjectEvent[]): T;
212
+ protected static emitsEvents<T extends Project>(...events: ProjectEvent[]): (_target: object, _propertyKey: string, descriptor: TypedPropertyDescriptor<(...args: any[]) => unknown>) => TypedPropertyDescriptor<(...args: any[]) => unknown>;
199
213
  static serialize(project: Project): ProjectState;
200
214
  static deserialize(data: ProjectState, ..._args: unknown[]): Project;
201
215
  static loadFromData(rawData: Uint8Array): Project;
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.Project = exports.ProjectOutputFile = exports.ProjectInputFile = void 0;
4
13
  const util_js_1 = require("../util.js");
@@ -17,10 +26,10 @@ class ProjectInputFile {
17
26
  set type(type) {
18
27
  this._type = type;
19
28
  }
20
- static serialize(file) {
29
+ serialize() {
21
30
  return {
22
- path: file.path,
23
- type: file.type
31
+ path: this.path,
32
+ type: this.type
24
33
  };
25
34
  }
26
35
  static deserialize(data, ..._args) {
@@ -31,6 +40,9 @@ class ProjectInputFile {
31
40
  }
32
41
  return new ProjectInputFile(data.path, data.type);
33
42
  }
43
+ copy() {
44
+ return ProjectInputFile.deserialize(this.serialize());
45
+ }
34
46
  }
35
47
  exports.ProjectInputFile = ProjectInputFile;
36
48
  class ProjectOutputFile {
@@ -63,11 +75,11 @@ class ProjectOutputFile {
63
75
  set stale(isStale) {
64
76
  this._stale = isStale;
65
77
  }
66
- static serialize(file) {
78
+ serialize() {
67
79
  return {
68
- path: file.path,
69
- targetId: file.targetId,
70
- stale: file.stale
80
+ path: this.path,
81
+ targetId: this.targetId,
82
+ stale: this.stale
71
83
  };
72
84
  }
73
85
  static deserialize(project, data, ..._args) {
@@ -78,10 +90,15 @@ class ProjectOutputFile {
78
90
  }
79
91
  return new ProjectOutputFile(project, data.path, data.targetId, data.stale);
80
92
  }
93
+ copy(project) {
94
+ return ProjectOutputFile.deserialize(project, this.serialize());
95
+ }
81
96
  }
82
97
  exports.ProjectOutputFile = ProjectOutputFile;
83
98
  class Project {
84
- constructor(name, inputFiles = [], outputFiles = [], configuration = configuration_js_1.DEFAULT_CONFIGURATION) {
99
+ constructor(name, inputFiles = [], outputFiles = [], configuration = configuration_js_1.DEFAULT_CONFIGURATION, eventCallback) {
100
+ this.batchedEvents = new Set();
101
+ this.batchCounter = 0;
85
102
  this.name = name;
86
103
  this.inputFiles = inputFiles.map((file) => ProjectInputFile.deserialize(file));
87
104
  this.outputFiles = outputFiles.map((file) => ProjectOutputFile.deserialize(this, file));
@@ -94,6 +111,8 @@ class Project {
94
111
  }
95
112
  // Trigger a config 'update' to deploy any modifications it might want to make
96
113
  this.updateConfiguration({});
114
+ // Set event callback LAST to prevent firing events in constructor
115
+ this.eventCallback = eventCallback;
97
116
  }
98
117
  getName() {
99
118
  return this.name;
@@ -117,9 +136,11 @@ class Project {
117
136
  this.inputFiles.sort((a, b) => {
118
137
  return a < b ? -1 : 1;
119
138
  });
139
+ this.expireOutputFiles();
120
140
  }
121
141
  removeInputFiles(filePaths) {
122
142
  this.inputFiles = this.inputFiles.filter((file) => !filePaths.includes(file.path));
143
+ this.expireOutputFiles();
123
144
  }
124
145
  getOutputFiles() {
125
146
  return this.outputFiles;
@@ -153,9 +174,60 @@ class Project {
153
174
  this.outputFiles = this.outputFiles.filter((file) => !filePaths.includes(file.path));
154
175
  }
155
176
  expireOutputFiles() {
177
+ if (!this.outputFiles.length)
178
+ return;
179
+ let didUpdate = false;
156
180
  for (const file of this.outputFiles) {
157
- file.stale = true;
181
+ if (!file.stale) {
182
+ file.stale = true;
183
+ didUpdate = true;
184
+ }
158
185
  }
186
+ if (didUpdate)
187
+ this.emitEvents('outputFiles');
188
+ }
189
+ setTopLevelModule(targetId, module) {
190
+ const target = this.getTarget(targetId);
191
+ if (!target)
192
+ throw new Error(`Target "${targetId}" does not exist!`);
193
+ // Ensure the config tree exists
194
+ // We don't care about setting missing defaults, as this is target-level configuration,
195
+ // so any missing properties will fallback to project-level config.
196
+ if (!target.yosys)
197
+ target.yosys = {};
198
+ if (!target.yosys.options)
199
+ target.yosys.options = {};
200
+ target.yosys.options.topLevelModule = module;
201
+ }
202
+ setTestbenchPath(targetId, testbenchPath) {
203
+ const testbenchFiles = this.getInputFiles()
204
+ .filter((file) => file.type === 'testbench')
205
+ .map((file) => file.path);
206
+ if (testbenchPath && !testbenchFiles.includes(testbenchPath))
207
+ throw new Error(`Testbench ${testbenchPath} is not marked as such!`);
208
+ const target = this.getTarget(targetId);
209
+ if (!target)
210
+ throw new Error(`Target "${targetId}" does not exist!`);
211
+ // Ensure the config tree exists
212
+ // We don't care about setting missing defaults, as this is target-level configuration,
213
+ // so any missing properties will fallback to project-level config.
214
+ if (!target.iverilog)
215
+ target.iverilog = {};
216
+ if (!target.iverilog.options)
217
+ target.iverilog.options = {};
218
+ target.iverilog.options.testbenchFile = testbenchPath;
219
+ }
220
+ setInputFileType(filePath, type) {
221
+ const file = this.getInputFile(filePath);
222
+ if (!file) {
223
+ console.warn(`Tried to set file type of missing input file: ${filePath}`);
224
+ return;
225
+ }
226
+ file.type = type;
227
+ }
228
+ getTarget(id) {
229
+ const targets = this.configuration.targets;
230
+ return targets.find((target) => target.id === id) ?? null;
159
231
  }
160
232
  getConfiguration() {
161
233
  return this.configuration;
@@ -171,15 +243,51 @@ class Project {
171
243
  outFile.targetId = null;
172
244
  }
173
245
  }
174
- getTarget(id) {
175
- const targets = this.configuration.targets;
176
- return targets.find((target) => target.id === id) ?? null;
246
+ importFromProject(other, doTriggerEvent = true) {
247
+ this.inputFiles = other.getInputFiles().map((file) => file.copy());
248
+ this.outputFiles = other.getOutputFiles().map((file) => file.copy(this));
249
+ this.configuration = structuredClone(other.getConfiguration());
250
+ if (doTriggerEvent)
251
+ this.emitEvents('inputFiles', 'outputFiles', 'configuration');
252
+ }
253
+ emitEvents(...events) {
254
+ for (const event of events)
255
+ this.batchedEvents.add(event);
256
+ // Do not emit when empty
257
+ if (!this.batchedEvents.size)
258
+ return;
259
+ // Do not emit events when batching
260
+ if (this.batchCounter > 0)
261
+ return;
262
+ // Emit new + batched events
263
+ if (this.eventCallback)
264
+ this.eventCallback(this, Array.from(this.batchedEvents));
265
+ this.batchedEvents.clear();
266
+ }
267
+ batchEvents(func, ...events) {
268
+ this.batchCounter += 1;
269
+ const res = func();
270
+ this.batchCounter -= 1;
271
+ this.emitEvents(...events);
272
+ return res;
273
+ }
274
+ static emitsEvents(...events) {
275
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
276
+ return function decorator(_target, _propertyKey, descriptor) {
277
+ const originalMethod = descriptor.value;
278
+ if (!originalMethod)
279
+ throw new Error('No original method!');
280
+ descriptor.value = function (...args) {
281
+ return this.batchEvents(() => originalMethod.apply(this, args), ...events);
282
+ };
283
+ return descriptor;
284
+ };
177
285
  }
178
286
  static serialize(project) {
179
287
  return {
180
288
  name: project.name,
181
- inputFiles: project.inputFiles.map((file) => ProjectInputFile.serialize(file)),
182
- outputFiles: project.outputFiles.map((file) => ProjectOutputFile.serialize(file)),
289
+ inputFiles: project.inputFiles.map((file) => file.serialize()),
290
+ outputFiles: project.outputFiles.map((file) => file.serialize()),
183
291
  configuration: project.configuration
184
292
  };
185
293
  }
@@ -201,4 +309,64 @@ class Project {
201
309
  }
202
310
  }
203
311
  exports.Project = Project;
312
+ __decorate([
313
+ Project.emitsEvents('inputFiles'),
314
+ __metadata("design:type", Function),
315
+ __metadata("design:paramtypes", [Array]),
316
+ __metadata("design:returntype", void 0)
317
+ ], Project.prototype, "addInputFiles", null);
318
+ __decorate([
319
+ Project.emitsEvents('inputFiles'),
320
+ __metadata("design:type", Function),
321
+ __metadata("design:paramtypes", [Array]),
322
+ __metadata("design:returntype", void 0)
323
+ ], Project.prototype, "removeInputFiles", null);
324
+ __decorate([
325
+ Project.emitsEvents('outputFiles'),
326
+ __metadata("design:type", Function),
327
+ __metadata("design:paramtypes", [Array]),
328
+ __metadata("design:returntype", void 0)
329
+ ], Project.prototype, "addOutputFiles", null);
330
+ __decorate([
331
+ Project.emitsEvents('outputFiles'),
332
+ __metadata("design:type", Function),
333
+ __metadata("design:paramtypes", [Array]),
334
+ __metadata("design:returntype", void 0)
335
+ ], Project.prototype, "removeOutputFiles", null);
336
+ __decorate([
337
+ Project.emitsEvents(),
338
+ __metadata("design:type", Function),
339
+ __metadata("design:paramtypes", []),
340
+ __metadata("design:returntype", void 0)
341
+ ], Project.prototype, "expireOutputFiles", null);
342
+ __decorate([
343
+ Project.emitsEvents('configuration'),
344
+ __metadata("design:type", Function),
345
+ __metadata("design:paramtypes", [String, String]),
346
+ __metadata("design:returntype", void 0)
347
+ ], Project.prototype, "setTopLevelModule", null);
348
+ __decorate([
349
+ Project.emitsEvents('configuration'),
350
+ __metadata("design:type", Function),
351
+ __metadata("design:paramtypes", [String, String]),
352
+ __metadata("design:returntype", void 0)
353
+ ], Project.prototype, "setTestbenchPath", null);
354
+ __decorate([
355
+ Project.emitsEvents('inputFiles'),
356
+ __metadata("design:type", Function),
357
+ __metadata("design:paramtypes", [String, Object]),
358
+ __metadata("design:returntype", void 0)
359
+ ], Project.prototype, "setInputFileType", null);
360
+ __decorate([
361
+ Project.emitsEvents('configuration'),
362
+ __metadata("design:type", Function),
363
+ __metadata("design:paramtypes", [Object]),
364
+ __metadata("design:returntype", void 0)
365
+ ], Project.prototype, "updateConfiguration", null);
366
+ __decorate([
367
+ Project.emitsEvents(),
368
+ __metadata("design:type", Function),
369
+ __metadata("design:paramtypes", [Project, Object]),
370
+ __metadata("design:returntype", void 0)
371
+ ], Project.prototype, "importFromProject", null);
204
372
  //# sourceMappingURL=project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "edacation",
3
3
  "description": "Library and CLI for interacting with Yosys and nextpnr.",
4
4
  "license": "MIT",
5
- "version": "0.4.0",
5
+ "version": "0.5.0",
6
6
  "contributors": [
7
7
  "Danielle Huisman <danielle@huisman.me> (https://github.com/DanielleHuisman)",
8
8
  "Mike Almeloo <git@mikealmel.ooo> (https://github.com/DismissedGuy)"