Sha256: 663aa1022ea35aa200684911bdcfbdf3ddf20289b64cfffc4abe0cb2da0ecd79

Contents?: true

Size: 985 Bytes

Versions: 26

Compression:

Stored size: 985 Bytes

Contents

module.exports = (function(){

	var fs = require('fs'),
		path = require('path');

	return function importFile(fileName, fileMap){

		// To Prevent Circular Imports
		fileMap = fileMap || {};

		// Determine Path for Importing dependent files
		var filePath = path.dirname(fileName),

			// Resolve to get the full path every time
			mapPath = path.resolve(fileName);

		// Add Error Handlers Later...
		if(
			// Check that File Exists
			!fs.existsSync(fileName) ||

			// Check it hasn't been imported yet
			fileMap[mapPath]
		){ return ""; }

		// Mark as Read
		fileMap[mapPath] = 1;

		return	fs.readFileSync(fileName)
				.toString()
				.replace(
					// Regex to match import statements
					/^(?:(?!\/[\/*]))([ \t]*)(.*)import [\"\'](.+)[\"\'];(?![^\*]+\*\/)/gm,
					function(match, tabs, prefix, fileName){

						// Replace Import
						return tabs + prefix + importFile(path.resolve(filePath, fileName+".js"), fileMap).replace(/\n/g, "\n"+tabs);
					}
				);
	};

})();

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.22 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.21 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.20 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.19 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.18 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.17 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.16 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.15 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.14 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.13 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.12 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.11 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.10 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.9 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.8 lib/clapton/javascripts/node_modules/import/index.js
clapton-0.0.7 lib/clapton/javascripts/node_modules/import/index.js