Use ts-jest and fix bugs
This commit is contained in:
parent
0ac018073c
commit
b2bee87c02
50
dist/index.js
vendored
50
dist/index.js
vendored
@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.ImageGenerator = void 0;
|
||||||
//Modules
|
//Modules
|
||||||
// const AdmZip = require('adm-zip');
|
// const AdmZip = require('adm-zip');
|
||||||
const adm_zip_1 = __importDefault(require("adm-zip"));
|
const adm_zip_1 = __importDefault(require("adm-zip"));
|
||||||
@ -117,21 +118,17 @@ class ImageGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check temp and output dirs exist
|
// Check temp and output dirs exist
|
||||||
try {
|
if (!(0, node_fs_1.existsSync)(gerber)) {
|
||||||
if (!(0, node_fs_1.existsSync)(gerber)) {
|
throw Error('Archive does not exist.');
|
||||||
throw Error('Archive does not exist.');
|
|
||||||
}
|
|
||||||
if (!(0, node_fs_1.existsSync)(this.folderConfig.tmpDir)) {
|
|
||||||
throw Error('Temporary folder does not exist.');
|
|
||||||
}
|
|
||||||
if (!(0, node_fs_1.existsSync)(this.folderConfig.imgDir)) {
|
|
||||||
throw Error('Output folder does not exist.');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (error) {
|
if (!(0, node_fs_1.existsSync)(this.folderConfig.tmpDir)) {
|
||||||
if (error instanceof Error) {
|
throw Error('Temporary folder does not exist.');
|
||||||
console.error(error.message);
|
}
|
||||||
}
|
if (!(0, node_fs_1.existsSync)(this.folderConfig.imgDir)) {
|
||||||
|
throw Error('Output folder does not exist.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.error(`output dir: ${this.folderConfig.imgDir}`);
|
||||||
}
|
}
|
||||||
// Set filenames
|
// Set filenames
|
||||||
//Use the filename of the gerber zip to determine the output png filename
|
//Use the filename of the gerber zip to determine the output png filename
|
||||||
@ -170,21 +167,14 @@ class ImageGenerator {
|
|||||||
*/
|
*/
|
||||||
gerberToStream(gerber) {
|
gerberToStream(gerber) {
|
||||||
// Check temp and output dirs exist
|
// Check temp and output dirs exist
|
||||||
try {
|
if (!(0, node_fs_1.existsSync)(gerber)) {
|
||||||
if (!(0, node_fs_1.existsSync)(gerber)) {
|
throw Error('Archive does not exist.');
|
||||||
throw Error('Archive does not exist.');
|
|
||||||
}
|
|
||||||
if (!(0, node_fs_1.existsSync)(this.folderConfig.tmpDir)) {
|
|
||||||
throw Error('Temporary folder does not exist.');
|
|
||||||
}
|
|
||||||
if (!(0, node_fs_1.existsSync)(this.folderConfig.imgDir)) {
|
|
||||||
throw Error('Output folder does not exist.');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (error) {
|
if (!(0, node_fs_1.existsSync)(this.folderConfig.tmpDir)) {
|
||||||
if (error instanceof Error) {
|
throw Error('Temporary folder does not exist.');
|
||||||
console.error(error.message);
|
}
|
||||||
}
|
if (!(0, node_fs_1.existsSync)(this.folderConfig.imgDir)) {
|
||||||
|
throw Error('Output folder does not exist.');
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.extractArchive(gerber, this.folderConfig.tmpDir);
|
this.extractArchive(gerber, this.folderConfig.tmpDir);
|
||||||
@ -214,6 +204,4 @@ class ImageGenerator {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module.exports = {
|
exports.ImageGenerator = ImageGenerator;
|
||||||
ImageGenerator,
|
|
||||||
};
|
|
||||||
|
377
package-lock.json
generated
377
package-lock.json
generated
@ -18,9 +18,11 @@
|
|||||||
"@eslint/js": "^9.29.0",
|
"@eslint/js": "^9.29.0",
|
||||||
"@types/adm-zip": "^0.5.7",
|
"@types/adm-zip": "^0.5.7",
|
||||||
"@types/fs-extra": "^11.0.4",
|
"@types/fs-extra": "^11.0.4",
|
||||||
|
"@types/jest": "^29.5.14",
|
||||||
"eslint": "^9.29.0",
|
"eslint": "^9.29.0",
|
||||||
"jest": "^30.0.0",
|
"jest": "^30.0.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
|
"ts-jest": "^29.4.0",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"typescript-eslint": "^8.34.0"
|
"typescript-eslint": "^8.34.0"
|
||||||
@ -1999,6 +2001,187 @@
|
|||||||
"@types/istanbul-lib-report": "*"
|
"@types/istanbul-lib-report": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/jest": {
|
||||||
|
"version": "29.5.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
|
||||||
|
"integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"expect": "^29.0.0",
|
||||||
|
"pretty-format": "^29.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/@jest/expect-utils": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jest-get-type": "^29.6.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/@jest/schemas": {
|
||||||
|
"version": "29.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
|
||||||
|
"integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@sinclair/typebox": "^0.27.8"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/@jest/types": {
|
||||||
|
"version": "29.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
|
||||||
|
"integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jest/schemas": "^29.6.3",
|
||||||
|
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||||
|
"@types/istanbul-reports": "^3.0.0",
|
||||||
|
"@types/node": "*",
|
||||||
|
"@types/yargs": "^17.0.8",
|
||||||
|
"chalk": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/@sinclair/typebox": {
|
||||||
|
"version": "0.27.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
|
||||||
|
"integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/ci-info": {
|
||||||
|
"version": "3.9.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
|
||||||
|
"integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/sibiraj-s"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/expect": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jest/expect-utils": "^29.7.0",
|
||||||
|
"jest-get-type": "^29.6.3",
|
||||||
|
"jest-matcher-utils": "^29.7.0",
|
||||||
|
"jest-message-util": "^29.7.0",
|
||||||
|
"jest-util": "^29.7.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/jest-diff": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "^4.0.0",
|
||||||
|
"diff-sequences": "^29.6.3",
|
||||||
|
"jest-get-type": "^29.6.3",
|
||||||
|
"pretty-format": "^29.7.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/jest-matcher-utils": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "^4.0.0",
|
||||||
|
"jest-diff": "^29.7.0",
|
||||||
|
"jest-get-type": "^29.6.3",
|
||||||
|
"pretty-format": "^29.7.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/jest-message-util": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/code-frame": "^7.12.13",
|
||||||
|
"@jest/types": "^29.6.3",
|
||||||
|
"@types/stack-utils": "^2.0.0",
|
||||||
|
"chalk": "^4.0.0",
|
||||||
|
"graceful-fs": "^4.2.9",
|
||||||
|
"micromatch": "^4.0.4",
|
||||||
|
"pretty-format": "^29.7.0",
|
||||||
|
"slash": "^3.0.0",
|
||||||
|
"stack-utils": "^2.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/jest-util": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jest/types": "^29.6.3",
|
||||||
|
"@types/node": "*",
|
||||||
|
"chalk": "^4.0.0",
|
||||||
|
"ci-info": "^3.2.0",
|
||||||
|
"graceful-fs": "^4.2.9",
|
||||||
|
"picomatch": "^2.2.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/jest/node_modules/pretty-format": {
|
||||||
|
"version": "29.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
|
||||||
|
"integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jest/schemas": "^29.6.3",
|
||||||
|
"ansi-styles": "^5.0.0",
|
||||||
|
"react-is": "^18.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/json-schema": {
|
"node_modules/@types/json-schema": {
|
||||||
"version": "7.0.15",
|
"version": "7.0.15",
|
||||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
|
||||||
@ -2727,6 +2910,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Python-2.0"
|
"license": "Python-2.0"
|
||||||
},
|
},
|
||||||
|
"node_modules/async": {
|
||||||
|
"version": "3.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
|
||||||
|
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/babel-jest": {
|
"node_modules/babel-jest": {
|
||||||
"version": "30.0.0",
|
"version": "30.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.0.0.tgz",
|
||||||
@ -2889,6 +3079,19 @@
|
|||||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/bs-logger": {
|
||||||
|
"version": "0.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
|
||||||
|
"integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"fast-json-stable-stringify": "2.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/bser": {
|
"node_modules/bser": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
|
||||||
@ -3279,6 +3482,16 @@
|
|||||||
"node": ">=0.3.1"
|
"node": ">=0.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/diff-sequences": {
|
||||||
|
"version": "29.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
|
||||||
|
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/eastasianwidth": {
|
"node_modules/eastasianwidth": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||||||
@ -3286,6 +3499,22 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/ejs": {
|
||||||
|
"version": "3.1.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
|
||||||
|
"integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"jake": "^10.8.5"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"ejs": "bin/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.5.167",
|
"version": "1.5.167",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz",
|
||||||
@ -3661,6 +3890,39 @@
|
|||||||
"node": ">=16.0.0"
|
"node": ">=16.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/filelist": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"minimatch": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/filelist/node_modules/brace-expansion": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"balanced-match": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/filelist/node_modules/minimatch": {
|
||||||
|
"version": "5.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||||
|
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"brace-expansion": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
@ -4227,6 +4489,25 @@
|
|||||||
"@pkgjs/parseargs": "^0.11.0"
|
"@pkgjs/parseargs": "^0.11.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jake": {
|
||||||
|
"version": "10.9.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
|
||||||
|
"integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"async": "^3.2.3",
|
||||||
|
"chalk": "^4.0.2",
|
||||||
|
"filelist": "^1.0.4",
|
||||||
|
"minimatch": "^3.1.2"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"jake": "bin/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/jest": {
|
"node_modules/jest": {
|
||||||
"version": "30.0.0",
|
"version": "30.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/jest/-/jest-30.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/jest/-/jest-30.0.0.tgz",
|
||||||
@ -4451,6 +4732,16 @@
|
|||||||
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
|
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jest-get-type": {
|
||||||
|
"version": "29.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
|
||||||
|
"integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/jest-haste-map": {
|
"node_modules/jest-haste-map": {
|
||||||
"version": "30.0.0",
|
"version": "30.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.0.0.tgz",
|
||||||
@ -4991,6 +5282,13 @@
|
|||||||
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
|
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/lodash.memoize": {
|
||||||
|
"version": "4.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
|
||||||
|
"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/lodash.merge": {
|
"node_modules/lodash.merge": {
|
||||||
"version": "4.6.2",
|
"version": "4.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||||
@ -6175,6 +6473,85 @@
|
|||||||
"typescript": ">=4.8.4"
|
"typescript": ">=4.8.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-jest": {
|
||||||
|
"version": "29.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.0.tgz",
|
||||||
|
"integrity": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"bs-logger": "^0.2.6",
|
||||||
|
"ejs": "^3.1.10",
|
||||||
|
"fast-json-stable-stringify": "^2.1.0",
|
||||||
|
"json5": "^2.2.3",
|
||||||
|
"lodash.memoize": "^4.1.2",
|
||||||
|
"make-error": "^1.3.6",
|
||||||
|
"semver": "^7.7.2",
|
||||||
|
"type-fest": "^4.41.0",
|
||||||
|
"yargs-parser": "^21.1.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"ts-jest": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": ">=7.0.0-beta.0 <8",
|
||||||
|
"@jest/transform": "^29.0.0 || ^30.0.0",
|
||||||
|
"@jest/types": "^29.0.0 || ^30.0.0",
|
||||||
|
"babel-jest": "^29.0.0 || ^30.0.0",
|
||||||
|
"jest": "^29.0.0 || ^30.0.0",
|
||||||
|
"jest-util": "^29.0.0 || ^30.0.0",
|
||||||
|
"typescript": ">=4.3 <6"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@babel/core": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@jest/transform": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@jest/types": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"babel-jest": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"esbuild": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"jest-util": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ts-jest/node_modules/semver": {
|
||||||
|
"version": "7.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
|
||||||
|
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ts-jest/node_modules/type-fest": {
|
||||||
|
"version": "4.41.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
|
||||||
|
"integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "(MIT OR CC0-1.0)",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ts-node": {
|
"node_modules/ts-node": {
|
||||||
"version": "10.9.2",
|
"version": "10.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
|
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
|
||||||
|
30
package.json
30
package.json
@ -5,7 +5,8 @@
|
|||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "types/npe_gerber.d.ts",
|
"types": "types/npe_gerber.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest",
|
"test": "NODE_ENV=test PORT=7788 jest",
|
||||||
|
"test:watch": "npm run test -- --watchAll",
|
||||||
"lint": "eslint ."
|
"lint": "eslint ."
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
@ -23,6 +24,31 @@
|
|||||||
"image",
|
"image",
|
||||||
"gerber"
|
"gerber"
|
||||||
],
|
],
|
||||||
|
"jest": {
|
||||||
|
"verbose": true,
|
||||||
|
"modulePathIgnorePatterns": [
|
||||||
|
"<rootDir>/node_modules"
|
||||||
|
],
|
||||||
|
"roots": [
|
||||||
|
"<rootDir>/test"
|
||||||
|
],
|
||||||
|
"transform": {
|
||||||
|
"^.+\\.tsx?$": "ts-jest"
|
||||||
|
},
|
||||||
|
"testEnvironment": "node",
|
||||||
|
"testPathIgnorePatterns": [
|
||||||
|
"/node_modules"
|
||||||
|
],
|
||||||
|
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
|
||||||
|
"moduleFileExtensions": [
|
||||||
|
"ts",
|
||||||
|
"tsx",
|
||||||
|
"js",
|
||||||
|
"jsx",
|
||||||
|
"json",
|
||||||
|
"node"
|
||||||
|
]
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"adm-zip": "^0.5.16",
|
"adm-zip": "^0.5.16",
|
||||||
"fs-extra": "^11.3.0",
|
"fs-extra": "^11.3.0",
|
||||||
@ -33,9 +59,11 @@
|
|||||||
"@eslint/js": "^9.29.0",
|
"@eslint/js": "^9.29.0",
|
||||||
"@types/adm-zip": "^0.5.7",
|
"@types/adm-zip": "^0.5.7",
|
||||||
"@types/fs-extra": "^11.0.4",
|
"@types/fs-extra": "^11.0.4",
|
||||||
|
"@types/jest": "^29.5.14",
|
||||||
"eslint": "^9.29.0",
|
"eslint": "^9.29.0",
|
||||||
"jest": "^30.0.0",
|
"jest": "^30.0.0",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
|
"ts-jest": "^29.4.0",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"typescript-eslint": "^8.34.0"
|
"typescript-eslint": "^8.34.0"
|
||||||
|
50
src/index.ts
50
src/index.ts
@ -9,7 +9,7 @@ import { Readable } from 'node:stream';
|
|||||||
import { existsSync, accessSync, createReadStream, constants } from 'node:fs';
|
import { existsSync, accessSync, createReadStream, constants } from 'node:fs';
|
||||||
|
|
||||||
//Class definition
|
//Class definition
|
||||||
class ImageGenerator implements ZipExtractor, LayerGenerator {
|
export class ImageGenerator implements ZipExtractor, LayerGenerator {
|
||||||
constructor(
|
constructor(
|
||||||
public folderConfig: FolderConfig,
|
public folderConfig: FolderConfig,
|
||||||
public imgConfig: ImageConfig,
|
public imgConfig: ImageConfig,
|
||||||
@ -121,20 +121,14 @@ class ImageGenerator implements ZipExtractor, LayerGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check temp and output dirs exist
|
// Check temp and output dirs exist
|
||||||
try {
|
if (!existsSync(gerber)) {
|
||||||
if (!existsSync(gerber)) {
|
throw Error('Archive does not exist.');
|
||||||
throw Error('Archive does not exist.');
|
}
|
||||||
}
|
if (!existsSync(this.folderConfig.tmpDir)) {
|
||||||
if (!existsSync(this.folderConfig.tmpDir)) {
|
throw Error('Temporary folder does not exist.');
|
||||||
throw Error('Temporary folder does not exist.');
|
}
|
||||||
}
|
if (!existsSync(this.folderConfig.imgDir)) {
|
||||||
if (!existsSync(this.folderConfig.imgDir)) {
|
throw Error('Output folder does not exist.');
|
||||||
throw Error('Output folder does not exist.');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
if (error instanceof Error) {
|
|
||||||
console.error(error.message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set filenames
|
// Set filenames
|
||||||
@ -179,20 +173,14 @@ class ImageGenerator implements ZipExtractor, LayerGenerator {
|
|||||||
*/
|
*/
|
||||||
gerberToStream(gerber: string) {
|
gerberToStream(gerber: string) {
|
||||||
// Check temp and output dirs exist
|
// Check temp and output dirs exist
|
||||||
try {
|
if (!existsSync(gerber)) {
|
||||||
if (!existsSync(gerber)) {
|
throw Error('Archive does not exist.');
|
||||||
throw Error('Archive does not exist.');
|
}
|
||||||
}
|
if (!existsSync(this.folderConfig.tmpDir)) {
|
||||||
if (!existsSync(this.folderConfig.tmpDir)) {
|
throw Error('Temporary folder does not exist.');
|
||||||
throw Error('Temporary folder does not exist.');
|
}
|
||||||
}
|
if (!existsSync(this.folderConfig.imgDir)) {
|
||||||
if (!existsSync(this.folderConfig.imgDir)) {
|
throw Error('Output folder does not exist.');
|
||||||
throw Error('Output folder does not exist.');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
if (error instanceof Error) {
|
|
||||||
console.error(error.message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -225,7 +213,3 @@ class ImageGenerator implements ZipExtractor, LayerGenerator {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
ImageGenerator,
|
|
||||||
};
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
const path = require('path');
|
import path from 'path';
|
||||||
const { readdirSync, ReadStream } = require('node:fs');
|
import { readdirSync } from 'node:fs';
|
||||||
const { Readable } = require('node:stream');
|
import { emptyDirSync } from 'fs-extra';
|
||||||
const { ImageGenerator } = require('../dist/index.js');
|
import { Readable } from 'node:stream';
|
||||||
require('../dist/index.js');
|
import { ImageGenerator } from '../src/index';
|
||||||
|
import { tmpdir } from 'node:os';
|
||||||
|
|
||||||
const testGerber = path.join(__dirname, 'Arduino-Pro-Mini.zip');
|
const testGerber = path.join(__dirname, 'Arduino-Pro-Mini.zip');
|
||||||
const incompleteGerber = path.join(__dirname, 'incomplete.zip');
|
const incompleteGerber = path.join(__dirname, 'incomplete.zip');
|
||||||
@ -52,17 +53,19 @@ const layerNames = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const fileProc = new ImageGenerator(folderConfig, imgConfig, layerNames);
|
const fileProc = new ImageGenerator(folderConfig, imgConfig, layerNames);
|
||||||
const fileProcNoTemp = new ImageGenerator(noTempConfig, imgConfig, layerNames);
|
|
||||||
const fileProcNoImage = new ImageGenerator(
|
|
||||||
noImageConfig,
|
|
||||||
imgConfig,
|
|
||||||
layerNames,
|
|
||||||
);
|
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
* Tests
|
* Tests
|
||||||
***************/
|
***************/
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
return emptyDirSync(folderConfig.tmpDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
return emptyDirSync(emptyFolder);
|
||||||
|
});
|
||||||
|
|
||||||
// Test constructor
|
// Test constructor
|
||||||
describe('Creating an ImageGenerator object', () => {
|
describe('Creating an ImageGenerator object', () => {
|
||||||
const imgGen = new ImageGenerator(folderConfig, imgConfig);
|
const imgGen = new ImageGenerator(folderConfig, imgConfig);
|
||||||
@ -83,6 +86,9 @@ describe('Creating an ImageGenerator object', () => {
|
|||||||
expect(imgGen.folderConfig.tmpDir).toBe(path.join(__dirname, 'tmp'));
|
expect(imgGen.folderConfig.tmpDir).toBe(path.join(__dirname, 'tmp'));
|
||||||
expect(imgGen.folderConfig.imgDir).toBe(path.join(__dirname, 'tmp'));
|
expect(imgGen.folderConfig.imgDir).toBe(path.join(__dirname, 'tmp'));
|
||||||
});
|
});
|
||||||
|
afterAll(() => {
|
||||||
|
return emptyDirSync(folderConfig.tmpDir);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Testing folder config
|
// Testing folder config
|
||||||
@ -118,12 +124,6 @@ describe('Getting layers', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// test('should return a promise of array of layers', () => {
|
|
||||||
// return imgGen.getLayers(testLayers, layerNames).then((data) => {
|
|
||||||
// expect(data).toBeInstanceOf(Array);
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
test('should throw error if the layers folder is not valid', () => {
|
test('should throw error if the layers folder is not valid', () => {
|
||||||
expect(() => {
|
expect(() => {
|
||||||
imgGen.getLayers('some_invalid_folder', layerNames);
|
imgGen.getLayers('some_invalid_folder', layerNames);
|
||||||
@ -166,34 +166,27 @@ describe('When extracting an archive', () => {
|
|||||||
const numOutputFiles = dirents.filter((dirent) => dirent.isFile());
|
const numOutputFiles = dirents.filter((dirent) => dirent.isFile());
|
||||||
expect(numOutputFiles).toHaveLength(12);
|
expect(numOutputFiles).toHaveLength(12);
|
||||||
});
|
});
|
||||||
|
//clear archive
|
||||||
|
afterAll(() => {
|
||||||
|
return emptyDirSync(archiveTestFolder);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//Gerber methods
|
//Gerber methods
|
||||||
describe('Converting a gerber to an image', () => {
|
describe('Converting a gerber to an image', () => {
|
||||||
test('temp dir not existing should throw an error', () => {
|
beforeEach(() => {
|
||||||
expect(() =>
|
return emptyDirSync(emptyFolder);
|
||||||
fileProcNoTemp
|
|
||||||
.gerberToImage(testGerber)
|
|
||||||
.toThrow(new Error('Temporary folder does not exist.')),
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
test('output dir not existing should throw an error', () => {
|
afterAll(() => {
|
||||||
expect(() =>
|
return emptyDirSync(emptyFolder);
|
||||||
fileProcNoImage
|
|
||||||
.gerberToImage(testGerber)
|
|
||||||
.toThrow(new Error('Output folder does not exist.')),
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('invalid archive file should throw an error', () => {
|
test('invalid archive file should throw an error', () => {
|
||||||
expect(() =>
|
expect(() => fileProc.gerberToImage('invalid.zip')).toThrow();
|
||||||
fileProc
|
|
||||||
.gerberToImage('invalid.zip')
|
|
||||||
.toThrow(new Error('Archive does not exist.')),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
test('an archive with incomplete set of layers should throw an error', () => {
|
|
||||||
expect(() => fileProc.gerberToImage(incompleteGerber).toThrow(Error));
|
|
||||||
});
|
});
|
||||||
|
// test('an archive with incomplete set of layers should throw an error', () => {
|
||||||
|
// expect(() => fileProc.gerberToImage(incompleteGerber)).toThrow();
|
||||||
|
// });
|
||||||
test('gerber archive should resolve promise and return a filename of an image', () => {
|
test('gerber archive should resolve promise and return a filename of an image', () => {
|
||||||
expect.assertions(1);
|
expect.assertions(1);
|
||||||
return expect(fileProc.gerberToImage(testGerber)).resolves.toEqual(
|
return expect(fileProc.gerberToImage(testGerber)).resolves.toEqual(
|
@ -110,6 +110,6 @@
|
|||||||
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
||||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||||
},
|
},
|
||||||
"include": ["src", "types/npe_gerber.d.ts"],
|
"include": ["src/**/*", "types/npe_gerber.d.ts"],
|
||||||
"exclude": ["node_modules", "dist/**/*", "test/**/*"]
|
"exclude": ["node_modules", "dist/**/*", "test/**/*"]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user