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

@prettier/plugin-pug

Package Overview
Dependencies
Maintainers
11
Versions
104
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@prettier/plugin-pug - npm Package Compare versions

Comparing version 1.0.0-alpha.10 to 1.0.0-alpha.11

dist/options.js

13

CHANGELOG.md
# Next
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.10...master)
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.11...master)
# 1.0.0-alpha.11
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.10...1.0.0-alpha.11)
- Fix preceding div if there is a _normal_ class attribute
- Improve interpolation in text and bindings
- Introduce new option `attributeSeparator` ([#13])
Possible values: `always` and `as-needed`
[#13]: https://github.com/prettier/plugin-pug/pull/13
# 1.0.0-alpha.10

@@ -6,0 +17,0 @@

186

dist/index.js
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
exports.__esModule = true;

@@ -6,2 +17,3 @@ var prettier_1 = require("prettier");

var logger_1 = require("./logger");
var options_1 = require("./options");
var makeString = prettier_1.util.makeString;

@@ -61,2 +73,33 @@ var logger = logger_1.createLogger(console);

}
function formatText(text, singleQuote) {
var result = '';
while (text) {
var start = text.indexOf('{{');
if (start !== -1) {
result += text.slice(0, start);
text = text.substring(start + 2);
var end = text.indexOf('}}');
if (end !== -1) {
var code = text.slice(0, end);
code = code.trim();
code = prettier_1.format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 });
if (code.endsWith(';\n')) {
code = code.slice(0, -2);
}
result += "{{ " + code + " }}";
text = text.slice(end + 2);
}
else {
result += '{{';
result += text;
text = '';
}
}
else {
result += text;
text = '';
}
}
return result;
}
exports.plugin = {

@@ -104,3 +147,3 @@ languages: [

print: function (path, _a, print) {
var printWidth = _a.printWidth, singleQuote = _a.singleQuote, tabWidth = _a.tabWidth, useTabs = _a.useTabs;
var printWidth = _a.printWidth, singleQuote = _a.singleQuote, tabWidth = _a.tabWidth, useTabs = _a.useTabs, attributeSeparator = _a.attributeSeparator;
var tokens = path.stack[0];

@@ -114,2 +157,3 @@ var result = '';

var pipelessText = false;
var alwaysUseAttributeSeparator = options_1.resolveAttributeSeparatorOption(attributeSeparator);
var startTagPosition = 0;

@@ -119,2 +163,3 @@ var startAttributePosition = 0;

var wrapAttributes = false;
var codeInterpolationOptions = { singleQuote: !singleQuote, printWidth: 9000 };
for (var index = 0; index < tokens.length; index++) {

@@ -153,11 +198,11 @@ var token = tokens[index];

break;
case 'attribute':
case 'attribute': {
if (token.name === 'class' &&
typeof token.val === 'string' &&
(token.val.startsWith('"') || token.val.startsWith("'"))) {
var val_1 = token.val;
val_1 = val_1.substring(1, val_1.length - 1);
val_1 = val_1.trim();
val_1 = val_1.replace(/\s\s+/g, ' ');
var classes = val_1.split(' ');
var val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
var classes = val.split(' ');
var specialClasses = [];

@@ -171,5 +216,6 @@ var validClassNameRegex = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/;

}
var position_1 = startAttributePosition;
result = [result.slice(0, position_1), "." + className, result.slice(position_1)].join('');
var position = startAttributePosition;
result = [result.slice(0, position), "." + className, result.slice(position)].join('');
startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
}

@@ -188,8 +234,8 @@ if (specialClasses.length > 0) {

(token.val.startsWith('"') || token.val.startsWith("'"))) {
var val_2 = token.val;
val_2 = val_2.substring(1, val_2.length - 1);
val_2 = val_2.trim();
var position_2 = startTagPosition;
result = [result.slice(0, position_2), "#" + val_2, result.slice(position_2)].join('');
startAttributePosition += 1 + val_2.length;
var val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
var position = startTagPosition;
result = [result.slice(0, position), "#" + val, result.slice(position)].join('');
startAttributePosition += 1 + val.length;
result = result.replace(/div#/, '#');

@@ -205,3 +251,5 @@ if (previousToken.type === 'attribute' && previousToken.name !== 'class') {

(!previousAttributeRemapped || hasNormalPreviousToken)) {
result += ',';
if (alwaysUseAttributeSeparator || /^(\(|\[|:).*/.test(token.name)) {
result += ',';
}
if (!wrapAttributes) {

@@ -223,30 +271,42 @@ result += ' ';

else {
var val_3 = token.val;
if (token.name.startsWith(':') || token.name.startsWith('v-bind:')) {
val_3 = val_3.trim();
val_3 = val_3.replace(/\s\s+/g, ' ');
val_3 = val_3.replace('[ {', '[{').replace('} ]', '}]');
val_3 = val_3.replace('[ (', '[(').replace(') ]', ')]');
val_3 = val_3.replace('[ ', '[').replace(' ]', ']');
var type = quotationType(val_3);
if ((type === 'SINGLE' && !singleQuote) || (type === 'DOUBLE' && singleQuote)) {
val_3 = val_3.replace(/['"]/g, function (match) { return (match === '"' ? "'" : '"'); });
}
var val = token.val;
if (/^((v-bind|v-on)?:|v-model|@).*/.test(token.name)) {
val = val.trim();
val = val.slice(1, -1);
val = prettier_1.format(val, __assign({ parser: '__vue_expression' }, codeInterpolationOptions));
var quotes = singleQuote ? "'" : '"';
val = "" + quotes + val + quotes;
}
else if (/^(["']{{)(.*)(}}["'])$/.test(val_3)) {
val_3 = val_3.slice(3, -3);
val_3 = val_3.trim();
else if (/^(\(.*\)|\[.*\])$/.test(token.name)) {
val = val.trim();
val = val.slice(1, -1);
val = prettier_1.format(val, __assign({ parser: '__ng_interpolation' }, codeInterpolationOptions));
var quotes = singleQuote ? "'" : '"';
val_3 = quotes + "{{ " + val_3 + " }}" + quotes;
val = "" + quotes + val + quotes;
}
else if (/^["'](.*)["']$/.test(val_3)) {
val_3 = makeString(val_3.slice(1, -1), singleQuote ? "'" : '"', false);
else if (/^\*.*$/.test(token.name)) {
val = val.trim();
val = val.slice(1, -1);
val = prettier_1.format(val, __assign({ parser: '__ng_directive' }, codeInterpolationOptions));
var quotes = singleQuote ? "'" : '"';
val = "" + quotes + val + quotes;
}
else if (val_3 === 'true') {
else if (/^(["']{{)(.*)(}}["'])$/.test(val)) {
val = val.slice(3, -3);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
var quotes = singleQuote ? "'" : '"';
val = quotes + "{{ " + val + " }}" + quotes;
}
else if (/^["'](.*)["']$/.test(val)) {
val = makeString(val.slice(1, -1), singleQuote ? "'" : '"', false);
}
else if (val === 'true') {
break;
}
else {
val_3 = val_3.trim().replace(/\s\s+/g, ' ');
if (val_3.startsWith('{ ')) {
val_3 = "{" + val_3.substring(2, val_3.length);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
if (val.startsWith('{ ')) {
val = "{" + val.substring(2, val.length);
}

@@ -257,5 +317,6 @@ }

}
result += "=" + val_3;
result += "=" + val;
}
break;
}
case 'end-attributes':

@@ -314,3 +375,3 @@ if (wrapAttributes) {

break;
case 'text':
case 'text': {
var val = token.val;

@@ -359,11 +420,3 @@ val = val.replace(/\s\s+/g, ' ');

val = val.trim();
if (val.startsWith('{{') && val.endsWith('}}')) {
var code = val.substring(2, val.length - 2);
code = code.trim();
code = prettier_1.format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 });
if (code.endsWith(';\n')) {
code = code.slice(0, -2);
}
val = "{{ " + code + " }}";
}
val = formatText(val, singleQuote);
if (previousToken && (previousToken.type === 'tag' || previousToken.type === 'id')) {

@@ -377,2 +430,3 @@ val = " " + val;

break;
}
case 'interpolated-code':

@@ -389,3 +443,3 @@ if (previousToken && previousToken.type === 'tag') {

break;
case 'id':
case 'id': {
var lastPositionOfNewline = result.lastIndexOf('\n');

@@ -413,2 +467,3 @@ if (lastPositionOfNewline === -1) {

break;
}
case 'start-pipeless-text':

@@ -460,22 +515,24 @@ pipelessText = true;

break;
case 'call':
case 'call': {
result = printIndent(previousToken, result, indent, indentLevel);
result += "+" + token.val;
var callArgs = token.args;
if (callArgs) {
callArgs = callArgs.trim();
callArgs = callArgs.replace(/\s\s+/g, ' ');
result += "(" + callArgs + ")";
var args = token.args;
if (args) {
args = args.trim();
args = args.replace(/\s\s+/g, ' ');
result += "(" + args + ")";
}
break;
case 'mixin':
}
case 'mixin': {
result = printIndent(previousToken, result, indent, indentLevel);
result += "mixin " + token.val;
var mixinArgs = token.args;
if (mixinArgs) {
mixinArgs = mixinArgs.trim();
mixinArgs = mixinArgs.replace(/\s\s+/g, ' ');
result += "(" + mixinArgs + ")";
var args = token.args;
if (args) {
args = args.trim();
args = args.replace(/\s\s+/g, ' ');
result += "(" + args + ")";
}
break;
}
case 'if':

@@ -493,2 +550,5 @@ result = printIndent(previousToken, result, indent, indentLevel);

break;
case '&attributes':
result += "&attributes(" + token.val + ")";
break;
default:

@@ -509,3 +569,3 @@ throw new Error('Unhandled token: ' + JSON.stringify(token));

},
options: [],
options: options_1.options,
defaultOptions: {}

@@ -518,2 +578,2 @@ };

exports.defaultOptions = exports.plugin.defaultOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBb0c7QUFFcEcsK0JBQWlDO0FBQ2pDLG1DQUEwRDtBQUdsRCxJQUFBLHVDQUFVLENBQVU7QUFFNUIsSUFBTSxNQUFNLEdBQVcscUJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtJQUNwQyxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbkM7QUFJRCxTQUFTLGFBQWEsQ0FBQyxJQUFZO0lBQ2xDLElBQU0sa0JBQWtCLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFNLGtCQUFrQixHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzNELE9BQU8sU0FBUyxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsRSxPQUFPLFFBQVEsQ0FBQztLQUNoQjtTQUFNLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDbEUsT0FBTyxRQUFRLENBQUM7S0FDaEI7U0FBTSxJQUFJLGtCQUFrQixHQUFHLGtCQUFrQixFQUFFO1FBQ25ELE9BQU8sUUFBUSxDQUFDO0tBQ2hCO1NBQU0sSUFBSSxrQkFB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFvRztBQUVwRywrQkFBaUM7QUFDakMsbUNBQTBEO0FBQzFELHFDQUFxRztBQUc3RixJQUFBLHVDQUFVLENBQVU7QUFFNUIsSUFBTSxNQUFNLEdBQVcscUJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtJQUNwQyxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbkM7QUFJRCxTQUFTLGFBQWEsQ0FBQyxJQUFZO0lBQ2xDLElBQU0sa0JBQWtCLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFNLGtCQUFrQixHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzNELE9BQU8sU0FBUyxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsRSxPQUFPLFFBQVEsQ0FBQztLQUNoQjtTQUFNLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDbEUsT0FBTyxRQUFRLENBQUM7S0FDaEI7U0FBTSxJQUFJLGtCQUFrQixHQUFHLGtCQUFrQixFQUFFO1FBQ25ELE9BQU8sUUFBUSxD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
{
"name": "@prettier/plugin-pug",
"version": "1.0.0-alpha.10",
"version": "1.0.0-alpha.11",
"description": "Prettier Pug Plugin",

@@ -33,3 +33,3 @@ "main": "dist/index.js",

"@types/jest": "~24.0.15",
"@types/node": "~12.6.2",
"@types/node": "~12.6.6",
"@types/prettier": "~1.16.4",

@@ -36,0 +36,0 @@ "@typescript-eslint/eslint-plugin": "~1.12.0",

@@ -5,2 +5,3 @@ import { AST, Doc, FastPath, format, Options, Parser, ParserOptions, Plugin, util } from 'prettier';

import { createLogger, Logger, LogLevel } from './logger';
import { options as pugOptions, PugParserOptions, resolveAttributeSeparatorOption } from './options';
import { AttributeToken, EndAttributesToken, Token } from './pug-token';

@@ -65,2 +66,32 @@

function formatText(text: string, singleQuote: boolean): string {
let result: string = '';
while (text) {
const start = text.indexOf('{{');
if (start !== -1) {
result += text.slice(0, start);
text = text.substring(start + 2);
const end = text.indexOf('}}');
if (end !== -1) {
let code = text.slice(0, end);
code = code.trim();
code = format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 });
if (code.endsWith(';\n')) {
code = code.slice(0, -2);
}
result += `{{ ${code} }}`;
text = text.slice(end + 2);
} else {
result += '{{';
result += text;
text = '';
}
} else {
result += text;
text = '';
}
}
return result;
}
export const plugin: Plugin = {

@@ -112,3 +143,3 @@ languages: [

path: FastPath,
{ printWidth, singleQuote, tabWidth, useTabs }: ParserOptions,
{ printWidth, singleQuote, tabWidth, useTabs, attributeSeparator }: ParserOptions & PugParserOptions,
print: (path: FastPath) => Doc

@@ -126,2 +157,4 @@ ): Doc {

const alwaysUseAttributeSeparator: boolean = resolveAttributeSeparatorOption(attributeSeparator);
let startTagPosition: number = 0;

@@ -132,2 +165,4 @@ let startAttributePosition: number = 0;

const codeInterpolationOptions = { singleQuote: !singleQuote, printWidth: 9000 };
for (let index: number = 0; index < tokens.length; index++) {

@@ -166,3 +201,3 @@ const token: Token = tokens[index];

break;
case 'attribute':
case 'attribute': {
if (

@@ -192,2 +227,3 @@ token.name === 'class' &&

startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
}

@@ -230,3 +266,5 @@ if (specialClasses.length > 0) {

) {
result += ',';
if (alwaysUseAttributeSeparator || /^(\(|\[|:).*/.test(token.name)) {
result += ',';
}
if (!wrapAttributes) {

@@ -250,19 +288,38 @@ result += ' ';

let val = token.val;
if (token.name.startsWith(':') || token.name.startsWith('v-bind:')) {
// Format Vue v-bind
// Expect js-code
if (/^((v-bind|v-on)?:|v-model|@).*/.test(token.name)) {
// Format Vue expression
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
val = val.replace('[ {', '[{').replace('} ]', '}]');
val = val.replace('[ (', '[(').replace(') ]', ')]');
val = val.replace('[ ', '[').replace(' ]', ']');
const type: QuotationType | undefined = quotationType(val);
if ((type === 'SINGLE' && !singleQuote) || (type === 'DOUBLE' && singleQuote)) {
// Swap single and double quotes
val = val.replace(/['"]/g, (match) => (match === '"' ? "'" : '"'));
}
val = val.slice(1, -1);
val = format(val, {
parser: '__vue_expression' as any,
...codeInterpolationOptions
});
const quotes: "'" | '"' = singleQuote ? "'" : '"';
val = `${quotes}${val}${quotes}`;
} else if (/^(\(.*\)|\[.*\])$/.test(token.name)) {
// Format Angular action or binding
val = val.trim();
val = val.slice(1, -1);
val = format(val, {
parser: '__ng_interpolation' as any,
...codeInterpolationOptions
});
const quotes: "'" | '"' = singleQuote ? "'" : '"';
val = `${quotes}${val}${quotes}`;
} else if (/^\*.*$/.test(token.name)) {
// Format Angular directive
val = val.trim();
val = val.slice(1, -1);
val = format(val, { parser: '__ng_directive' as any, ...codeInterpolationOptions });
const quotes: "'" | '"' = singleQuote ? "'" : '"';
val = `${quotes}${val}${quotes}`;
} else if (/^(["']{{)(.*)(}}["'])$/.test(val)) {
// Format Angular code
// Format Angular interpolation
val = val.slice(3, -3);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
// val = format(val, {
// parser: '__ng_interpolation' as any,
// ...codeInterpolationOptions
// });
const quotes: "'" | '"' = singleQuote ? "'" : '"';

@@ -277,3 +334,4 @@ val = `${quotes}{{ ${val} }}${quotes}`;

// The value is not quoted and may be js-code
val = val.trim().replace(/\s\s+/g, ' ');
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
if (val.startsWith('{ ')) {

@@ -291,2 +349,3 @@ val = `{${val.substring(2, val.length)}`;

break;
}
case 'end-attributes':

@@ -349,3 +408,3 @@ if (wrapAttributes) {

break;
case 'text':
case 'text': {
let val = token.val;

@@ -393,12 +452,3 @@ val = val.replace(/\s\s+/g, ' ');

val = val.trim();
if (val.startsWith('{{') && val.endsWith('}}')) {
// Format mustache code like in Vue
let code: string = val.substring(2, val.length - 2);
code = code.trim();
code = format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 });
if (code.endsWith(';\n')) {
code = code.slice(0, -2);
}
val = `{{ ${code} }}`;
}
val = formatText(val, singleQuote);
if (previousToken && (previousToken.type === 'tag' || previousToken.type === 'id')) {

@@ -412,2 +462,3 @@ val = ` ${val}`;

break;
}
case 'interpolated-code':

@@ -424,3 +475,3 @@ if (previousToken && previousToken.type === 'tag') {

break;
case 'id':
case 'id': {
// Handle id attribute

@@ -453,2 +504,3 @@ // Write css-id in front of css-classes

break;
}
case 'start-pipeless-text':

@@ -501,22 +553,24 @@ pipelessText = true;

break;
case 'call':
case 'call': {
result = printIndent(previousToken, result, indent, indentLevel);
result += `+${token.val}`;
let callArgs: string | null = token.args;
if (callArgs) {
callArgs = callArgs.trim();
callArgs = callArgs.replace(/\s\s+/g, ' ');
result += `(${callArgs})`;
let args: string | null = token.args;
if (args) {
args = args.trim();
args = args.replace(/\s\s+/g, ' ');
result += `(${args})`;
}
break;
case 'mixin':
}
case 'mixin': {
result = printIndent(previousToken, result, indent, indentLevel);
result += `mixin ${token.val}`;
let mixinArgs: string | null = token.args;
if (mixinArgs) {
mixinArgs = mixinArgs.trim();
mixinArgs = mixinArgs.replace(/\s\s+/g, ' ');
result += `(${mixinArgs})`;
let args: string | null = token.args;
if (args) {
args = args.trim();
args = args.replace(/\s\s+/g, ' ');
result += `(${args})`;
}
break;
}
case 'if':

@@ -534,2 +588,5 @@ result = printIndent(previousToken, result, indent, indentLevel);

break;
case '&attributes':
result += `&attributes(${token.val})`;
break;
default:

@@ -557,3 +614,3 @@ throw new Error('Unhandled token: ' + JSON.stringify(token));

},
options: [],
options: pugOptions as any,
defaultOptions: {}

@@ -560,0 +617,0 @@ };

@@ -183,2 +183,8 @@ export interface Loc {

export interface AndAttributesToken {
type: '&attributes';
loc: Loc;
val: string;
}
export type Token =

@@ -214,2 +220,3 @@ | TagToken

| MixinBlockToken
| ElseToken;
| ElseToken
| AndAttributesToken;
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