add serializer for acorn Position
This commit is contained in:
parent
601824ea1e
commit
e9db83c6c7
|
@ -7,6 +7,7 @@
|
|||
|
||||
const ObjectMiddleware = require("../serialization/ObjectMiddleware");
|
||||
|
||||
const Position = /** @type {TODO} */ (require("acorn")).Position;
|
||||
const SourceLocation = require("acorn").SourceLocation;
|
||||
const CachedSource = require("webpack-sources").CachedSource;
|
||||
const ConcatSource = require("webpack-sources").ConcatSource;
|
||||
|
@ -17,6 +18,7 @@ const ReplaceSource = require("webpack-sources").ReplaceSource;
|
|||
const SourceMapSource = require("webpack-sources").SourceMapSource;
|
||||
|
||||
/** @typedef {import("../Dependency").RealDependencyLocation} RealDependencyLocation */
|
||||
/** @typedef {import("../Dependency").SourcePosition} SourcePosition */
|
||||
|
||||
const CURRENT_MODULE = "webpack/lib/util/registerExternalSerializer";
|
||||
|
||||
|
@ -234,6 +236,34 @@ ObjectMiddleware.register(
|
|||
}()
|
||||
);
|
||||
|
||||
ObjectMiddleware.register(
|
||||
Position,
|
||||
CURRENT_MODULE,
|
||||
"acorn/Position",
|
||||
new class PositionSerializer {
|
||||
/**
|
||||
* @param {Position} pos the position to be serialized
|
||||
* @param {ObjectMiddleware.ObjectSerializerContext} context context
|
||||
* @returns {void}
|
||||
*/
|
||||
serialize(pos, { write }) {
|
||||
write(pos.line);
|
||||
write(pos.column);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ObjectMiddleware.ObjectDeserializerContext} context context
|
||||
* @returns {SourcePosition} position
|
||||
*/
|
||||
deserialize({ read }) {
|
||||
return {
|
||||
line: read(),
|
||||
column: read()
|
||||
};
|
||||
}
|
||||
}()
|
||||
);
|
||||
|
||||
ObjectMiddleware.register(
|
||||
SourceMapSource,
|
||||
CURRENT_MODULE,
|
||||
|
|
|
@ -82,12 +82,12 @@ const schema = [
|
|||
},
|
||||
{
|
||||
title: "imports",
|
||||
regexp: /(const (\{\s+\w+(,\s+\w+)*\s+\}|\w+) = require\("[^"]+"\)(\.\w+)*;\n)+\n/g,
|
||||
regexp: /(const (\{\s+\w+(,\s+\w+)*\s+\}|\w+) = (\/\*\* @type \{TODO\} \*\/\s\()?require\("[^"]+"\)\)?(\.\w+)*;\n)+\n/g,
|
||||
updateMessage: "sort imports alphabetically",
|
||||
update(content) {
|
||||
const items = execToArray(
|
||||
content,
|
||||
/const (?:\{\s+\w+(?:,\s+\w+)*\s+\}|\w+) = require\("([^"]+)"\)((?:\.\w+)*);\n/g
|
||||
/const (?:\{\s+\w+(?:,\s+\w+)*\s+\}|\w+) = (?:\/\*\* @type \{TODO\} \*\/\s\()?require\("([^"]+)"\)\)?((?:\.\w+)*);\n/g
|
||||
);
|
||||
items.sort(sortImport);
|
||||
return items.map(item => item.content).join("") + "\n";
|
||||
|
|
Loading…
Reference in New Issue