Package Exports
- lodash-template-js-parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lodash-template-js-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
lodash-template-js-parser 
A JavaScript parser/splitter for lodash.template
Features
- It separate JavaScript Code and Template String from
lodash.templatecontent- Preserve same position of JavaScript code as possible
Lodash template -> JavaScript Code and Template Content.
It help to implement lint tools for JavaScript code in lodash template.
This idea and implementation is based on ota-meshi/eslint-plugin-lodash-template.
Motivation
ota-meshi/eslint-plugin-lodash-template focus on linting by ESLint, so It includes many features.
I want to get simple parser/splitter for lodash template.
lodash-template-js-parser just includes a parser for lodash template, So lodash-template-js-parser does not includes JavaScript Parser like espree, babel/parser.
Install
Install with npm:
npm install lodash-template-js-parserUsage
export interface parseTemplateOptions {
templateSettings?: {
escape?: [string, string];
evaluate?: [string, string];
interpolate?: [string, string];
};
}
/**
* Parse the template and return { script, template } object.
* @param code The template to parse.
* @param parserOptions The parser options.
* @returns The parsing result object.
*/
export declare function parseTemplate(template: string, parserOptions: parseTemplateOptions): {
script: string;
template: string;
};Example:
import { parseTemplate } from "lodash-template-js-parser";
const content = `
const age = 18;
<% if (age < 18) { %>
<li><%= name %> (age: <%= age %>)</li>
<% } else { %>
<li>over the age limit!</li>
<% }%>
`;
const { script, template } = parseTemplate(content, {
templateSettings: {
interpolate: ["#{", "}"]
}
});
assert.strictEqual(script, `
if (age < 18) {
name ; age ;
} else {
}
`);
assert.strictEqual(template, `
const age = 18;
<li> (age: )</li>
<li>over the age limit!</li>
`);Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test:
npm testContributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
Author
License
MIT © azu
This project is based on eslint-plugin-lodash-template.
MIT License
Copyright (c) 2018 Yosuke Ota