Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

prettier-plugin-sh

Package Overview
Dependencies
Maintainers
2
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prettier-plugin-sh - npm Package Compare versions

Comparing version 0.10.2 to 0.11.0

24

lib/index.d.ts

@@ -1,4 +0,24 @@

import { Plugin } from 'prettier';
import { Node } from 'sh-syntax';
import { LangVariant, Node, Pos } from 'mvdan-sh';
import { ParserOptions, Plugin, RequiredOptions } from 'prettier';
export interface ShOptions extends RequiredOptions {
keepComments: boolean;
stopAt: string;
variant: LangVariant;
indent: number;
binaryNextLine: boolean;
switchCaseIndent: boolean;
spaceRedirects: boolean;
keepPadding: boolean;
minify: boolean;
functionNextLine: boolean;
}
export declare type ShParserOptions = ParserOptions<Node> & ShOptions;
export interface IShParseError extends Error {
Filename: string;
Pos: Pos;
Text: string;
Incomplete: boolean;
Error(): void;
}
declare const ShPlugin: Plugin<Node>;
export default ShPlugin;

96

lib/index.js

@@ -1,33 +0,16 @@

import path from 'path';
import { fileURLToPath } from 'url';
import { createSyncFn } from 'synckit';
import sh from 'mvdan-sh';
import { languages } from './languages.js';
const isInModule = typeof __dirname === 'undefined';
const _dirname = isInModule
? path.dirname(fileURLToPath(import.meta.url))
: __dirname;
const workerPath = path.resolve(_dirname, `../worker.${isInModule ? 'mjs' : 'cjs'}`);
const processorSync = createSyncFn(workerPath);
const handleError = (fn) => {
try {
return fn();
const { syntax } = sh;
class ShParseError extends SyntaxError {
constructor(err) {
super(err.Text);
this.cause = err;
this.loc = {
start: {
column: err.Pos.Col(),
line: err.Pos.Line(),
},
};
}
catch (err) {
const error = err;
if (typeof error === 'string') {
throw new SyntaxError(error);
}
if ('Pos' in error) {
throw Object.assign(error, {
loc: {
start: {
column: error.Pos.Col,
line: error.Pos.Line,
},
},
});
}
throw error;
}
};
}
const ShPlugin = {

@@ -37,20 +20,20 @@ languages,

sh: {
parse: (text, _parsers, { filepath, useTabs, tabWidth, keepComments, stopAt, variant, indent, binaryNextLine, switchCaseIndent, spaceRedirects, keepPadding, minify, functionNextLine, }) => handleError(() => processorSync(text, {
filepath,
useTabs,
tabWidth,
keepComments,
stopAt,
variant,
indent,
binaryNextLine,
switchCaseIndent,
spaceRedirects,
keepPadding,
minify,
functionNextLine,
})),
parse: (text, _parsers, { filepath, keepComments = true, stopAt, variant }) => {
const parserOptions = [syntax.KeepComments(keepComments)];
if (stopAt != null) {
parserOptions.push(syntax.StopAt(stopAt));
}
if (variant != null) {
parserOptions.push(syntax.Variant(variant));
}
try {
return syntax.NewParser(...parserOptions).Parse(text, filepath);
}
catch (err) {
throw new ShParseError(err);
}
},
astFormat: 'sh',
locStart: (node) => node.Pos.Offset,
locEnd: (node) => node.End.Offset,
locStart: node => node.Pos().Offset(),
locEnd: node => node.End().Offset(),
},

@@ -60,18 +43,5 @@ },

sh: {
print: (path, { originalText, filepath, useTabs, tabWidth, keepComments, stopAt, variant, indent, binaryNextLine, switchCaseIndent, spaceRedirects, keepPadding, minify, functionNextLine, }) => handleError(() => processorSync(path.getValue(), {
filepath,
originalText,
useTabs,
tabWidth,
keepComments,
stopAt,
variant,
indent,
binaryNextLine,
switchCaseIndent,
spaceRedirects,
keepPadding,
minify,
functionNextLine,
})),
print: (path, { useTabs, tabWidth, indent = useTabs ? 0 : tabWidth, binaryNextLine = true, switchCaseIndent = true, spaceRedirects = true, keepPadding, minify, functionNextLine, }) => syntax
.NewPrinter(syntax.Indent(indent), syntax.BinaryNextLine(binaryNextLine), syntax.SwitchCaseIndent(switchCaseIndent), syntax.SpaceRedirects(spaceRedirects), syntax.KeepPadding(keepPadding), syntax.Minify(minify), syntax.FunctionNextLine(functionNextLine))
.Print(path.getValue()),
},

@@ -78,0 +48,0 @@ },

{
"name": "prettier-plugin-sh",
"version": "0.10.2",
"version": "0.11.0",
"type": "module",

@@ -22,5 +22,3 @@ "description": "An opinionated `shellscript、Dockerfile、properties、gitignore、dotenv、hosts、jvmoptions...` formatter plugin for Prettier",

"files": [
"lib",
"worker.cjs",
"worker.mjs"
"lib"
],

@@ -42,4 +40,3 @@ "keywords": [

"dependencies": {
"sh-syntax": "^0.1.4",
"synckit": "^0.7.0"
"mvdan-sh": "^0.10.1"
},

@@ -46,0 +43,0 @@ "publishConfig": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc