Comparing version 2.0.0 to 2.0.1
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const Loader_1 = require("./src/Loader"); | ||
const Edge_1 = require("./src/Edge"); | ||
@@ -10,3 +9,3 @@ exports.Edge = Edge_1.Edge; | ||
exports.extractDiskAndTemplateName = utils_1.extractDiskAndTemplateName; | ||
const edge = new Edge_1.Edge(new Loader_1.Loader()); | ||
const edge = new Edge_1.Edge(); | ||
exports.default = edge; |
@@ -1,2 +0,2 @@ | ||
import { Token } from 'edge-lexer'; | ||
import { ParserToken } from 'edge-parser'; | ||
import { LoaderContract, TagsContract, LoaderTemplate, CompilerContract } from '../Contracts'; | ||
@@ -11,4 +11,4 @@ export declare class Compiler implements CompilerContract { | ||
private _templateContentToTokens; | ||
generateLexerTokens(templatePath: string): Token[]; | ||
generateLexerTokens(templatePath: string): ParserToken[]; | ||
compile(templatePath: string, inline: boolean): LoaderTemplate; | ||
} |
@@ -14,3 +14,3 @@ "use strict"; | ||
} | ||
_mergeSections(base, extended, filename) { | ||
_mergeSections(base, extended, filename, layoutPath) { | ||
const extendedSections = {}; | ||
@@ -39,2 +39,3 @@ const extendedSetCalls = []; | ||
if (!utils_1.isBlockToken(node, 'section')) { | ||
node.filename = layoutPath; | ||
return node; | ||
@@ -44,6 +45,10 @@ } | ||
if (!extendedNode) { | ||
node.filename = layoutPath; | ||
return node; | ||
} | ||
if (extendedNode.children.length && utils_1.isBlockToken(extendedNode.children[0], 'super')) { | ||
extendedNode.children = node.children.concat(extendedNode.children); | ||
extendedNode.children = node.children.map((child) => { | ||
child.filename = layoutPath; | ||
return child; | ||
}).concat(extendedNode.children); | ||
} | ||
@@ -54,8 +59,10 @@ return extendedNode; | ||
} | ||
_templateContentToTokens(content, parser) { | ||
_templateContentToTokens(content, parser, filename) { | ||
let templateTokens = parser.generateLexerTokens(content); | ||
const firstToken = templateTokens[0]; | ||
if (utils_1.isBlockToken(firstToken, 'layout')) { | ||
const layoutTokens = this.generateLexerTokens(firstToken.properties.jsArg.replace(/'/g, '')); | ||
templateTokens = this._mergeSections(layoutTokens, templateTokens, parser.options.filename); | ||
const layoutName = firstToken.properties.jsArg.replace(/'/g, ''); | ||
const absPath = this._loader.makePath(layoutName); | ||
const layoutTokens = this.generateLexerTokens(absPath); | ||
templateTokens = this._mergeSections(layoutTokens, templateTokens, filename, absPath); | ||
} | ||
@@ -67,3 +74,3 @@ return templateTokens; | ||
const parser = new edge_parser_1.Parser(this._tags, { filename: templatePath }); | ||
return this._templateContentToTokens(template, parser); | ||
return this._templateContentToTokens(template, parser, templatePath); | ||
} | ||
@@ -79,6 +86,6 @@ compile(templatePath, inline) { | ||
const parser = new edge_parser_1.Parser(this._tags, { | ||
filename: `${templatePath.replace(/\.edge$/, '')}.edge`, | ||
filename: `${absPath.replace(/\.edge$/, '')}.edge`, | ||
}); | ||
const { template, Presenter } = this._loader.resolve(absPath, loadPresenter); | ||
const templateTokens = this._templateContentToTokens(template, parser); | ||
const templateTokens = this._templateContentToTokens(template, parser, absPath); | ||
const buffer = new edge_parser_1.EdgeBuffer(); | ||
@@ -85,0 +92,0 @@ templateTokens.forEach((token) => parser.processLexerToken(token, buffer)); |
@@ -50,4 +50,9 @@ import { Token } from 'edge-lexer'; | ||
} | ||
export declare type EdgeOptions = { | ||
loader?: LoaderContract; | ||
cache?: boolean; | ||
}; | ||
export interface EdgeContract { | ||
loader: LoaderContract; | ||
compiler: CompilerContract; | ||
registerTag(tag: TagContract): this; | ||
@@ -54,0 +59,0 @@ registerTemplate(templatePath: string, contents: LoaderTemplate): this; |
import { Compiler } from '../Compiler'; | ||
import { LoaderContract, TagContract, LoaderTemplate, EdgeContract, EdgeRendererContract } from '../Contracts'; | ||
import { TagContract, EdgeOptions, EdgeContract, LoaderTemplate, EdgeRendererContract } from '../Contracts'; | ||
export declare class Edge implements EdgeContract { | ||
loader: LoaderContract; | ||
private _options; | ||
private _globals; | ||
private _tags; | ||
loader: import("../Contracts").LoaderContract; | ||
compiler: Compiler; | ||
constructor(loader?: LoaderContract); | ||
constructor(_options?: EdgeOptions); | ||
mount(diskName: string, dirPath: string): this; | ||
@@ -10,0 +11,0 @@ mount(dirPath: string): this; |
@@ -15,7 +15,8 @@ "use strict"; | ||
class Edge { | ||
constructor(loader = new Loader_1.Loader()) { | ||
this.loader = loader; | ||
constructor(_options = {}) { | ||
this._options = _options; | ||
this._globals = {}; | ||
this._tags = Object.assign({}, Tags); | ||
this.compiler = new Compiler_1.Compiler(this.loader, this._tags, false); | ||
this.loader = this._options.loader || new Loader_1.Loader(); | ||
this.compiler = new Compiler_1.Compiler(this.loader, this._tags, !!this._options.cache); | ||
} | ||
@@ -22,0 +23,0 @@ mount(diskName, dirPath) { |
@@ -1,3 +0,2 @@ | ||
import { Token, TagToken } from 'edge-lexer'; | ||
import { Parser, expressions as expressionsList } from 'edge-parser'; | ||
import { Parser, expressions as expressionsList, ParserToken, ParserTagToken } from 'edge-parser'; | ||
export declare function allowExpressions(expression: any, expressions: (keyof typeof expressionsList)[], filename: string, message: string): void; | ||
@@ -7,3 +6,3 @@ export declare function disAllowExpressions(expression: any, expressions: (keyof typeof expressionsList)[], filename: string, message: string): void; | ||
export declare function extractDiskAndTemplateName(templatePath: string): [string, string]; | ||
export declare function isBlockToken(token: Token, name: string): token is TagToken; | ||
export declare function getLineAndColumnForToken(token: Token): [number, number]; | ||
export declare function isBlockToken(token: ParserToken, name: string): token is ParserTagToken; | ||
export declare function getLineAndColumnForToken(token: ParserToken): [number, number]; |
{ | ||
"name": "edge.js", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Template engine", | ||
@@ -55,3 +55,4 @@ "main": "build/index.js", | ||
"typescript": "^3.6.3", | ||
"yorkie": "^2.0.0" | ||
"yorkie": "^2.0.0", | ||
"youch": "^2.0.10" | ||
}, | ||
@@ -74,4 +75,4 @@ "config": { | ||
"debug": "^4.1.1", | ||
"edge-error": "^1.0.3", | ||
"edge-parser": "^2.0.10", | ||
"edge-error": "^1.0.4", | ||
"edge-parser": "^2.1.1", | ||
"he": "^1.2.0", | ||
@@ -78,0 +79,0 @@ "import-fresh": "^3.1.0", |
@@ -6,6 +6,3 @@ <!-- START doctoc generated TOC please keep comment here to allow auto update --> | ||
- [Edge](#edge) | ||
- [Features](#features) | ||
- [Change log](#change-log) | ||
- [Contributing](#contributing) | ||
- [Authors & License](#authors--license) | ||
- [Maintainers](#maintainers) | ||
@@ -15,50 +12,16 @@ <!-- END doctoc generated TOC please keep comment here to allow auto update --> | ||
# Edge | ||
> Template engine for Node.js with a breath of fresh air | ||
> Template engine for Node.js with breath of fresh air | ||
[![travis-image]][travis-url] | ||
[![appveyor-image]][appveyor-url] | ||
[![coveralls-image]][coveralls-url] | ||
[![npm-image]][npm-url] | ||
![](https://img.shields.io/badge/Uses-Typescript-294E80.svg?style=flat-square&colorA=ddd) | ||
[![appveyor-image]][appveyor-url] [![circleci-image]][circleci-url] [![npm-image]][npm-url] ![](https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript) | ||
Edge is logical template engine for Node.js and has supports for all [Javascript expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Expressions). | ||
## Maintainers | ||
[Harminder virk](https://github.com/thetutlage) | ||
## Features | ||
- Minimal core, functionality added via `Tags`. | ||
- Simple developer API to add your own Tags. | ||
- Support for **layouts**, **partials** and **components**. | ||
- Support for all valid Javascript expressions. | ||
- Identical to Javascript. | ||
- Small learning curve. | ||
Make sure to read [official docs](https://edge.adonisjs.com) | ||
## Change log | ||
The change log can be found in the [CHANGELOG.md](https://github.com/poppinss/edge/CHANGELOG.md) file. | ||
## Contributing | ||
Everyone is welcome to contribute. Please go through the following guides, before getting started. | ||
1. [Contributing](https://adonisjs.com/contributing) | ||
2. [Code of conduct](https://adonisjs.com/code-of-conduct) | ||
## Authors & License | ||
[thetutlage](https://github.com/thetutlage) and [contributors](https://github.com/poppinss/edge/graphs/contributors). | ||
MIT License, see the included [MIT](LICENSE.md) file. | ||
[travis-image]: https://img.shields.io/travis/poppinss/edge/master.svg?style=flat-square&logo=travis | ||
[travis-url]: https://travis-ci.org/poppinss/edge "travis" | ||
[appveyor-image]: https://img.shields.io/appveyor/ci/thetutlage/edge/master.svg?style=flat-square&logo=appveyor | ||
[appveyor-image]: https://img.shields.io/appveyor/ci/thetutlage/edge/master.svg?style=for-the-badge&logo=appveyor | ||
[appveyor-url]: https://ci.appveyor.com/project/thetutlage/edge "appveyor" | ||
[coveralls-image]: https://img.shields.io/coveralls/poppinss/edge/master.svg?style=flat-square | ||
[coveralls-url]: https://coveralls.io/github/poppinss/edge "coveralls" | ||
[circleci-image]: https://img.shields.io/circleci/project/github/edge-js/edge/master.svg?style=for-the-badge&logo=circleci | ||
[circleci-url]: https://circleci.com/gh/edge-js/edge "circleci" | ||
[npm-image]: https://img.shields.io/npm/v/edge.svg?style=flat-square&logo=npm | ||
[npm-url]: https://www.npmjs.com/package/edge.js "npm" | ||
[npm-image]: https://img.shields.io/npm/v/edge.js.svg?style=for-the-badge&logo=npm | ||
[npm-url]: https://npmjs.org/package/edge.js "npm" |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
1076
3
52728
22
26
Updatededge-error@^1.0.4
Updatededge-parser@^2.1.1