/** * @file Seed for ext.js */ "use strict"; var u = require('../../util'), filtering = u.filtering, sorting = u.sorting, string = u.string, pkg = require('../../package'); function dependencyData(dependencies) { var names = Object.keys(dependencies); return names .sort(sorting.stringAscSort()) .map(function (name) { return { requireName: name, version: dependencies[name], exportsName: string.camelString(name) } }); } function moduleData(properties, namespace) { return properties.map(function (property) { return { name: [namespace, property].join('.'), exportsName: property } }); } module.exports = { mode: '444', force: true, data: { doc: { file: 'External modules, installed via npm.', module: 'apeman-web/ext' }, require: [ {require: '../../util', as: 'u'} ], get modules() { var utilExtNames = Object.keys(u.ext); return dependencyData(pkg.dependencies) .filter(function (data) { return utilExtNames.indexOf(data.exportsName) === -1; }) .concat(moduleData(utilExtNames, 'u.ext')) } } };