Usable proof of concept of generated variables

This commit is contained in:
Daniel Dunn
2025-04-02 12:41:18 -06:00
parent 0d025a90af
commit 3264640a07
13 changed files with 358 additions and 53 deletions

View File

@@ -0,0 +1,62 @@
export default {
title: 'American Wire Gauge',
columns: [
{
diameter: {
title: 'Diameter',
type: 'number',
unit: 'mm'
}
}
],
data: {
'0000': { diameter: 11.684 },
'000': { diameter: 10.405 },
'00': { diameter: 9.266 },
'0': { diameter: 8.251 },
'(4/0)': { diameter: 11.684 },
'(3/0)': { diameter: 10.405 },
'(2/0)': { diameter: 9.266 },
'(1/0)': { diameter: 8.251 },
'1': { diameter: 7.348 },
'2': { diameter: 6.544 },
'3': { diameter: 5.827 },
'4': { diameter: 5.189 },
'5': { diameter: 4.621 },
'6': { diameter: 4.115 },
'7': { diameter: 3.665 },
'8': { diameter: 3.264 },
'9': { diameter: 2.906 },
'10': { diameter: 2.588 },
'11': { diameter: 2.305 },
'12': { diameter: 2.053 },
'13': { diameter: 1.828 },
'14': { diameter: 1.628 },
'15': { diameter: 1.45 },
'16': { diameter: 1.291 },
'17': { diameter: 1.15 },
'18': { diameter: 1.024 },
'19': { diameter: 0.912 },
'20': { diameter: 0.812 },
'21': { diameter: 0.723 },
'22': { diameter: 0.644 },
'23': { diameter: 0.573 },
'24': { diameter: 0.511 },
'25': { diameter: 0.455 },
'26': { diameter: 0.405 },
'27': { diameter: 0.361 },
'28': { diameter: 0.321 },
'29': { diameter: 0.286 },
'30': { diameter: 0.255 },
'31': { diameter: 0.227 },
'32': { diameter: 0.202 },
'33': { diameter: 0.18 },
'34': { diameter: 0.16 },
'35': { diameter: 0.143 },
'36': { diameter: 0.127 },
'37': { diameter: 0.113 },
'38': { diameter: 0.101 },
'39': { diameter: 0.0897 },
'40': { diameter: 0.0799 }
}
};

View File

@@ -0,0 +1,3 @@
export const allDataTables: { [key: string]: { [key: string]: any } } = {
'american-wire-gauge': {}
};

View File

@@ -0,0 +1,20 @@
export default {
title: 'Material Electrical Properties',
columns: [
{
resistivity_20c: {
title: 'Resistivity at 20°C',
type: 'number',
unit: 'Ω/m'
}
}
],
data: {
copper: {
resistivity: 1.68e-8
},
aluminum: {
resistivity: 2.82e-8
}
}
};

17
src/datatables/index.ts Normal file
View File

@@ -0,0 +1,17 @@
import type { DataTable } from './types.ts';
import { allDataTables } from './data/index';
export async function getDataTable(name: string): Promise<DataTable> {
const x = await import(`./${name}`);
return x.default;
}
export async function listDataTables(): Promise<{ name: string }[]> {
const x: { name: string }[] = [];
for (const key in allDataTables) {
x.push({ name: key });
}
return x;
}
export { DataTable };

19
src/datatables/types.ts Normal file
View File

@@ -0,0 +1,19 @@
/*
Represents a set of rows indexed by a key.
Used for calculator presets
*/
export interface DataTable {
[key: string]: {
title: string;
/* A JSON schema properties */
columns: {
[key: string]: any;
};
data: {
[key: string]: {
[key: string]: any;
};
};
};
}