From 99793599dda6d97c2345367a46c4d72496e4368f Mon Sep 17 00:00:00 2001 From: Nick Playfair <842413+nplayfair@users.noreply.github.com> Date: Sat, 14 Jun 2025 22:14:45 +0100 Subject: [PATCH] Remove most dependency on fs-extra --- index.js | 28 ++++++++++++++++++++++------ test/index.test.js | 8 +++----- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 627503b..1b2f96d 100644 --- a/index.js +++ b/index.js @@ -1,12 +1,27 @@ //Modules const AdmZip = require('adm-zip'); -const fs = require('fs-extra'); +const { emptyDirSync } = require('fs-extra'); const path = require('path'); const pcbStackup = require('pcb-stackup'); const sharp = require('sharp'); -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const { Buffer } = require('node:buffer'); -const { existsSync, accessSync, constants } = require('node:fs'); +const { + existsSync, + accessSync, + createReadStream, + mkdirSync, + chmodSync, + constants, +} = require('node:fs'); + +//ensureDirSync method +function ensureDirSync(directory) { + if (!existsSync(directory)) { + mkdirSync(directory, { recursive: true }); + chmodSync(directory, 0o644); + } +} //Class definition class ImageGenerator { @@ -105,7 +120,7 @@ class ImageGenerator { // Construct array of layers that match the supplied filenames array const layers = layerNames.map((layerName) => ({ filename: layerName, - gerber: fs.createReadStream(path.join(dir, layerName)), + gerber: createReadStream(path.join(dir, layerName)), })); return resolve(layers); }); @@ -118,7 +133,7 @@ class ImageGenerator { static cleanupFiles(dir) { try { const folder = path.join(dir, 'archive'); - fs.emptyDirSync(folder); + emptyDirSync(folder); } catch (err) { throw new Error(err); } @@ -133,7 +148,8 @@ class ImageGenerator { gerberToImage(gerber) { // Create output dir if it doesn't exist try { - fs.ensureDirSync(this.imgDir, 0o644); + // fs.ensureDirSync(this.imgDir, 0o644); + ensureDirSync(this.imgDir); } catch (e) { throw new Error(e); } diff --git a/test/index.test.js b/test/index.test.js index 8ef9d1f..ab35df7 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -1,8 +1,6 @@ -/* eslint-disable */ const path = require('path'); -const fs = require('fs-extra'); -const { readdirSync, Dirent } = require('node:fs'); -const Readable = require('stream').Readable; +const { readdirSync, ReadStream } = require('node:fs'); +const { Readable } = require('node:stream'); const { ImageGenerator } = require('../index.js'); require('../index.js'); @@ -121,7 +119,7 @@ describe('Getting layers', () => { expect.arrayContaining([ expect.objectContaining({ filename: expect.any(String), - gerber: expect.any(fs.ReadStream), + gerber: expect.any(ReadStream), }), ]), );