Refactor and new part interface
This commit is contained in:
parent
0790309216
commit
c9fded6aec
39
src/index.ts
39
src/index.ts
@ -1,44 +1,7 @@
|
||||
// Modules
|
||||
// import csv from 'csvtojson';
|
||||
// import { Converter } from 'csvtojson/v2/Converter';
|
||||
import { rejectedParts } from './rejectedParts';
|
||||
|
||||
// Return false if the Part value of the object passed in is in the list to remove
|
||||
function isJunk(element: part) {
|
||||
return !rejectedParts.includes(element.Part);
|
||||
}
|
||||
|
||||
function getPartType(component: part) {
|
||||
if (component.Part.match(/^C\d/) != null) {
|
||||
return 'C';
|
||||
} else if (component.Part.match(/^R\d/) != null) {
|
||||
return 'R';
|
||||
}
|
||||
return 'Q';
|
||||
}
|
||||
|
||||
function getJSONParts(allParts: part[]) {
|
||||
const jsonParts: structuredParts = {
|
||||
C: {},
|
||||
R: {},
|
||||
Q: {},
|
||||
};
|
||||
|
||||
allParts.map((partEntry: part) => {
|
||||
// Sort parts into capacitors, resistors and others
|
||||
switch (getPartType(partEntry)) {
|
||||
case 'C':
|
||||
jsonParts.C[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
case 'R':
|
||||
jsonParts.R[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
default:
|
||||
jsonParts.Q[partEntry.Part] = partEntry.Value;
|
||||
}
|
||||
});
|
||||
return jsonParts;
|
||||
}
|
||||
import { isJunk, getPartType } from './utils';
|
||||
|
||||
/* TODO
|
||||
// Format the HTML nicely and output to a pre code block
|
||||
|
18
src/parts.d.ts
vendored
18
src/parts.d.ts
vendored
@ -1,5 +1,15 @@
|
||||
enum PartType {
|
||||
R,
|
||||
C,
|
||||
D,
|
||||
Q,
|
||||
IC,
|
||||
COMPONENT,
|
||||
}
|
||||
|
||||
declare interface part {
|
||||
Part: string;
|
||||
PartType: PartType;
|
||||
Value: string;
|
||||
}
|
||||
|
||||
@ -10,7 +20,13 @@ declare interface structuredParts {
|
||||
R: {
|
||||
[key: string]: string;
|
||||
};
|
||||
Q: {
|
||||
Q?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
IC?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
COMPONENT?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
}
|
||||
|
@ -1,22 +0,0 @@
|
||||
// Which components should we remove from the BOM?
|
||||
export const rejectedParts = [
|
||||
'TP1',
|
||||
'TP2',
|
||||
'TP3',
|
||||
'G',
|
||||
'U$1',
|
||||
'S1',
|
||||
'J1',
|
||||
'J2',
|
||||
'JP1',
|
||||
'JP2',
|
||||
'V',
|
||||
'I',
|
||||
'O',
|
||||
'T1',
|
||||
'T2',
|
||||
'T3',
|
||||
'INPUT',
|
||||
'IN',
|
||||
'OUT',
|
||||
];
|
70
src/utils.ts
Normal file
70
src/utils.ts
Normal file
@ -0,0 +1,70 @@
|
||||
export function isJunk(element: part): boolean {
|
||||
// Returns true if element is in the rejected list
|
||||
return rejectedParts.includes(element.Part);
|
||||
}
|
||||
|
||||
export function getPartType(component: part) {
|
||||
if (component.Part.match(/^C\d/) != null) {
|
||||
return 'C';
|
||||
} else if (component.Part.match(/^R\d/) != null) {
|
||||
return 'R';
|
||||
} else if (component.Part.match(/^Q\d/) != null) {
|
||||
return 'Q';
|
||||
} else if (component.Part.match(/^IC\d/) != null) {
|
||||
return 'IC';
|
||||
}
|
||||
return 'COMPONENT';
|
||||
}
|
||||
|
||||
// TODO
|
||||
/*
|
||||
function getJSONParts(allParts: part[]) {
|
||||
const jsonParts: structuredParts = {
|
||||
C: {},
|
||||
R: {},
|
||||
};
|
||||
|
||||
allParts.map((partEntry: part) => {
|
||||
// Sort parts into capacitors, resistors and others
|
||||
switch (getPartType(partEntry)) {
|
||||
case 'C':
|
||||
jsonParts.C[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
case 'R':
|
||||
jsonParts.R[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
case 'Q':
|
||||
jsonParts.Q?[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
case 'IC':
|
||||
jsonParts.IC?[partEntry.Part] = partEntry.Value;
|
||||
break;
|
||||
default:
|
||||
jsonParts.COMPONENT?[partEntry.Part] = partEntry.Value;
|
||||
}
|
||||
});
|
||||
return jsonParts;
|
||||
}
|
||||
*/
|
||||
|
||||
const rejectedParts = [
|
||||
'TP1',
|
||||
'TP2',
|
||||
'TP3',
|
||||
'G',
|
||||
'U$1',
|
||||
'S1',
|
||||
'J1',
|
||||
'J2',
|
||||
'JP1',
|
||||
'JP2',
|
||||
'V',
|
||||
'I',
|
||||
'O',
|
||||
'T1',
|
||||
'T2',
|
||||
'T3',
|
||||
'INPUT',
|
||||
'IN',
|
||||
'OUT',
|
||||
];
|
Loading…
x
Reference in New Issue
Block a user