Socket
Socket
Sign inDemoInstall

fount

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fount - npm Package Compare versions

Comparing version 0.2.0-3 to 1.0.0-1

11

CHANGELOG.md

@@ -0,1 +1,10 @@

## 1.x.x
### 1.0.0
Proposed official release:
* enables multi-level namespaces
* attempts to clean up some of the functions and eliminate repeated logic
## 0.2.x

@@ -13,4 +22,2 @@

### 0.1.1
* #10 - Calls to previously resolved scope/key pairs return promises for consistency

@@ -17,0 +24,0 @@

7

package.json
{
"name": "fount",
"version": "0.2.0-3",
"version": "1.0.0-1",
"description": "A source from which dependencies flow",

@@ -20,3 +20,3 @@ "main": "./src/index.js",

"author": "Alex Robson",
"license": "MIT License (http://opensource.org/licenses/MIT)",
"license": "MIT",
"bugs": {

@@ -37,5 +37,4 @@ "url": "https://github.com/LeanKit-Labs/fount/issues"

"postal": "^1.0.2",
"sinon": "~1.14.1",
"whistlepunk": "^0.3.3"
"sinon": "~1.14.1"
}
}

@@ -84,2 +84,15 @@ var _ = require( 'lodash' );

function getContainerName( name, parts ) {
var lead = parts.slice( 0, -1 );
if( name === "default" ) {
return lead.join( '.' );
} else {
return ( [ name ].concat( lead ) ).join( '.' );
}
}
function getKey( parts ) {
return parts.slice( -1 )[ 0 ];
}
function getLoadedModule( name ) {

@@ -123,26 +136,7 @@ var parent = findParent( module );

if ( _.isArray( key ) ) {
var ctr = container( containerName );
key.forEach( function( k ) {
var originalKey = k;
var ctrName = containerName;
var parts = k.split( /[._]/ );
if ( parts.length > 1 ) {
ctr = container( parts[ 0 ] );
ctrName = parts[ 0 ];
k = parts[ 1 ];
}
if ( !ctr[ k ] ) {
acc.push( originalKey );
}
pushMissingKey( containerName, k, acc );
} );
} else {
var originalKey = key;
var parts = key.split( /[._]/ );
if ( parts.length > 1 ) {
containerName = parts[ 0 ];
key = parts[ 1 ];
}
if ( !container( containerName )[ key ] ) {
acc.push( originalKey );
}
pushMissingKey( containerName, key, acc );
}

@@ -153,2 +147,16 @@ return acc;

function pushMissingKey( containerName, key, acc ) {
var originalKey = key;
var parts = key.split( /[._]/ );
if ( parts.length > 1 ) {
containerName = getContainerName( containerName, parts );
key = getKey( parts );
}
var hasKey = container( containerName )[ key ] != null;
if( !hasKey ) {
acc.push( originalKey );
}
return acc;
}
function inject( containerName, dependencies, fn, scopeName ) {

@@ -170,7 +178,8 @@ scopeName = scopeName || 'default';

var parts = key.split( /[._]/ );
var ctrName = containerName;
if ( parts.length > 1 ) {
containerName = parts[ 0 ];
key = parts[ 1 ];
ctrName = getContainerName( containerName, parts );
key = getKey( parts );
}
return resolve( containerName, key, scopeName );
return resolve( ctrName, key, scopeName );
} );

@@ -205,4 +214,4 @@ return whenFn.apply( fn, args );

if ( parts.length > 1 ) {
containerName = parts[ 0 ];
key = parts[ 1 ];
containerName = getContainerName( containerName, parts );
key = getKey( parts );
}

@@ -246,22 +255,19 @@

key.forEach( function( k ) {
var originalKey = k;
var effectiveContainer = ctr;
var parts = k.split( /[._]/ );
if ( parts.length > 1 ) {
effectiveContainer = container( parts[ 0 ] );
k = parts[ 1 ];
}
hash[ originalKey ] = effectiveContainer[ k ]( scopeName );
hash[ k ] = resolveKey( containerName, k, scopeName );
} );
return whenKeys.all( hash );
} else {
var parts = key.split( /[._]/ );
if ( parts.length > 1 ) {
containerName = parts[ 0 ];
key = parts[ 1 ];
}
return container( containerName )[ key ]( scopeName );
return resolveKey( containerName, key, scopeName );
}
}
function resolveKey( containerName, key, scopeName ) {
var parts = key.split( /[._]/ );
if ( parts.length > 1 ) {
containerName = getContainerName( containerName, parts );
key = getKey( parts );
}
return container( containerName )[ key ]( scopeName );
}
function scope( containerName, name ) {

@@ -268,0 +274,0 @@ var ctr = container( containerName );

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