diff --git a/lib/plugins.js b/lib/plugins.js index 29c894a..7a4ba8b 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -19,10 +19,6 @@ let DEFAULTS = [{ key: "sass", bucket: "styles", plugin: "faucet-pipeline-sass" -}, { - key: "static", - bucket: "static", - plugin: "faucet-pipeline-static" }, { key: "images", bucket: "static", diff --git a/lib/util/files/finder.js b/lib/util/files/finder.js deleted file mode 100644 index 2cf86d9..0000000 --- a/lib/util/files/finder.js +++ /dev/null @@ -1,59 +0,0 @@ -let { readdir, stat } = require("fs/promises"); -let path = require("path"); - -exports.FileFinder = class FileFinder { - constructor(directory, { skipDotfiles, filter = () => true } = {}) { - this.directory = directory; - this.filter = filename => { - if(skipDotfiles && isDotfile(filename)) { - return false; - } - return filter(filename); - }; - } - - // returns a list of relative file paths within the respective directory - all() { - return tree(this.directory). - then(filenames => filenames.filter(this.filter)); - } - - // returns all file paths that match the filter function - match(filepaths) { - return filesWithinDirectory(this.directory, filepaths). - then(filepaths => filepaths.filter(this.filter)); - } -}; - -function tree(filepath, referenceDir = filepath) { - return stat(filepath). - then(res => { - if(!res.isDirectory()) { - return [path.relative(referenceDir, filepath)]; - } - - return readdir(filepath). - then(entries => { - let res = Promise.all(entries.map(entry => { - return tree(path.join(filepath, entry), referenceDir); - })); - return res.then(flatten); - }); - }); -} - -function filesWithinDirectory(directory, files) { - return new Promise(resolve => { - resolve(files. - map(filepath => path.relative(directory, filepath)). - filter(filename => !filename.startsWith(".."))); - }); -} - -function isDotfile(filename) { - return path.basename(filename).startsWith("."); -} - -function flatten(arr) { - return [].concat.apply([], arr); -} diff --git a/test/fixtures/node_modules/faucet-pipeline-static/index.js b/test/fixtures/node_modules/faucet-pipeline-assets/index.js similarity index 53% rename from test/fixtures/node_modules/faucet-pipeline-static/index.js rename to test/fixtures/node_modules/faucet-pipeline-assets/index.js index dcf60f1..04ac56a 100644 --- a/test/fixtures/node_modules/faucet-pipeline-static/index.js +++ b/test/fixtures/node_modules/faucet-pipeline-assets/index.js @@ -1,5 +1,5 @@ "use strict"; -exports.key = "static"; -exports.bucket = "scripts"; +exports.key = "assets"; +exports.bucket = "static"; exports.plugin = function faucetStatic() {}; diff --git a/test/test_plugins.js b/test/test_plugins.js index 8c9a0d9..29728a7 100644 --- a/test/test_plugins.js +++ b/test/test_plugins.js @@ -25,10 +25,6 @@ let DEFAULTS = { bucket: "styles", plugin: "faucet-pipeline-sass" }, - static: { - bucket: "static", - plugin: "faucet-pipeline-static" - }, images: { bucket: "static", plugin: "faucet-pipeline-images" diff --git a/test/test_util.js b/test/test_util.js index cad64c9..03f148b 100644 --- a/test/test_util.js +++ b/test/test_util.js @@ -1,15 +1,10 @@ "use strict"; let { generateFingerprint } = require("../lib/util"); -let { FileFinder } = require("../lib/util/files/finder"); let { describe, it } = require("node:test"); -let path = require("path"); let assert = require("assert"); let assertSame = assert.strictEqual; -let assertDeep = assert.deepStrictEqual; - -let FIXTURES_PATH = path.resolve(__dirname, "fixtures"); describe("fingerprinting", () => { it("generates a content-dependent hash", () => { @@ -25,113 +20,3 @@ describe("fingerprinting", () => { assertSame(fingerprint, "/path/to/baz-8047cfaac755e5c7f77af066123980a5"); }); }); - -describe("FileFinder", () => { - it("finds all files within a folder", () => { - let fileFinder = new FileFinder(FIXTURES_PATH); - - return fileFinder.all(). - then(allFiles => { - assertDeep(allFiles, [ - "dud.js", - "dummy/.keep", - "dummy/index.js", - "dummy/src.js", - "node_modules/dummy/images/.keep", - "node_modules/dummy/index.js", - "node_modules/dummy/pkg.js", - "node_modules/faucet-pipeline-dummy/index.js", - "node_modules/faucet-pipeline-invalid-a/index.js", - "node_modules/faucet-pipeline-invalid-b/index.js", - "node_modules/faucet-pipeline-invalid-c/index.js", - "node_modules/faucet-pipeline-js/index.js", - "node_modules/faucet-pipeline-sass/index.js", - "node_modules/faucet-pipeline-static/index.js" - ]); - }); - }); - - it("finds all files within a folder without dotfiles", () => { - let fileFinder = new FileFinder(FIXTURES_PATH, { skipDotfiles: true }); - - return fileFinder.all(). - then(allFiles => { - assertDeep(allFiles, [ - "dud.js", - "dummy/index.js", - "dummy/src.js", - "node_modules/dummy/index.js", - "node_modules/dummy/pkg.js", - "node_modules/faucet-pipeline-dummy/index.js", - "node_modules/faucet-pipeline-invalid-a/index.js", - "node_modules/faucet-pipeline-invalid-b/index.js", - "node_modules/faucet-pipeline-invalid-c/index.js", - "node_modules/faucet-pipeline-js/index.js", - "node_modules/faucet-pipeline-sass/index.js", - "node_modules/faucet-pipeline-static/index.js" - ]); - }); - }); - - it("finds all files within a folder with a filter", () => { - let fileFinder = new FileFinder(FIXTURES_PATH, { - filter: filename => path.basename(filename) === "index.js" - }); - - return fileFinder.all(). - then(allFiles => { - assertDeep(allFiles, [ - "dummy/index.js", - "node_modules/dummy/index.js", - "node_modules/faucet-pipeline-dummy/index.js", - "node_modules/faucet-pipeline-invalid-a/index.js", - "node_modules/faucet-pipeline-invalid-b/index.js", - "node_modules/faucet-pipeline-invalid-c/index.js", - "node_modules/faucet-pipeline-js/index.js", - "node_modules/faucet-pipeline-sass/index.js", - "node_modules/faucet-pipeline-static/index.js" - ]); - }); - }); - - it("matches given files", () => { - let fileFinder = new FileFinder(FIXTURES_PATH); - let foo = [ - path.resolve(FIXTURES_PATH, "dummy/index.js"), - path.resolve(FIXTURES_PATH, "something.js"), - path.resolve(FIXTURES_PATH, "../other/something.js") - ]; - - fileFinder.match(foo). - then(allFiles => { - assertDeep(allFiles, ["dummy/index.js", "something.js"]); - }); - }); - - it("matches given files without dotfiles", () => { - let fileFinder = new FileFinder(FIXTURES_PATH, { skipDotfiles: true }); - let foo = [ - path.resolve(FIXTURES_PATH, ".secret") - ]; - - return fileFinder.match(foo). - then(allFiles => { - assertDeep(allFiles, []); - }); - }); - - it("matches given files with custom finder", () => { - let fileFinder = new FileFinder(FIXTURES_PATH, { - filter: filename => path.basename(filename) === "index.js" - }); - let foo = [ - path.resolve(FIXTURES_PATH, "index.js"), - path.resolve(FIXTURES_PATH, "something.js") - ]; - - fileFinder.match(foo). - then(allFiles => { - assertDeep(allFiles, ["index.js"]); - }); - }); -});