Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BREAKING] Transform module to ESM #398

Merged
merged 42 commits into from
Oct 24, 2022
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
ec2b912
Update testing dependencies for ESM
matz3 Sep 13, 2022
cc5f339
Transform lib/
matz3 Sep 13, 2022
d4e76a1
Transform test/
matz3 Sep 13, 2022
ba2d7de
Update package.json / .eslintrc
matz3 Sep 13, 2022
f281212
fix test/lib/Resource.js
flovogt Sep 13, 2022
d0b2c5f
fix traceSummary.js
flovogt Sep 13, 2022
7ee3ffd
wip fsInterface.js
flovogt Sep 13, 2022
0663c9c
fix test/lib/fsInterface.js
flovogt Sep 14, 2022
446b445
fix index.js
flovogt Sep 14, 2022
e78b4af
fix: resourceFactory.js and index.js
flovogt Sep 14, 2022
d31e9a0
fix: lib/glob.js
flovogt Sep 14, 2022
4ef5138
fix adapters/Memory_read.js
flovogt Sep 14, 2022
46a969a
fix adapters/Memory_write.js
flovogt Sep 14, 2022
e266886
WIP
flovogt Sep 14, 2022
0124e3f
fix test/lib/adapters/FileSystem_write.js
flovogt Sep 15, 2022
a60adb6
fix lib/readers/Link.js
flovogt Sep 15, 2022
97455b0
fix jsdoc command
flovogt Sep 15, 2022
1a32a26
Ignore @istanbuljs/esm-loader-hook in depcheck
matz3 Sep 16, 2022
eeefd4c
[BREAKING CHAMGE] AbstractReader: migrate subreader calls to async
flovogt Sep 23, 2022
e2abf9f
Increase coverage
flovogt Sep 23, 2022
0e2fce5
Increase coverage
flovogt Sep 23, 2022
0346cdb
Increase Coverage
flovogt Sep 23, 2022
e421d9e
remove not needed esmock purge
flovogt Sep 23, 2022
3774898
Define package exports
matz3 Sep 27, 2022
32d38f0
Adopt package-exports test
matz3 Sep 28, 2022
c2b4d21
WIP: Update jsdoc + module export
matz3 Sep 28, 2022
0db2e2f
JSDoc: resourceFactory
matz3 Sep 29, 2022
de968f9
jsdoc v1
flovogt Sep 29, 2022
40d6e64
jsdoc: replace '.' with '/'
flovogt Sep 29, 2022
a09bf51
Workaround for jsdoc issue
matz3 Sep 29, 2022
c6873db
jsdoc: update alias
flovogt Sep 29, 2022
c68a1aa
jsdoc: add missing class tags
flovogt Sep 29, 2022
1f1a3b8
style: remove duplicate empty line
flovogt Sep 29, 2022
7398326
fix: named exports
flovogt Sep 30, 2022
93d4211
jsdoc: align to latest discussions
flovogt Sep 30, 2022
6f2a73c
fix class tag with alias
flovogt Sep 30, 2022
0935010
Further jsdoc fixes
matz3 Oct 4, 2022
8a5ad42
Fix tests / coverage excludes
matz3 Oct 4, 2022
6a1a486
Fix Link/Filter JSDoc, make Transformer private
matz3 Oct 7, 2022
3d43fd3
add empty line before comment
flovogt Oct 20, 2022
aa1afa9
remove duplicate space and use node:fs/promises in fsInterface test
flovogt Oct 24, 2022
9c721be
add test to check number of exports
flovogt Oct 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .eslintrc.js → .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
module.exports = {
"parserOptions": {
"sourceType": "module",
},
"env": {
"node": true,
"es2021": true
Expand Down
6 changes: 3 additions & 3 deletions lib/AbstractReader.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const randomInt = require("random-int");
const Trace = require("./tracing/Trace");
import randomInt from "random-int";
import Trace from "./tracing/Trace.js";

/**
* Abstract resource locator
Expand Down Expand Up @@ -168,4 +168,4 @@ class AbstractReader {
}
}

module.exports = AbstractReader;
export default AbstractReader;
4 changes: 2 additions & 2 deletions lib/AbstractReaderWriter.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const AbstractReader = require("./AbstractReader");
import AbstractReader from "./AbstractReader.js";

/**
* Abstract resource locator
Expand Down Expand Up @@ -57,4 +57,4 @@ class AbstractReaderWriter extends AbstractReader {
}
}

module.exports = AbstractReaderWriter;
export default AbstractReaderWriter;
6 changes: 3 additions & 3 deletions lib/DuplexCollection.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const AbstractReaderWriter = require("./AbstractReaderWriter");
const ReaderCollectionPrioritized = require("./ReaderCollectionPrioritized");
import AbstractReaderWriter from "./AbstractReaderWriter.js";
import ReaderCollectionPrioritized from "./ReaderCollectionPrioritized.js";

/**
* Wrapper to keep readers and writers together
Expand Down Expand Up @@ -90,4 +90,4 @@ class DuplexCollection extends AbstractReaderWriter {
}
}

module.exports = DuplexCollection;
export default DuplexCollection;
4 changes: 2 additions & 2 deletions lib/ReaderCollection.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const AbstractReader = require("./AbstractReader");
import AbstractReader from "./AbstractReader.js";

/**
* Resource Locator ReaderCollection
Expand Down Expand Up @@ -79,4 +79,4 @@ class ReaderCollection extends AbstractReader {
}
}

module.exports = ReaderCollection;
export default ReaderCollection;
4 changes: 2 additions & 2 deletions lib/ReaderCollectionPrioritized.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const AbstractReader = require("./AbstractReader");
import AbstractReader from "./AbstractReader.js";

/**
* Prioritized Resource Locator Collection
Expand Down Expand Up @@ -83,4 +83,4 @@ class ReaderCollectionPrioritized extends AbstractReader {
}
}

module.exports = ReaderCollectionPrioritized;
export default ReaderCollectionPrioritized;
8 changes: 4 additions & 4 deletions lib/Resource.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const stream = require("stream");
const clone = require("clone");
const path = require("path");
import stream from "node:stream";
import clone from "clone";
import path from "node:path";

const fnTrue = () => true;
const fnFalse = () => false;
Expand Down Expand Up @@ -426,4 +426,4 @@ class Resource {
}
}

module.exports = Resource;
export default Resource;
2 changes: 1 addition & 1 deletion lib/ResourceFacade.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,4 @@ class ResourceFacade {
}
}

module.exports = ResourceFacade;
export default ResourceFacade;
4 changes: 2 additions & 2 deletions lib/ResourceTagCollection.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const tagNamespaceRegExp = /^[a-z][a-z0-9]+$/; // part before the colon
const tagNameRegExp = /^[A-Z][A-Za-z0-9]+$/; // part after the colon
const ResourceFacade = require("./ResourceFacade");
import ResourceFacade from "./ResourceFacade.js";

class ResourceTagCollection {
constructor({allowedTags = [], allowedNamespaces = [], tags}) {
Expand Down Expand Up @@ -114,4 +114,4 @@ class ResourceTagCollection {
}
}

module.exports = ResourceTagCollection;
export default ResourceTagCollection;
8 changes: 4 additions & 4 deletions lib/WriterCollection.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const AbstractReaderWriter = require("./AbstractReaderWriter");
const ReaderCollection = require("./ReaderCollection");
const escapeStringRegExp = require("escape-string-regexp");
import AbstractReaderWriter from "./AbstractReaderWriter.js";
import ReaderCollection from "./ReaderCollection.js";
import escapeStringRegExp from "escape-string-regexp";

/**
* Resource Locator WriterCollection
Expand Down Expand Up @@ -114,4 +114,4 @@ class WriterCollection extends AbstractReaderWriter {
}
}

module.exports = WriterCollection;
export default WriterCollection;
13 changes: 7 additions & 6 deletions lib/adapters/AbstractAdapter.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const log = require("@ui5/logger").getLogger("resources:adapters:AbstractAdapter");
const minimatch = require("minimatch");
const micromatch = require("micromatch");
const AbstractReaderWriter = require("../AbstractReaderWriter");
const Resource = require("../Resource");
import logger from "@ui5/logger";
const log = logger.getLogger("resources:adapters:AbstractAdapter");
import minimatch from "minimatch";
import micromatch from "micromatch";
import AbstractReaderWriter from "../AbstractReaderWriter.js";
import Resource from "../Resource.js";

/**
* Abstract Resource Adapter
Expand Down Expand Up @@ -203,4 +204,4 @@ class AbstractAdapter extends AbstractReaderWriter {
}
}

module.exports = AbstractAdapter;
export default AbstractAdapter;
35 changes: 17 additions & 18 deletions lib/adapters/FileSystem.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
const log = require("@ui5/logger").getLogger("resources:adapters:FileSystem");
const path = require("path");
const {promisify} = require("util");
const fs = require("graceful-fs");
const copyFile = promisify(fs.copyFile);
const chmod = promisify(fs.chmod);
const globby = require("globby");
const makeDir = require("make-dir");
const {PassThrough} = require("stream");
const AbstractAdapter = require("./AbstractAdapter");
import logger from "@ui5/logger";
const log = logger.getLogger("resources:adapters:FileSystem");
import path from "node:path";
import {promises as fs, createReadStream} from "node:fs";
const {chmod, copyFile, stat} = fs;
import globby from "globby";
import makeDir from "make-dir";
import {PassThrough} from "node:stream";
import AbstractAdapter from "./AbstractAdapter.js";

const READ_ONLY_MODE = 0o444;

Expand Down Expand Up @@ -55,7 +54,7 @@ class FileSystem extends AbstractAdapter {
const promises = [];
if (!opt.onlyFiles && patterns.includes("")) { // Match physical root directory
promises.push(new Promise((resolve, reject) => {
fs.stat(this._fsBasePath, (err, stat) => {
stat(this._fsBasePath, (err, stat) => {
if (err) {
reject(err);
} else {
Expand All @@ -68,7 +67,7 @@ class FileSystem extends AbstractAdapter {
fsPath: this._fsBasePath
},
createStream: () => {
return fs.createReadStream(this._fsBasePath);
return createReadStream(this._fsBasePath);
}
}));
}
Expand All @@ -91,7 +90,7 @@ class FileSystem extends AbstractAdapter {
const virPath = (this._virBasePath + matches[i]);

// Workaround for not getting the stat from the glob
fs.stat(fsPath, (err, stat) => {
stat(fsPath, (err, stat) => {
if (err) {
reject(err);
} else {
Expand All @@ -104,7 +103,7 @@ class FileSystem extends AbstractAdapter {
fsPath: fsPath
},
createStream: () => {
return fs.createReadStream(fsPath);
return createReadStream(fsPath);
}
}));
}
Expand Down Expand Up @@ -155,7 +154,7 @@ class FileSystem extends AbstractAdapter {
const fsPath = path.join(this._fsBasePath, relPath);

trace.pathCall();
fs.stat(fsPath, (err, stat) => {
stat(fsPath, (err, stat) => {
if (err) {
if (err.code === "ENOENT") { // "File or directory does not exist"
resolve(null);
Expand All @@ -178,7 +177,7 @@ class FileSystem extends AbstractAdapter {
if (!stat.isDirectory()) {
// Add content
options.createStream = function() {
return fs.createReadStream(fsPath);
return createReadStream(fsPath);
};
}

Expand Down Expand Up @@ -277,7 +276,7 @@ class FileSystem extends AbstractAdapter {
if (readOnly) {
// Create new stream from written file
resource.setStream(function() {
return fs.createReadStream(fsPath);
return createReadStream(fsPath);
});
}
resolve();
Expand All @@ -287,4 +286,4 @@ class FileSystem extends AbstractAdapter {
}
}

module.exports = FileSystem;
export default FileSystem;
9 changes: 5 additions & 4 deletions lib/adapters/Memory.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const log = require("@ui5/logger").getLogger("resources:adapters:Memory");
const micromatch = require("micromatch");
const AbstractAdapter = require("./AbstractAdapter");
import logger from "@ui5/logger";
const log = logger.getLogger("resources:adapters:Memory");
import micromatch from "micromatch";
import AbstractAdapter from "./AbstractAdapter.js";

/**
* Virtual resource Adapter
Expand Down Expand Up @@ -155,4 +156,4 @@ class Memory extends AbstractAdapter {
}
}

module.exports = Memory;
export default Memory;
2 changes: 1 addition & 1 deletion lib/fsInterface.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function toPosix(inputPath) {
* [<code>readdir</code>]{@link https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback} and
* [<code>mkdir</code>]{@link https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback}
*/
module.exports = (reader) => {
export default (reader) => {
return {
readFile(fsPath, options, callback) {
if (typeof options === "function") {
Expand Down
4 changes: 2 additions & 2 deletions lib/readers/Filter.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const AbstractReader = require("../AbstractReader");
import AbstractReader from "../AbstractReader.js";

/**
* A reader that allows dynamic filtering of resources passed through it
Expand Down Expand Up @@ -70,4 +70,4 @@ class Filter extends AbstractReader {
}
}

module.exports = Filter;
export default Filter;
8 changes: 4 additions & 4 deletions lib/readers/Link.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const AbstractReader = require("../AbstractReader");
const ResourceFacade = require("../ResourceFacade");
const resourceFactory = require("../resourceFactory");
import AbstractReader from "../AbstractReader.js";
import ResourceFacade from "../ResourceFacade.js";
import resourceFactory from "../resourceFactory.js";
const log = require("@ui5/logger").getLogger("resources:readers:Link");

/**
Expand Down Expand Up @@ -120,4 +120,4 @@ class Link extends AbstractReader {
}
}

module.exports = Link;
export default Link;
8 changes: 4 additions & 4 deletions lib/readers/Transformer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const AbstractReader = require("../AbstractReader");
import AbstractReader from "../AbstractReader.js";

/**
* A reader that allows modification of all resources passed through it.
Expand Down Expand Up @@ -65,7 +65,7 @@ class Transformer extends AbstractReader {
let resourceClone;
await this._callback(resource.getPath(), async function() {
// Make sure to only clone once
resourceClone = resourceClone || await resource.clone();
resourceClone = resourceClone || (await resource.clone());
return resourceClone;
});
return resourceClone || resource;
Expand All @@ -87,12 +87,12 @@ class Transformer extends AbstractReader {
if (resource) {
await this._callback(resource.getPath(), async function() {
// Make sure to only clone once
resourceClone = resourceClone || await resource.clone();
resourceClone = resourceClone || (await resource.clone());
return resourceClone;
});
}
return resourceClone || resource;
}
}

module.exports = Transformer;
export default Transformer;
2 changes: 1 addition & 1 deletion lib/resourceFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,4 @@ const resourceFactory = {
}
};

module.exports = resourceFactory;
export default resourceFactory;
13 changes: 7 additions & 6 deletions lib/tracing/Trace.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const log = require("@ui5/logger").getLogger("resources:tracing:Trace");
const logGlobs = require("@ui5/logger").getLogger("resources:tracing:Trace:globs");
const logPaths = require("@ui5/logger").getLogger("resources:tracing:Trace:paths");
const prettyHrtime = require("pretty-hrtime");
const summaryTrace = require("./traceSummary");
import logger from "@ui5/logger";
const log = logger.getLogger("resources:tracing:Trace");
const logGlobs = logger.getLogger("resources:tracing:Trace:globs");
const logPaths = logger.getLogger("resources:tracing:Trace:paths");
import prettyHrtime from "pretty-hrtime";
import summaryTrace from "./traceSummary.js";
const hasOwnProperty = Object.prototype.hasOwnProperty;

/**
Expand Down Expand Up @@ -93,4 +94,4 @@ class Trace {
}
}

module.exports = Trace;
export default Trace;
8 changes: 5 additions & 3 deletions lib/tracing/traceSummary.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const log = require("@ui5/logger").getLogger("resources:tracing:total");
const prettyHrtime = require("pretty-hrtime");
import logger from "@ui5/logger";
const log = logger.getLogger("resources:tracing:total");

import prettyHrtime from "pretty-hrtime";
const hasOwnProperty = Object.prototype.hasOwnProperty;
let timeoutId;
let active = false;
Expand Down Expand Up @@ -115,7 +117,7 @@ function collection(name) {
}


module.exports = {
export default {
pathCall: pathCall,
globCall: globCall,
collection: collection,
Expand Down
Loading