Socket
Socket
Sign inDemoInstall

broccoli-ember-preparse

Package Overview
Dependencies
10
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.2 to 0.0.3

7

index.js

@@ -5,4 +5,5 @@ var DefineRewriter = require('./lib/define-rewriter/src/index');

module.exports = function(distNode, loaderNode) {
var node = new DefineRewriter(merge([distNode, loaderNode]));
module.exports = function(distNode, loaderNode, options) {
var input = merge([distNode, loaderNode])
var node = new DefineRewriter(input, options);
return removeFile(node, {

@@ -12,1 +13,3 @@ path: 'loader'

}
module.exports.DefineRewriter = DefineRewriter;

@@ -10,2 +10,59 @@ 'use strict';

var DEFAULT_HTMLBARS_EAGER = [
'ember/index',
'ember-htmlbars/system/render-view',
'ember-metal/streams/key-stream'
];
var DEFAULT_GLIMMER_EAGER = [
'ember-glimmer/components/checkbox',
'ember-glimmer/components/link-to',
'ember-glimmer/components/text_area',
'ember-glimmer/components/text_field',
'ember-glimmer/renderer',
'ember-glimmer/make-bound-helper',
'ember-glimmer/setup-registry',
'ember-glimmer/views/outlet',
'ember-glimmer/templates/outlet',
'ember-glimmer/templates/component',
'ember-glimmer/dom',
'ember/index'
];
function defaultFilter(node) {
if (isUMDModule(node)) {
console.log('removing UMD module:', node.name);
return true;
}
if (isTSLINTModule(node)) {
console.log('removing TSLINT module:', node.name);
return true;
}
if (isEmptyModule(node)) {
console.log('removing empty module:', node.name);
return true;
}
return false;
}
function isUMDModule(node) {
var name = node.name;
var l = name.length;
return l > 4 && name.charCodeAt(l - 4) === 46 &&
name.indexOf('umd', l - 3) !== -1;
}
function isEmptyModule(node) {
return node.functionExpression.body.body.length === 0;
}
function isTSLINTModule(node) {
var name = node.name;
var l = name.length;
return l > 7 && name.charCodeAt(l - 7) === 46 &&
name.indexOf('tslint', l - 6) !== -1;
}
/**

@@ -24,2 +81,3 @@ * NOTES

function DefineRewriter(inputNode, options) {
console.log('DefineRewriter', options)
if (options && options.eagerLoad) {

@@ -32,7 +90,15 @@ if (Array.isArray(options.eagerLoad)) {

} else {
this.eagerLoad = ['ember/index', 'ember-htmlbars/system/render-view', 'ember-metal/streams/key-stream'];
if (options && options.glimmer) {
this.eagerLoad = DEFAULT_GLIMMER_EAGER;
} else {
this.eagerLoad = DEFAULT_HTMLBARS_EAGER;
}
}
if (options && options.filter) {
this.moduleFilter = options.filter;
} else {
this.moduleFilter = defaultFilter;
}
this.loaderDeferred = RSVP.defer();
inputNode = toString.call(inputNode) === '[object Array]' ? inputNode : [inputNode];
Filter.call(this, inputNode, options);
Filter.call(this, Array.isArray(inputNode) ? inputNode : [ inputNode ], options);
}

@@ -44,3 +110,4 @@

var EMBER_PATHS = {
'ember.prod.js': true, 'ember.debug.js': true
'ember.prod.js': true,
'ember.debug.js': true
};

@@ -52,3 +119,3 @@

return this.loaderDeferred.promise.then(function(loader) {
return processEmber(string, relativePath, this.eagerLoad, loader);
return processEmber(string, relativePath, this.eagerLoad, loader, this.moduleFilter);
}.bind(this));

@@ -55,0 +122,0 @@ } else if (relativePath.indexOf('loader') > -1) {

@@ -6,6 +6,7 @@ var graphlib = require('graphlib');

function ModuleGraph() {
function ModuleGraph(moduleFilter) {
this.graph = new graphlib.Graph();
this.set = new NameSet();
this.eagerSet = new NameSet();
this.moduleFilter = moduleFilter;
}

@@ -66,12 +67,2 @@

if (/\.umd$/.test(name)) {
console.log('removing unused: '+name);
return;
}
if (!functionExpression.body.body.length) {
console.log('removing empty module: '+name);
return;
}
var parentParts = name.split('/');

@@ -95,4 +86,6 @@

this.graph.setNode(name, node);
this.set.add(name);
if (!this.moduleFilter(node)) {
this.graph.setNode(name, node);
this.set.add(name);
}
};

@@ -99,0 +92,0 @@

@@ -8,3 +8,3 @@ var babylon = require('babylon');

module.exports = function processEmber(string, relativePath, eagerLoadList, loader) {
module.exports = function processEmber(string, relativePath, eagerLoadList, loader, moduleFilter) {
var ast = babylon.parse(string);

@@ -15,3 +15,3 @@

var count = 0;
var graph = new ModuleGraph();
var graph = new ModuleGraph(moduleFilter);

@@ -57,3 +57,3 @@ var visitor = {

// Workaround for the fact that ember-metal imports ember-debug via require
// https://github.com/emberjs/ember.js/blob/1a2cd166a86219717a0cde1df4dab497d8dda3e3/packages/ember-metal/lib/main.js#L363
// https://github.com/emberjs/ember.js/blob/master/packages/ember-metal/lib/index.js#L360
graph.createEdge('ember-metal', 'ember-debug');

@@ -60,0 +60,0 @@ }

{
"name": "broccoli-ember-preparse",
"version": "0.0.2",
"version": "0.0.3",
"description": "Broccoli plugin that applies some compile time performance optimizations to an ember build. ",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc