A JavaScript parser for lodash.template
npm install lodash-template-js-parserA JavaScript parser/splitter for lodash.template
- It separate JavaScript Code and Template String from lodash.template content
- 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.
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 with npm:
npm install lodash-template-js-parser
``ts`
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:
`js
import { parseTemplate } from "lodash-template-js-parser";
const content =
const age = 18;
<% if (age < 18) { %>
;
const { script, template } = parseTemplate(content, {
templateSettings: {
interpolate: ["#{", "}"]
}
});
assert.strictEqual(script, );
assert.strictEqual(template, );
`
Changelog
See Releases page.
Running tests
Install devDependencies and Run
npm test: npm test
Contributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
1. Fork it!
2. Create your feature branch:
git checkout -b my-new-feature
3. Commit your changes: git commit -am 'Add some feature'
4. Push to the branch: git push origin my-new-feature
5. Submit a pull request :DAuthor
License
MIT © azu
This project is based on eslint-plugin-lodash-template.
`
MIT License
Copyright (c) 2018 Yosuke Ota
``