refact(api-builder): move into `tools` folder

This commit is contained in:
Peter Bacon Darwin 2015-11-04 11:20:07 +00:00
parent ce298009e6
commit 83fbe75980
88 changed files with 63 additions and 2 deletions

View File

@ -2,6 +2,10 @@ var path = require('canonical-path');
var Package = require('dgeni').Package; var Package = require('dgeni').Package;
var basePackage = require('../docs-package'); var basePackage = require('../docs-package');
var PROJECT_PATH = path.resolve(__dirname, "../../..");
var PUBLIC_PATH = path.resolve(PROJECT_PATH, 'public');
var DOCS_PATH = path.resolve(PUBLIC_PATH, 'docs');
module.exports = new Package('angular.io', [basePackage]) module.exports = new Package('angular.io', [basePackage])
.factory(require('./services/renderMarkdown')) .factory(require('./services/renderMarkdown'))
@ -35,7 +39,7 @@ module.exports = new Package('angular.io', [basePackage])
]; ];
readTypeScriptModules.hidePrivateMembers = true; readTypeScriptModules.hidePrivateMembers = true;
readFilesProcessor.basePath = path.resolve(__dirname, "../../docs"); readFilesProcessor.basePath = DOCS_PATH;
writeFilesProcessor.outputFolder = 'js/latest/api'; writeFilesProcessor.outputFolder = 'js/latest/api';
}) })
@ -76,7 +80,7 @@ module.exports = new Package('angular.io', [basePackage])
computePathsProcessor.pathTemplates.push({ computePathsProcessor.pathTemplates.push({
docTypes: ['app-data'], docTypes: ['app-data'],
pathTemplate: '../../../../resources/js/app-data', pathTemplate: path.resolve(PUBLIC_PATH, 'resources/js/app-data'),
outputPathTemplate: '${path}.json' outputPathTemplate: '${path}.json'
}); });
}) })

View File

@ -0,0 +1,9 @@
var Package = require('dgeni').Package;
module.exports = new Package('target', [])
.factory(require('./inline-tag-defs/target'))
.config(function(inlineTagProcessor, targetInlineTagDef) {
inlineTagProcessor.inlineTagDefinitions.push(targetInlineTagDef);
});

View File

@ -0,0 +1,24 @@
var _ = require('lodash');
/**
* @dgService
* @description
* Process inline `target` block tags
* (of the form `{@target environment1 environment2}...{@endtarget}`),
* filtering out the blocks that do not match the containing document's
* `targetEnvironments`.
*/
module.exports = function targetInlineTagDef() {
return {
name: 'target',
end: 'endtarget',
handler: function(doc, tagName, tagDescription) {
var targets = tagDescription && tagDescription.tag.split(' ');
if (!targets || !doc.targetEnvironments ||
_.intersection(targets, doc.targetEnvironments).length) {
return tagDescription.content;
}
return '';
}
};
};

View File

@ -0,0 +1,24 @@
var targetFactory = require('./target');
describe('target inline-tag-def', function() {
it('should filter out content that does not match the doc.targetEnvironments', function() {
var doc, target, result;
doc = {
targetEnvironments: ['js', 'es6']
};
target = targetFactory();
result = target.handler(doc, 'target', {
tag: 'es6 ts',
content: 'abc'
});
expect(result).toEqual('abc');
result = target.handler(doc, 'target', {
tag: 'ts',
content: 'xyz'
});
expect(result).toEqual('');
});
});