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.11.0 to 0.12.0

lib/worker.d.ts

30

lib/index.d.ts

@@ -1,24 +0,14 @@

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;
import { ParserOptions, Plugin } from 'prettier';
import { File, Node, ShOptions } from 'sh-syntax';
export interface Processor {
(text: string, options?: ShOptions): File;
(text: string, options?: ShOptions & {
print: true;
}): string;
(ast: File, options?: ShOptions & {
originalText: string;
}): string;
}
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;

@@ -1,4 +0,9 @@

import sh from 'mvdan-sh';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { createSyncFn } from 'synckit';
import { languages } from './languages.js';
const { syntax } = sh;
const _dirname = typeof __dirname === 'undefined'
? path.dirname(fileURLToPath(import.meta.url))
: __dirname;
const processor = createSyncFn(path.resolve(_dirname, 'worker.js'));
class ShParseError extends SyntaxError {

@@ -10,4 +15,4 @@ constructor(err) {

start: {
column: err.Pos.Col(),
line: err.Pos.Line(),
column: err.Pos.Col,
line: err.Pos.Line,
},

@@ -22,11 +27,9 @@ };

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);
return processor(text, {
filepath,
keepComments,
stopAt,
variant,
});
}

@@ -38,4 +41,4 @@ catch (err) {

astFormat: 'sh',
locStart: node => node.Pos().Offset(),
locEnd: node => node.End().Offset(),
locStart: node => node.Pos.Offset,
locEnd: node => node.End.Offset,
},

@@ -45,5 +48,14 @@ },

sh: {
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()),
print: (path, { originalText, useTabs, tabWidth, indent = useTabs ? 0 : tabWidth, binaryNextLine = true, switchCaseIndent = true, spaceRedirects = true, keepPadding, minify, functionNextLine, }) => processor(path.getNode(), {
originalText,
useTabs,
tabWidth,
indent,
binaryNextLine,
switchCaseIndent,
spaceRedirects,
keepPadding,
minify,
functionNextLine,
}),
},

@@ -50,0 +62,0 @@ },

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

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

"engines": {
"node": ">=12.20"
"node": "^12.20 || ^14.18.0 || >=16.0.0"
},

@@ -40,3 +40,4 @@ "main": "./lib/index.cjs",

"dependencies": {
"mvdan-sh": "^0.10.1"
"sh-syntax": "^0.3.2",
"synckit": "^0.7.1"
},

@@ -43,0 +44,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