Skip to content

Commit d4e3da6

Browse files
committed
Split options type, add options to all API funs
1 parent 86f98ac commit d4e3da6

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/index.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,11 @@ namespace Yosys {
247247

248248
};
249249

250-
type Options = {
250+
type ConvertOptions = {
251251
propagation?: number,
252+
};
253+
254+
type Options = ConvertOptions & {
252255
optimize?: boolean,
253256
fsmexpand?: boolean,
254257
fsm?: boolean | "nomap",
@@ -390,15 +393,15 @@ function parse_source_positions(str: string): Digitaljs.SourcePosition[] {
390393
return ret;
391394
}
392395

393-
function yosys_to_digitaljs(data: Yosys.Output, portmaps: Portmaps, options: Options = {}): {[key: string]: Digitaljs.Module} {
396+
function yosys_to_digitaljs(data: Yosys.Output, portmaps: Portmaps, options: ConvertOptions = {}): {[key: string]: Digitaljs.Module} {
394397
const out = {};
395398
for (const [name, mod] of Object.entries(data.modules)) {
396399
out[name] = yosys_to_digitaljs_mod(name, mod, portmaps, options);
397400
}
398401
return out
399402
}
400403

401-
function yosys_to_digitaljs_mod(name: string, mod: Yosys.Module, portmaps: Portmaps, options: Options = {}): Digitaljs.Module {
404+
function yosys_to_digitaljs_mod(name: string, mod: Yosys.Module, portmaps: Portmaps, options: ConvertOptions = {}): Digitaljs.Module {
402405
function constbit(bit: Bit) {
403406
return bit == '0' || bit == '1' || bit == 'x';
404407
}
@@ -1177,7 +1180,7 @@ export async function verilator_lint(filenames: string[], dirname?: string, opti
11771180
}
11781181
}
11791182

1180-
export function yosys2digitaljs(obj: Yosys.Output, options: Options = {}): Digitaljs.TopModule {
1183+
export function yosys2digitaljs(obj: Yosys.Output, options: ConvertOptions = {}): Digitaljs.TopModule {
11811184
const portmaps = order_ports(obj);
11821185
const out = yosys_to_digitaljs(obj, portmaps, options);
11831186
const toporder = topsort(module_deps(obj));
@@ -1250,7 +1253,7 @@ export function io_ui(output: Digitaljs.Module) {
12501253
}
12511254
}
12521255

1253-
export async function process_files(data: {[key: string]: string}, options: Options): Promise<Output> {
1256+
export async function process_files(data: {[key: string]: string}, options: Options = {}): Promise<Output> {
12541257
const dir = await tmp.dir();
12551258
const names = [];
12561259
try {
@@ -1268,12 +1271,12 @@ export async function process_files(data: {[key: string]: string}, options: Opti
12681271
}
12691272
}
12701273

1271-
export async function process_sv(text: string): Promise<Output> {
1274+
export async function process_sv(text: string, options: Options = {}): Promise<Output> {
12721275
const tmpsv = await tmp.file({ postfix: '.sv' });
12731276
try {
12741277
await promisify(fs.write)(tmpsv.fd, text);
12751278
await promisify(fs.close)(tmpsv.fd);
1276-
return await process([tmpsv.path]);
1279+
return await process([tmpsv.path], undefined, options);
12771280
} finally {
12781281
tmpsv.cleanup();
12791282
}

0 commit comments

Comments
 (0)