react / wstein / node_modules / browserify / node_modules / insert-module-globals / node_modules / combine-source-map / node_modules / source-map / Makefile.dryice.js
80552 views/* -*- Mode: js; js-indent-level: 2; -*- */1/*2* Copyright 2011 Mozilla Foundation and contributors3* Licensed under the New BSD license. See LICENSE or:4* http://opensource.org/licenses/BSD-3-Clause5*/6var path = require('path');7var fs = require('fs');8var copy = require('dryice').copy;910function removeAmdefine(src) {11src = String(src).replace(12/if\s*\(typeof\s*define\s*!==\s*'function'\)\s*{\s*var\s*define\s*=\s*require\('amdefine'\)\(module,\s*require\);\s*}\s*/g,13'');14src = src.replace(15/\b(define\(.*)('amdefine',?)/gm,16'$1');17return src;18}19removeAmdefine.onRead = true;2021function makeNonRelative(src) {22return src23.replace(/require\('.\//g, 'require(\'source-map/')24.replace(/\.\.\/\.\.\/lib\//g, '');25}26makeNonRelative.onRead = true;2728function buildBrowser() {29console.log('\nCreating dist/source-map.js');3031var project = copy.createCommonJsProject({32roots: [ path.join(__dirname, 'lib') ]33});3435copy({36source: [37'build/mini-require.js',38{39project: project,40require: [ 'source-map/source-map-generator',41'source-map/source-map-consumer',42'source-map/source-node']43},44'build/suffix-browser.js'45],46filter: [47copy.filter.moduleDefines,48removeAmdefine49],50dest: 'dist/source-map.js'51});52}5354function buildBrowserMin() {55console.log('\nCreating dist/source-map.min.js');5657copy({58source: 'dist/source-map.js',59filter: copy.filter.uglifyjs,60dest: 'dist/source-map.min.js'61});62}6364function buildFirefox() {65console.log('\nCreating dist/SourceMap.jsm');6667var project = copy.createCommonJsProject({68roots: [ path.join(__dirname, 'lib') ]69});7071copy({72source: [73'build/prefix-source-map.jsm',74{75project: project,76require: [ 'source-map/source-map-consumer',77'source-map/source-map-generator',78'source-map/source-node' ]79},80'build/suffix-source-map.jsm'81],82filter: [83copy.filter.moduleDefines,84removeAmdefine,85makeNonRelative86],87dest: 'dist/SourceMap.jsm'88});8990// Create dist/test/Utils.jsm91console.log('\nCreating dist/test/Utils.jsm');9293project = copy.createCommonJsProject({94roots: [ __dirname, path.join(__dirname, 'lib') ]95});9697copy({98source: [99'build/prefix-utils.jsm',100'build/assert-shim.js',101{102project: project,103require: [ 'test/source-map/util' ]104},105'build/suffix-utils.jsm'106],107filter: [108copy.filter.moduleDefines,109removeAmdefine,110makeNonRelative111],112dest: 'dist/test/Utils.jsm'113});114115function isTestFile(f) {116return /^test\-.*?\.js/.test(f);117}118119var testFiles = fs.readdirSync(path.join(__dirname, 'test', 'source-map')).filter(isTestFile);120121testFiles.forEach(function (testFile) {122console.log('\nCreating', path.join('dist', 'test', testFile.replace(/\-/g, '_')));123124copy({125source: [126'build/test-prefix.js',127path.join('test', 'source-map', testFile),128'build/test-suffix.js'129],130filter: [131removeAmdefine,132makeNonRelative,133function (input, source) {134return input.replace('define(',135'define("'136+ path.join('test', 'source-map', testFile.replace(/\.js$/, ''))137+ '", ["require", "exports", "module"], ');138},139function (input, source) {140return input.replace('{THIS_MODULE}', function () {141return "test/source-map/" + testFile.replace(/\.js$/, '');142});143}144],145dest: path.join('dist', 'test', testFile.replace(/\-/g, '_'))146});147});148}149150function ensureDir(name) {151var dirExists = false;152try {153dirExists = fs.statSync(name).isDirectory();154} catch (err) {}155156if (!dirExists) {157fs.mkdirSync(name, 0777);158}159}160161ensureDir("dist");162ensureDir("dist/test");163buildFirefox();164buildBrowser();165buildBrowserMin();166167168