pages
Version:
AngularJS / Node.js sidekick.
78 lines (42 loc) • 2.35 kB
text/coffeescript
getPagesConfig = () -> require "#{process.cwd()}/pages.litcoffee"
getVendorDependencies = () -> getPagesConfig().vendor
getAngularDependencies = () -> getPagesConfig().angular
This method returns _all_ asset files, but we make sure to filter them later on based on `compile` attribute (only `js` and `css` are compiled).
vendor =
js: () -> parseVendorDependencies 'js'
css: () -> parseVendorDependencies 'css'
img: () -> parseVendorDependencies 'img'
include:
js: () -> vendor.js().filter (dependency) -> dependency.assetDef.compile is false
css: () -> vendor.css().filter (dependency) -> dependency.assetDef.compile is false
compile:
js: () -> vendor.js().filter (dependency) -> dependency.assetDef.compile is undefined or dependency.assetDef.compile is true
css: () -> vendor.css().filter (dependency) -> dependency.assetDef.compile is undefined or dependency.assetDef.compile is true
angular = () ->
dependencies = []
for dependency in vendor.compile.js()
if dependency.assetDef.angular and dependency.assetDef.angular.modules
Array::push.apply dependencies, dependency.assetDef.angular.modules
Array::push.apply dependencies, getAngularDependencies().modules
Array::push.apply dependencies, getAngularDependencies().pages
dependencies
Return all dependencies for a particular _Resource Type_.
parseVendorDependencies = (type) ->
dependencies = []
for folder,depDef of getVendorDependencies()
if depDef.include and depDef.include[type]
assetsDef = depDef.include[type]
No assets for this type under this dependency.
continue if !assetsDef
for assetDef in assetsDef
Handle files.
assetDef.asset = assetDef.asset.split('/')[assetDef.asset.split('/').length - 1] if depDef.type is 'external'
assetDef.asset = assetDef.asset.split('/')[assetDef.asset.split('/').length - 1] if depDef.type is 'localhost'
dependencies.push assetDef: assetDef, file: "#{process.cwd()}/_app/vendor/#{folder}/#{assetDef.asset}"
dependencies
## Public API ##
publicFns =
getVendorDependencies: getVendorDependencies
vendor: vendor
angular: angular
module.exports = publicFns