@adonisjs/view
Version:
View/template engine for AdonisJs
61 lines (60 loc) • 2.57 kB
JavaScript
;
/*
* @adonisjs/view
*
* (c) Harminder Virk <virk@adonisjs.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.defineAssetsManagerBindings = void 0;
const edge_error_1 = require("edge-error");
/**
* Registers the asset manager tags and globals with the template engine
*/
function defineAssetsManagerBindings(View, AssetsManager) {
View.global('assetsManager', AssetsManager);
View.global('asset', (filename) => AssetsManager.assetPath(filename));
View.registerTag({
tagName: 'entryPointStyles',
seekable: true,
block: false,
compile(parser, buffer, token) {
/**
* Ensure an argument is defined
*/
if (!token.properties.jsArg.trim()) {
throw new edge_error_1.EdgeError('Missing entrypoint name', 'E_RUNTIME_EXCEPTION', {
filename: token.filename,
line: token.loc.start.line,
col: token.loc.start.col,
});
}
const parsed = parser.utils.transformAst(parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), token.filename, parser);
const entrypointName = parser.utils.stringify(parsed);
buffer.outputExpression(`state.assetsManager.entryPointStyleTags(${entrypointName})`, token.filename, token.loc.start.line, false);
},
});
View.registerTag({
tagName: 'entryPointScripts',
seekable: true,
block: false,
compile(parser, buffer, token) {
/**
* Ensure an argument is defined
*/
if (!token.properties.jsArg.trim()) {
throw new edge_error_1.EdgeError('Missing entrypoint name', 'E_RUNTIME_EXCEPTION', {
filename: token.filename,
line: token.loc.start.line,
col: token.loc.start.col,
});
}
const parsed = parser.utils.transformAst(parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), token.filename, parser);
const entrypointName = parser.utils.stringify(parsed);
buffer.outputExpression(`state.assetsManager.entryPointScriptTags(${entrypointName})`, token.filename, token.loc.start.line, false);
},
});
}
exports.defineAssetsManagerBindings = defineAssetsManagerBindings;