normalize terminology
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
# GLOSSARY
|
||||||
|
|
||||||
|
- `canonical package name`: is the combination of a `package name` with an `endpoint` (example: `github:components/jquery`).
|
||||||
|
- `endpoint`: is platform where packets are hosted (`npm` or `github`).
|
||||||
|
- `override` or `override file`: is a `package.json` override file.
|
||||||
|
- `package name`: is the name of a package at some endpoint (example: `components/jquery` from `github` endpoint or `d3` from `npm` endpoint).
|
||||||
|
- `registry entry`: is just the mapping represented in the `registry.json` (example: `"jquery": "github:components/jquery"`).
|
||||||
+19
-21
@@ -3,7 +3,7 @@
|
|||||||
var util = require('util');
|
var util = require('util');
|
||||||
var mout = require('mout');
|
var mout = require('mout');
|
||||||
var colors = require('colors/safe');
|
var colors = require('colors/safe');
|
||||||
var registries = {
|
var endpoints = {
|
||||||
github: require('jspm-github'),
|
github: require('jspm-github'),
|
||||||
npm: require('jspm-npm')
|
npm: require('jspm-npm')
|
||||||
};
|
};
|
||||||
@@ -14,8 +14,7 @@ var gray = colors.gray;
|
|||||||
var log = require('./lib/log');
|
var log = require('./lib/log');
|
||||||
var JsonFile = require('./lib/JsonFile');
|
var JsonFile = require('./lib/JsonFile');
|
||||||
var RegistryFile = require('./lib/RegistryFile');
|
var RegistryFile = require('./lib/RegistryFile');
|
||||||
var RegistryEntryCollection = require('./lib/RegistryEntryCollection');
|
var OverridesList = require('./lib/OverridesList');
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// COMMANDER CONFIGURATION
|
// COMMANDER CONFIGURATION
|
||||||
@@ -88,43 +87,42 @@ if(registryFile.errors().length) {
|
|||||||
} else {
|
} else {
|
||||||
ok('registry.json is valid json');
|
ok('registry.json is valid json');
|
||||||
|
|
||||||
registryFile.forEachPackage(function(pkg, name){
|
registryFile.forEachRegistryEntry(function(pkg, registryEntryName){
|
||||||
|
|
||||||
// validate specific packages
|
// validate specific packages
|
||||||
if(program.args.length) {
|
if(program.args.length) {
|
||||||
|
|
||||||
var pos = program.args.indexOf(name);
|
var pos = program.args.indexOf(registryEntryName);
|
||||||
|
|
||||||
if(pos === -1)
|
if(pos === -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// replace for test the package-override
|
// replace for test the package-override
|
||||||
program.args[pos] = pkg.value;
|
program.args[pos] = pkg.canonical;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!pkg.endpoint || !pkg.name)
|
if(!pkg.endpoint || !pkg.name)
|
||||||
return error( util.format('%s not respects the format {ENDPOINT}:{PACKAGE_NAME}', gray(pkg.value)) );
|
return error( util.format('%s not respects the format {ENDPOINT}:{PACKAGE_NAME}', gray(pkg.canonical)) );
|
||||||
|
|
||||||
if(!registries[pkg.endpoint])
|
if(!endpoints[pkg.endpoint])
|
||||||
return error( util.format('%s is not valid registry', gray(pkg.endpoint)) );
|
return error( util.format('%s is not valid enpoint', gray(pkg.endpoint)) );
|
||||||
|
|
||||||
if(!registries[pkg.endpoint].packageFormat.test( pkg.name ))
|
if(!endpoints[pkg.endpoint].packageFormat.test( pkg.name ))
|
||||||
return error( util.format('%s is not valid package name from %s endpoint', gray(pkg.name), gray(pkg.endpoint)) );
|
return error( util.format('%s is not valid package name from %s endpoint', gray(pkg.name), gray(pkg.endpoint)) );
|
||||||
|
|
||||||
ok( util.format('%s => %s', name, pkg.value) );
|
ok( util.format('%s => %s', registryEntryName, pkg.canonical) );
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* package overrides files
|
* package overrides files
|
||||||
*/
|
*/
|
||||||
forOwn(registries, function(endpointPackage, registryName){
|
forOwn(endpoints, function(Endpoint, endpointName){
|
||||||
|
|
||||||
var registryEntryCollection = new RegistryEntryCollection(registryName);
|
var overridesList = new OverridesList(endpointName);
|
||||||
|
|
||||||
registryEntryCollection.forEachFile(function(fileinfo){
|
overridesList.forEachOverrideFile(function(fileinfo){
|
||||||
|
|
||||||
if(fileinfo.ext !== 'json')
|
if(fileinfo.ext !== 'json')
|
||||||
return error( util.format('%s is not json file', gray(fileinfo.path)) );
|
return error( util.format('%s is not json file', gray(fileinfo.path)) );
|
||||||
@@ -132,18 +130,18 @@ forOwn(registries, function(endpointPackage, registryName){
|
|||||||
if(!fileinfo.packageName || !fileinfo.packageVersion)
|
if(!fileinfo.packageName || !fileinfo.packageVersion)
|
||||||
return error( util.format('%s not respects the file name format {PACKAGE_NAME}@{PACKAGE_VERSION}.json', gray(fileinfo.path)) );
|
return error( util.format('%s not respects the file name format {PACKAGE_NAME}@{PACKAGE_VERSION}.json', gray(fileinfo.path)) );
|
||||||
|
|
||||||
if(!endpointPackage.packageFormat.test( fileinfo.packageName ))
|
if(!Endpoint.packageFormat.test( fileinfo.packageName ))
|
||||||
return error( util.format('%s is not valid package name from %s endpoint', gray(fileinfo.packageName), gray(fileinfo.endpoint)) );
|
return error( util.format('%s is not valid package name from %s endpoint', gray(fileinfo.packageName), gray(fileinfo.endpoint)) );
|
||||||
|
|
||||||
// validate specific packages
|
// validate specific packages
|
||||||
if(program.args.length && program.args.indexOf(fileinfo.packageValue) === -1 )
|
if(program.args.length && program.args.indexOf(fileinfo.canonicalPackageName) === -1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var jsonFile = new JsonFile(fileinfo.path);
|
var overrideFile = new JsonFile(fileinfo.path);
|
||||||
if(jsonFile.errors().length)
|
if(overrideFile.errors().length)
|
||||||
return error( util.format('%s is not valid json file \n - %s', gray(fileinfo.path), jsonFile.errors().join('\n -')) );
|
return error( util.format('%s is not valid json file \n - %s', gray(fileinfo.path), overrideFile.errors().join('\n -')) );
|
||||||
|
|
||||||
ok( fileinfo.packageValue + '@' + fileinfo.packageVersion );
|
ok( fileinfo.canonicalPackageName + '@' + fileinfo.packageVersion );
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ var FILE_EXTENSION = /[^.]*$/i;
|
|||||||
var PACKAGE_EXPECTATION = /(.*)@(.*).json$/;
|
var PACKAGE_EXPECTATION = /(.*)@(.*).json$/;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor RegistryEntry
|
* @constructor OverridesList
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var RegistryEntryCollection = module.exports = function RegistryEntry(endpoint){
|
var OverridesList = module.exports = function OverridesList(endpoint){
|
||||||
|
|
||||||
this._endpoint = endpoint;
|
this._endpoint = endpoint;
|
||||||
this._basePath = path.resolve('./package-overrides', this._endpoint);
|
this._basePath = path.resolve('./package-overrides', this._endpoint);
|
||||||
@@ -19,7 +19,7 @@ var RegistryEntryCollection = module.exports = function RegistryEntry(endpoint){
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RegistryEntryCollection.prototype.forEachFile = function(fn){
|
OverridesList.prototype.forEachOverrideFile = function(fn){
|
||||||
|
|
||||||
forOwn(this._files, function(file, index){
|
forOwn(this._files, function(file, index){
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ RegistryEntryCollection.prototype.forEachFile = function(fn){
|
|||||||
var fileinfo = {
|
var fileinfo = {
|
||||||
packageName: undefined,
|
packageName: undefined,
|
||||||
packageVersion: undefined,
|
packageVersion: undefined,
|
||||||
packageValue: undefined,
|
canonicalPackageName: undefined,
|
||||||
|
|
||||||
file: file,
|
file: file,
|
||||||
endpoint: this._endpoint,
|
endpoint: this._endpoint,
|
||||||
@@ -42,7 +42,7 @@ RegistryEntryCollection.prototype.forEachFile = function(fn){
|
|||||||
if (match) {
|
if (match) {
|
||||||
fileinfo.packageName = match[1];
|
fileinfo.packageName = match[1];
|
||||||
fileinfo.packageVersion = match[2];
|
fileinfo.packageVersion = match[2];
|
||||||
fileinfo.packageValue = fileinfo.endpoint + ':' + fileinfo.packageName;
|
fileinfo.canonicalPackageName = fileinfo.endpoint + ':' + fileinfo.packageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn.call(this, fileinfo, index);
|
fn.call(this, fileinfo, index);
|
||||||
@@ -3,12 +3,11 @@
|
|||||||
var util = require('util');
|
var util = require('util');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var JsonFile = require('./JsonFile');
|
var JsonFile = require('./JsonFile');
|
||||||
var PACKAGE_EXPECTATION = /^([^:\s]*):([^\s]*)$/;
|
var CANONICAL_NAME_EXPECTATION = /^([^:\s]*):([^\s]*)$/;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor RegistryFile
|
* @constructor RegistryFile
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var RegistryFile = module.exports = function RegistryFile(){
|
var RegistryFile = module.exports = function RegistryFile(){
|
||||||
|
|
||||||
if( !(this instanceof RegistryFile) )
|
if( !(this instanceof RegistryFile) )
|
||||||
@@ -19,30 +18,29 @@ var RegistryFile = module.exports = function RegistryFile(){
|
|||||||
|
|
||||||
util.inherits(RegistryFile, JsonFile);
|
util.inherits(RegistryFile, JsonFile);
|
||||||
|
|
||||||
RegistryFile.prototype.forEachPackage = function(fn){
|
RegistryFile.prototype.forEachRegistryEntry = function(fn){
|
||||||
|
|
||||||
return this.forEach(function(redirection, name){
|
return this.forEach(function(canonicalPackageName, registryEntryName){
|
||||||
|
|
||||||
var pkg = {};
|
var pkg = {};
|
||||||
var match = PACKAGE_EXPECTATION.exec(redirection);
|
var match = CANONICAL_NAME_EXPECTATION.exec(canonicalPackageName);
|
||||||
|
|
||||||
if (!match) {
|
if (!match) {
|
||||||
pkg = {
|
pkg = {
|
||||||
value: redirection,
|
canonical: canonicalPackageName,
|
||||||
endpoint: undefined,
|
endpoint: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pkg = {
|
pkg = {
|
||||||
value: match[0],
|
canonical: match[0],
|
||||||
endpoint: match[1],
|
endpoint: match[1],
|
||||||
name: match[2],
|
name: match[2],
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn.call(this, pkg, name);
|
fn.call(this, pkg, registryEntryName);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user