Socket
Socket
Sign inDemoInstall

edge.js

Package Overview
Dependencies
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

edge.js - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

3

build/index.js
"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"
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc