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

@prettier/plugin-pug

Package Overview
Dependencies
Maintainers
12
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.10 to 1.0.11

36

CHANGELOG.md
# Next
[diff](https://github.com/prettier/plugin-pug/compare/1.0.10...master)
[diff](https://github.com/prettier/plugin-pug/compare/1.0.11...master)
# 1.0.11
[diff](https://github.com/prettier/plugin-pug/compare/1.0.10...1.0.11)
- Handle `yield` token ([94fdc0c])
- Handle `slash` token ([194f103])
- Dont format `code` if formatter produces error ([e105bae])
- Dont format `code` is multiline ([49b4b4c])
- Fix code slicing ([8478562])
- Fix whitespace issues ([b7d26c7])
- Fix whitespace after `interpolation` and `call` ([7670ade])
- Fix whitespace after `filter` token ([4ac7812])
- Fix missing `key` for `each` token ([aff4969])
- Fix whitespace before `start-pug-interpolation`token ([09e96a3])
- Fix escaping of non-interpolated `text` ([e5c3944])
- Fix only text body ([c32a8d1])
- Fix indent after newline for `interpolated-code` token ([bfb90c6])
- Fix partial quoted surrounded `attribute` token ([20be986])
[94fdc0c]: https://github.com/prettier/plugin-pug/commit/94fdc0cd708ad011ee609908d1a3cfe53c796688
[194f103]: https://github.com/prettier/plugin-pug/commit/194f1036b0406a4844f921d122769b91d4d2f899
[e105bae]: https://github.com/prettier/plugin-pug/commit/e105bae5707fda5978317ba461c978f9b0be48d1
[49b4b4c]: https://github.com/prettier/plugin-pug/commit/49b4b4cdec7d3bdea079c8a801aece71524ce011
[8478562]: https://github.com/prettier/plugin-pug/commit/8478562a7401927a276f9d80f6db6c7b4ff7a27e
[b7d26c7]: https://github.com/prettier/plugin-pug/commit/b7d26c7692b1146cb2717175a092d48bf9673e1e
[7670ade]: https://github.com/prettier/plugin-pug/commit/7670adec9370cff64cbeda83f553988fbebd5b7f
[4ac7812]: https://github.com/prettier/plugin-pug/commit/4ac7812d0f98ad41431173e017ecf80577e5ea16
[aff4969]: https://github.com/prettier/plugin-pug/commit/aff4969872bd06f91db474ebaa7715200d82637b
[09e96a3]: https://github.com/prettier/plugin-pug/commit/09e96a38750f86f5de6fe31f4cd55a0f4ac76b4c
[e5c3944]: https://github.com/prettier/plugin-pug/commit/e5c3944e634906b10c641a801f1afeb301cf4a80
[c32a8d1]: https://github.com/prettier/plugin-pug/commit/c32a8d170604b8a308ba70730066d5c644487193
[bfb90c6]: https://github.com/prettier/plugin-pug/commit/bfb90c6a4c06b58fb1593255448bc403b375c2d4
[20be986]: https://github.com/prettier/plugin-pug/commit/20be986be4303c379f76acdd30d8b1a99bc2e30b
# 1.0.10

@@ -6,0 +40,0 @@

161

dist/index.js

@@ -125,3 +125,3 @@ "use strict";

var printWidth = _a.printWidth, singleQuote = _a.singleQuote, tabWidth = _a.tabWidth, useTabs = _a.useTabs, attributeSeparator = _a.attributeSeparator, semi = _a.semi;
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
var tokens = path.stack[0];

@@ -142,2 +142,5 @@ var result = '';

var codeInterpolationOptions = { singleQuote: !singleQuote, printWidth: 9000 };
if (((_b = tokens[0]) === null || _b === void 0 ? void 0 : _b.type) === 'text') {
result += '| ';
}
var _loop_1 = function (index) {

@@ -157,3 +160,3 @@ var token = tokens[index];

case 'start-attributes':
if (((_b = nextToken) === null || _b === void 0 ? void 0 : _b.type) === 'attribute') {
if (((_c = nextToken) === null || _c === void 0 ? void 0 : _c.type) === 'attribute') {
previousAttributeRemapped = false;

@@ -178,49 +181,55 @@ startAttributePosition = result.length;

case 'attribute': {
if (token.name === 'class' &&
typeof token.val === 'string' &&
(token.val.startsWith('"') || token.val.startsWith("'"))) {
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 = [];
var validClassNameRegex = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/;
for (var _i = 0, classes_1 = classes; _i < classes_1.length; _i++) {
var className = classes_1[_i];
if (!validClassNameRegex.test(className)) {
specialClasses.push(className);
continue;
if (typeof token.val === 'string') {
var surroundedByQuotes = (token.val.startsWith('"') && token.val.endsWith('"')) ||
(token.val.startsWith("'") && token.val.endsWith("'"));
if (surroundedByQuotes) {
if (token.name === 'class') {
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 = [];
var validClassNameRegex = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/;
for (var _i = 0, classes_1 = classes; _i < classes_1.length; _i++) {
var className = classes_1[_i];
if (!validClassNameRegex.test(className)) {
specialClasses.push(className);
continue;
}
var position = startAttributePosition;
result = [
result.slice(0, position),
"." + className,
result.slice(position)
].join('');
startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
}
if (specialClasses.length > 0) {
token.val = makeString(specialClasses.join(' '), singleQuote ? "'" : '"', false);
previousAttributeRemapped = false;
}
else {
previousAttributeRemapped = true;
break;
}
}
var position = startAttributePosition;
result = [result.slice(0, position), "." + className, result.slice(position)].join('');
startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
else if (token.name === 'id') {
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#/, '#');
if (previousToken.type === 'attribute' && previousToken.name !== 'class') {
previousAttributeRemapped = true;
}
break;
}
}
if (specialClasses.length > 0) {
token.val = makeString(specialClasses.join(' '), singleQuote ? "'" : '"', false);
previousAttributeRemapped = false;
}
else {
previousAttributeRemapped = true;
break;
}
}
else if (token.name === 'id' &&
typeof token.val === 'string' &&
(token.val.startsWith('"') || token.val.startsWith("'"))) {
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#/, '#');
if (previousToken.type === 'attribute' && previousToken.name !== 'class') {
previousAttributeRemapped = true;
}
break;
}
var hasNormalPreviousToken = previousNormalAttributeToken(tokens, index);
if (((_c = previousToken) === null || _c === void 0 ? void 0 : _c.type) === 'attribute' &&
if (((_d = previousToken) === null || _d === void 0 ? void 0 : _d.type) === 'attribute' &&
(!previousAttributeRemapped || hasNormalPreviousToken)) {

@@ -307,6 +316,6 @@ if (alwaysUseAttributeSeparator || /^(\(|\[|:).*/.test(token.name)) {

}
else if (((_d = previousToken) === null || _d === void 0 ? void 0 : _d.type) === 'attribute') {
else if (((_e = previousToken) === null || _e === void 0 ? void 0 : _e.type) === 'attribute') {
result += ')';
}
if (((_e = nextToken) === null || _e === void 0 ? void 0 : _e.type) === 'text' || ((_f = nextToken) === null || _f === void 0 ? void 0 : _f.type) === 'path') {
if (((_f = nextToken) === null || _f === void 0 ? void 0 : _f.type) === 'text' || ((_g = nextToken) === null || _g === void 0 ? void 0 : _g.type) === 'path') {
result += ' ';

@@ -321,3 +330,3 @@ }

case 'outdent':
if (((_g = previousToken) === null || _g === void 0 ? void 0 : _g.type) !== 'outdent') {
if (((_h = previousToken) === null || _h === void 0 ? void 0 : _h.type) !== 'outdent') {
if (token.loc.start.line - previousToken.loc.end.line > 1) {

@@ -333,3 +342,3 @@ result += '\n';

result += "." + token.val;
if (((_h = nextToken) === null || _h === void 0 ? void 0 : _h.type) === 'text') {
if (((_j = nextToken) === null || _j === void 0 ? void 0 : _j.type) === 'text') {
result += ' ';

@@ -346,2 +355,5 @@ }

result = printIndent(previousToken, result, indent, indentLevel);
if (previousToken && !['newline', 'indent', 'outdent'].includes(previousToken.type)) {
result += ' ';
}
result += "//" + (token.buffer ? '' : '-') + token.val.replace(/\s\s+/g, ' ');

@@ -362,3 +374,3 @@ if (nextToken.type === 'start-pipeless-text') {

if (pipelessText) {
switch ((_j = previousToken) === null || _j === void 0 ? void 0 : _j.type) {
switch ((_k = previousToken) === null || _k === void 0 ? void 0 : _k.type) {
case 'newline':

@@ -386,3 +398,3 @@ result += indent.repeat(indentLevel);

val = val.replace(/\s\s+/g, ' ');
switch ((_k = previousToken) === null || _k === void 0 ? void 0 : _k.type) {
switch ((_l = previousToken) === null || _l === void 0 ? void 0 : _l.type) {
case 'newline':

@@ -395,3 +407,3 @@ result += indent.repeat(indentLevel);

result += '|';
if (/.*\S.*/.test(token.val)) {
if (/.*\S.*/.test(token.val) || ((_m = nextToken) === null || _m === void 0 ? void 0 : _m.type) === 'start-pug-interpolation') {
result += ' ';

@@ -417,3 +429,4 @@ }

}
if (((_l = previousToken) === null || _l === void 0 ? void 0 : _l.type) === 'tag' || ((_m = previousToken) === null || _m === void 0 ? void 0 : _m.type) === 'id') {
val = val.replace(/^#(\{|\[)/g, '\\#$1');
if (['tag', 'id', 'interpolation', 'call', '&attributes', 'filter'].includes((_o = previousToken) === null || _o === void 0 ? void 0 : _o.type)) {
val = " " + val;

@@ -428,8 +441,13 @@ }

case 'interpolated-code':
switch ((_o = previousToken) === null || _o === void 0 ? void 0 : _o.type) {
switch ((_p = previousToken) === null || _p === void 0 ? void 0 : _p.type) {
case 'tag':
case 'class':
case 'end-attributes':
result += ' ';
break;
case 'start-pug-interpolation':
result += '| ';
break;
case 'indent':
case 'newline':
result = printIndent(previousToken, result, indent, indentLevel);

@@ -453,4 +471,13 @@ result += '| ';

var val = token.val;
val = prettier_1.format(val, __assign(__assign({ parser: 'babel' }, codeInterpolationOptions), { semi: useSemi, endOfLine: 'lf' }));
val = val.slice(0, -1);
try {
var valBackup = val;
val = prettier_1.format(val, __assign(__assign({ parser: 'babel' }, codeInterpolationOptions), { semi: useSemi, endOfLine: 'lf' }));
val = val.slice(0, -1);
if (val.includes('\n')) {
val = valBackup;
}
}
catch (error) {
logger.warn(error);
}
result += " " + val;

@@ -469,3 +496,3 @@ break;

var _indent = '';
switch ((_p = previousToken) === null || _p === void 0 ? void 0 : _p.type) {
switch ((_q = previousToken) === null || _q === void 0 ? void 0 : _q.type) {
case 'newline':

@@ -505,2 +532,3 @@ case 'outdent':

result += token.mode;
result += ' ';
}

@@ -513,3 +541,3 @@ result += token.val;

case 'path':
if (((_q = previousToken) === null || _q === void 0 ? void 0 : _q.type) === 'include') {
if (['include', 'filter'].includes((_r = previousToken) === null || _r === void 0 ? void 0 : _r.type)) {
result += ' ';

@@ -526,2 +554,3 @@ }

case 'interpolation':
result = printIndent(previousToken, result, indent, indentLevel);
result += "#{" + token.val + "}";

@@ -534,2 +563,3 @@ break;

case 'filter':
result = printIndent(previousToken, result, indent, indentLevel);
result += ":" + token.val;

@@ -598,3 +628,7 @@ break;

result = printIndent(previousToken, result, indent, indentLevel);
result += "each " + token.val + " in " + token.code;
result += "each " + token.val;
if (token.key !== null) {
result += ", " + token.key;
}
result += " in " + token.code;
break;

@@ -628,2 +662,9 @@ case 'while':

break;
case 'yield':
result = printIndent(previousToken, result, indent, indentLevel);
result += 'yield';
break;
case 'slash':
result += '/';
break;
default:

@@ -655,2 +696,2 @@ throw new Error('Unhandled token: ' + JSON.stringify(token));

exports.defaultOptions = exports.plugin.defaultOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUErRjtBQUMvRiwrQkFBaUM7QUFFakMseUVBQXdFO0FBQ3hFLG1DQUEwRDtBQUMxRCxxQ0FBcUc7QUFFN0YsSUFBQSx1Q0FBVSxDQUFVO0FBRTVCLElBQU0sTUFBTSxHQUFXLHFCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0MsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUU7SUFDcEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQ25DO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxNQUFlLEVBQUUsS0FBYTtJQUNuRSxLQUFLLElBQUksQ0FBQyxHQUFXLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMzQyxJQUFNLEtBQUssR0FBVSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFO1lBQ3RDLE9BQU87U0FDUDtRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDbEQsT0FBTyxLQUFLLENBQUM7YUFDYjtTQUNEO0tBQ0Q7SUFDRCxPQUFPO0FBQ1IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLGFBQW9CLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxXQUFtQjs7SUFDN0YsY0FBUSxhQUFhLDBDQUFFLElBQUksRUFBRTtRQUM1QixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNiLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUErRjtBQUMvRiwrQkFBaUM7QUFFakMseUVBQXdFO0FBQ3hFLG1DQUEwRDtBQUMxRCxxQ0FBcUc7QUFFN0YsSUFBQSx1Q0FBVSxDQUFVO0FBRTVCLElBQU0sTUFBTSxHQUFXLHFCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0MsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUU7SUFDcEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQ25DO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxNQUFlLEVBQUUsS0FBYTtJQUNuRSxLQUFLLElBQUksQ0FBQyxHQUFXLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMzQyxJQUFNLEtBQUssR0FBVSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFO1lBQ3RDLE9BQU87U0FDUDtRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDbEQsT0FBTyxLQUFLLENBQUM7YUFDYjtTQUNEO0tBQ0Q7SUFDRCxPQUFPO0FBQ1IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLGFBQW9CLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxXQUFtQjs7SUFDN0YsY0FBUSxhQUFhLDBDQUFFLElBQUksRUFBRTtRQUM1QixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNiLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFB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
{
"name": "@prettier/plugin-pug",
"version": "1.0.10",
"version": "1.0.11",
"description": "Prettier Pug Plugin",

@@ -35,8 +35,8 @@ "main": "dist/index.js",

"@types/jest": "~24.0.23",
"@types/node": "~12.12.7",
"@types/prettier": "~1.18.3",
"@typescript-eslint/eslint-plugin": "~2.7.0",
"@typescript-eslint/parser": "~2.7.0",
"eslint": "~6.6.0",
"eslint-config-prettier": "~6.5.0",
"@types/node": "~12.12.12",
"@types/prettier": "~1.19.0",
"@typescript-eslint/eslint-plugin": "~2.8.0",
"@typescript-eslint/parser": "~2.8.0",
"eslint": "~6.7.0",
"eslint-config-prettier": "~6.7.0",
"eslint-plugin-prettier": "~3.1.1",

@@ -46,3 +46,3 @@ "jest": "~24.9.0",

"prettier": "1.19.1",
"ts-jest": "~24.1.0",
"ts-jest": "~24.2.0",
"typescript": "~3.7.2"

@@ -49,0 +49,0 @@ },

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

if (tokens[0]?.type === 'text') {
result += '| ';
}
for (let index: number = 0; index < tokens.length; index++) {

@@ -184,53 +188,60 @@ const token: Token = tokens[index];

case 'attribute': {
if (
token.name === 'class' &&
typeof token.val === 'string' &&
(token.val.startsWith('"') || token.val.startsWith("'"))
) {
// Handle class attribute
let val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
const classes: string[] = val.split(' ');
const specialClasses: string[] = [];
const validClassNameRegex: RegExp = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/;
for (const className of classes) {
if (!validClassNameRegex.test(className)) {
specialClasses.push(className);
continue;
if (typeof token.val === 'string') {
const surroundedByQuotes: boolean =
(token.val.startsWith('"') && token.val.endsWith('"')) ||
(token.val.startsWith("'") && token.val.endsWith("'"));
if (surroundedByQuotes) {
if (token.name === 'class') {
// Handle class attribute
let val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
val = val.replace(/\s\s+/g, ' ');
const classes: string[] = val.split(' ');
const specialClasses: string[] = [];
const validClassNameRegex: RegExp = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/;
for (const className of classes) {
if (!validClassNameRegex.test(className)) {
specialClasses.push(className);
continue;
}
// Write css-class in front of attributes
const position: number = startAttributePosition;
result = [
result.slice(0, position),
`.${className}`,
result.slice(position)
].join('');
startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
}
if (specialClasses.length > 0) {
token.val = makeString(
specialClasses.join(' '),
singleQuote ? "'" : '"',
false
);
previousAttributeRemapped = false;
} else {
previousAttributeRemapped = true;
break;
}
} else if (token.name === 'id') {
// Handle id attribute
let val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
// Write css-id in front of css-classes
const position: number = startTagPosition;
result = [result.slice(0, position), `#${val}`, result.slice(position)].join(
''
);
startAttributePosition += 1 + val.length;
result = result.replace(/div#/, '#');
if (previousToken.type === 'attribute' && previousToken.name !== 'class') {
previousAttributeRemapped = true;
}
break;
}
// Write css-class in front of attributes
const position: number = startAttributePosition;
result = [result.slice(0, position), `.${className}`, result.slice(position)].join(
''
);
startAttributePosition += 1 + className.length;
result = result.replace(/div\./, '.');
}
if (specialClasses.length > 0) {
token.val = makeString(specialClasses.join(' '), singleQuote ? "'" : '"', false);
previousAttributeRemapped = false;
} else {
previousAttributeRemapped = true;
break;
}
} else if (
token.name === 'id' &&
typeof token.val === 'string' &&
(token.val.startsWith('"') || token.val.startsWith("'"))
) {
// Handle id attribute
let val = token.val;
val = val.substring(1, val.length - 1);
val = val.trim();
// Write css-id in front of css-classes
const position: number = startTagPosition;
result = [result.slice(0, position), `#${val}`, result.slice(position)].join('');
startAttributePosition += 1 + val.length;
result = result.replace(/div#/, '#');
if (previousToken.type === 'attribute' && previousToken.name !== 'class') {
previousAttributeRemapped = true;
}
break;
}

@@ -380,2 +391,5 @@

result = printIndent(previousToken, result, indent, indentLevel);
if (previousToken && !['newline', 'indent', 'outdent'].includes(previousToken.type)) {
result += ' ';
}
result += `//${token.buffer ? '' : '-'}${token.val.replace(/\s\s+/g, ' ')}`;

@@ -431,3 +445,3 @@ if (nextToken.type === 'start-pipeless-text') {

result += '|';
if (/.*\S.*/.test(token.val)) {
if (/.*\S.*/.test(token.val) || nextToken?.type === 'start-pug-interpolation') {
result += ' ';

@@ -455,3 +469,9 @@ }

if (previousToken?.type === 'tag' || previousToken?.type === 'id') {
val = val.replace(/^#(\{|\[)/g, '\\#$1');
if (
['tag', 'id', 'interpolation', 'call', '&attributes', 'filter'].includes(
previousToken?.type
)
) {
val = ` ${val}`;

@@ -469,6 +489,11 @@ }

case 'tag':
case 'class':
case 'end-attributes':
result += ' ';
break;
case 'start-pug-interpolation':
result += '| ';
break;
case 'indent':
case 'newline':
result = printIndent(previousToken, result, indent, indentLevel);

@@ -492,9 +517,17 @@ result += '| ';

let val = token.val;
val = format(val, {
parser: 'babel',
...codeInterpolationOptions,
semi: useSemi,
endOfLine: 'lf'
});
val = val.slice(0, -1);
try {
const valBackup = val;
val = format(val, {
parser: 'babel',
...codeInterpolationOptions,
semi: useSemi,
endOfLine: 'lf'
});
val = val.slice(0, -1);
if (val.includes('\n')) {
val = valBackup;
}
} catch (error) {
logger.warn(error);
}
result += ` ${val}`;

@@ -553,2 +586,3 @@ break;

result += token.mode;
result += ' ';
}

@@ -561,3 +595,3 @@ result += token.val;

case 'path':
if (previousToken?.type === 'include') {
if (['include', 'filter'].includes(previousToken?.type)) {
result += ' ';

@@ -574,2 +608,3 @@ }

case 'interpolation':
result = printIndent(previousToken, result, indent, indentLevel);
result += `#{${token.val}}`;

@@ -582,2 +617,3 @@ break;

case 'filter':
result = printIndent(previousToken, result, indent, indentLevel);
result += `:${token.val}`;

@@ -645,3 +681,7 @@ break;

result = printIndent(previousToken, result, indent, indentLevel);
result += `each ${token.val} in ${token.code}`;
result += `each ${token.val}`;
if (token.key !== null) {
result += `, ${token.key}`;
}
result += ` in ${token.code}`;
break;

@@ -675,2 +715,9 @@ case 'while':

break;
case 'yield':
result = printIndent(previousToken, result, indent, indentLevel);
result += 'yield';
break;
case 'slash':
result += '/';
break;
default:

@@ -677,0 +724,0 @@ throw new Error('Unhandled token: ' + JSON.stringify(token));

@@ -42,2 +42,3 @@ declare module 'pug-lexer' {

| 'path'
| 'slash'
| 'start-attributes'

@@ -50,3 +51,4 @@ | 'start-pipeless-text'

| 'when'
| 'while';
| 'while'
| 'yield';

@@ -176,3 +178,3 @@ export interface LexToken<Type extends LexTokenType> {

val: string;
key: null;
key: string | null;
code: string;

@@ -203,2 +205,6 @@ }

export type YieldToken = LexToken<'yield'>;
export type SlashToken = LexToken<'slash'>;
export type Token =

@@ -238,2 +244,3 @@ | AndAttributesToken

| PathToken
| SlashToken
| StartAttributesToken

@@ -246,3 +253,4 @@ | StartPipelessTextToken

| WhenToken
| WhileToken;
| WhileToken
| YieldToken;

@@ -255,4 +263,79 @@ export type LexerFunction = (type: string, exp?: any) => boolean;

startingColumn?: number;
plugins?: Array<LexerFunction>;
plugins?: LexerFunction[];
}
export class Lexer {
input: string;
originalInput: string;
filename?: string;
interpolated: boolean;
lineno: number;
colno: number;
plugins: LexerFunction[];
indentStack: number[];
indentRe: RegExp | null;
interpolationAllowed: boolean;
whitespaceRe: RegExp;
tokens: Token[];
ended: boolean;
constructor(str: string, options?: LexerOptions);
error(code: string, message: string): never;
assert(value: any, message: string): void;
isExpression(exp: string): boolean;
assertExpression(exp: string, noThrow?: boolean): boolean;
assertNestingCorrect(exp: string): void;
private tok<Type extends LexTokenType>(type: Type, val?: any): LexToken<Type>;
private tokEnd<Type extends LexTokenType>(tok: LexToken<Type>): LexToken<Type>;
private incrementLine(increment: number): void;
private incrementColumn(increment: number): void;
private consume(len: number): void;
private scan<Type extends LexTokenType>(regexp: RegExp, type: Type): LexToken<Type> | undefined;
private scanEndOfLine<Type extends LexTokenType>(regexp: RegExp, type: Type): LexToken<Type> | undefined;
private bracketExpression(skip?: number): number;
scanIndentation(): RegExpExecArray | null;
eos(): true | undefined;
blank(): true | undefined;
comment(): true | undefined;
interpolation(): true | undefined;
tag(): true | undefined;
filter(): true | undefined;
doctype(): true | undefined;
id(): true | undefined;
className(): true | undefined;
endInterpolation(): true | undefined;
addText(type: LexTokenType, value: string, prefix?: string, escaped?: number): void;
text(): true | undefined;
textHtml(): true | undefined;
dot(): true | undefined;
extends(): true | undefined;
prepend(): true | undefined;
append(): true | undefined;
block(): true | undefined;
mixinBlock(): true | undefined;
yield(): true | undefined;
include(): true | undefined;
path(): true | undefined;
case(): true | undefined;
when(): true | undefined;
default(): true | undefined;
call(): true | undefined;
mixin(): true | undefined;
conditional(): true | undefined;
while(): true | undefined;
each(): true | undefined;
eachOf(): true | undefined;
code(): true | undefined;
blockCode(): true | undefined;
attribute(): string;
attributeValue(str: string): { val?: string; mustEscape?: boolean; remainingSource: string };
attrs(): true | undefined;
attributesBlock(): true | undefined;
indent(): true | NewlineToken | undefined;
pipelessText(indents?: number): boolean | undefined;
slash(): true | undefined;
colon(): true | undefined;
fail(): never;
callLexerFunction(func: string): boolean;
private advance(): boolean;
getTokens(): Token[];
}
}

@@ -259,0 +342,0 @@ function lex(str: string, options?: lex.LexerOptions): lex.Token[];

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