first commit
This commit is contained in:
83
node_modules/svelte-preprocess/dist/transformers/pug.js
generated
vendored
Normal file
83
node_modules/svelte-preprocess/dist/transformers/pug.js
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.transformer = void 0;
|
||||
const detect_indent_1 = __importDefault(require("detect-indent"));
|
||||
const pug_1 = __importDefault(require("pug"));
|
||||
// Mixins to use svelte template features
|
||||
const GET_MIXINS = (indentationType) => `mixin if(condition)
|
||||
%_| {#if !{condition}}
|
||||
%_block
|
||||
%_| {/if}
|
||||
|
||||
mixin else
|
||||
%_| {:else}
|
||||
%_block
|
||||
|
||||
mixin elseif(condition)
|
||||
%_| {:else if !{condition}}
|
||||
%_block
|
||||
|
||||
mixin key(expression)
|
||||
%_| {#key !{expression}}
|
||||
%_block
|
||||
%_| {/key}
|
||||
|
||||
mixin each(loop)
|
||||
%_| {#each !{loop}}
|
||||
%_block
|
||||
%_| {/each}
|
||||
|
||||
mixin await(promise)
|
||||
%_| {#await !{promise}}
|
||||
%_block
|
||||
%_| {/await}
|
||||
|
||||
mixin then(answer)
|
||||
%_| {:then !{answer}}
|
||||
%_block
|
||||
|
||||
mixin catch(error)
|
||||
%_| {:catch !{error}}
|
||||
%_block
|
||||
|
||||
mixin html(expression)
|
||||
%_| {@html !{expression}}
|
||||
|
||||
mixin const(expression)
|
||||
%_| {@const !{expression}}
|
||||
|
||||
mixin debug(variables)
|
||||
%_| {@debug !{variables}}`.replace(/%_/g, indentationType === 'tab' ? '\t' : ' ');
|
||||
const transformer = async ({ content, filename, options, }) => {
|
||||
var _a;
|
||||
const pugOptions = {
|
||||
// needed so pug doesn't mirror boolean attributes
|
||||
// and prop spreading expressions.
|
||||
doctype: 'html',
|
||||
compileDebug: false,
|
||||
filename,
|
||||
...options,
|
||||
};
|
||||
const { type: indentationType } = (0, detect_indent_1.default)(content);
|
||||
const input = `${GET_MIXINS(indentationType !== null && indentationType !== void 0 ? indentationType : 'space')}\n${content}`;
|
||||
const compiled = pug_1.default.compile(input, pugOptions);
|
||||
let code;
|
||||
try {
|
||||
code = compiled();
|
||||
}
|
||||
catch (e) {
|
||||
// The error message does not have much context, add more of it
|
||||
if (e instanceof Error) {
|
||||
e.message = `[svelte-preprocess] Pug error while preprocessing ${filename}\n\n${e.message}`;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
return {
|
||||
code,
|
||||
dependencies: (_a = compiled.dependencies) !== null && _a !== void 0 ? _a : [],
|
||||
};
|
||||
};
|
||||
exports.transformer = transformer;
|
Reference in New Issue
Block a user