Loading .gitignore +3 −1 Original line number Diff line number Diff line *~ node_modules .c9revisions src/projections.js src/defs/local.js Gruntfile.js +85 −33 Original line number Diff line number Diff line var buildDefs = require('./buildDefs'); module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), concat:{ full:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], dest:'./dist/proj4.js' }, noDefs:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/GOOGLE.js'], dest:'./dist/proj4-noDefs.js' } }, uglify:{ full:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], dest:'./dist/proj4.min.js' }, noDefs:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/GOOGLE.js'], dest:'./dist/proj4-noDefs.min.js' } }, connect: { server: { options: { Loading @@ -30,11 +12,24 @@ module.exports = function(grunt) { } }, mocha_phantomjs: { all: { before: { options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/index.html", "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/min.html" "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/index.html" ] } }, after:{ options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/opt.html" ] } }, amd:{ options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/amd.html" ] } } Loading @@ -48,21 +43,78 @@ module.exports = function(grunt) { unused: true, trailing:true, indent:2, //camelcase:true, globals: { proj4: true define: true } }, before: [ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], after: [ './dist/proj4.js'] all: [ './src/*.js','./src/projCode/*.js'] }, requirejs: { custom:{ options:{ out: "./dist/proj4.custom.js", baseUrl: "./src", //name: "proj4", wrap: { startFile: 'almond/top.frag', endFile: 'almond/end.frag' }, name: '../node_modules/almond/almond', include: ['proj4'], optimize:'uglify2', uglify2:{ mangle: true }, preserveLicenseComments: false } }, reg:{ options:{ out: "./dist/proj4.js", baseUrl: "./src", //name: "proj4", wrap: { startFile: 'almond/top.frag', endFile: 'almond/end.frag' }, name: '../node_modules/almond/almond', include: ['proj4'], optimize:'uglify2', uglify2:{ mangle: true }, preserveLicenseComments: false } }, amd:{ options:{ out: "./dist/amd/proj4.js", baseUrl: "./src", name: "proj4", //include: ['proj4'], optimize:'none', uglify2:{ mangle: true }, preserveLicenseComments: false } } } }); grunt.loadNpmTasks('grunt-contrib-requirejs'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-mocha-phantomjs'); grunt.registerTask('full', ['concat:full','uglify:full']); grunt.registerTask('noDefs', ['concat:noDefs','uglify:noDefs']); grunt.registerTask('test', ['connect', 'mocha_phantomjs']); grunt.registerTask('default', ['jshint:before','full','noDefs','jshint:after','test']); grunt.registerTask('test', ['connect', 'mocha_phantomjs:before']); grunt.registerTask('defs',function(){ var defs = grunt.option('defs'); if(defs && defs.indexOf(',')>-1){ defs = defs.split(','); } buildDefs.defs(defs); }); grunt.registerTask('amd',['defs','jshint','requirejs:amd','connect','mocha_phantomjs:amd']); grunt.registerTask('build',['defs','jshint','requirejs:custom']); grunt.registerTask('default', ['defs','jshint','test','requirejs:reg','mocha_phantomjs:after']); } almond/end.frag 0 → 100644 +2 −0 Original line number Diff line number Diff line return require('proj4'); })); No newline at end of file almond/top.frag 0 → 100644 +11 −0 Original line number Diff line number Diff line (function (root, factory) { /* global module: false */ if (typeof define === 'function' && define.amd) { define(factory); } else if(typeof module !== 'undefined'){ module.exports = factory(); }else { root.proj4 = factory(); } }(this, function () { buildDefs.js 0 → 100644 +89 −0 Original line number Diff line number Diff line var defaultLocals = require('./src/defs/defaultLocals'); var top = "define(function(require, exports, module) {module.exports = function(defs) {defs("; var end = ")}});"; var pTop = "define(function(require, exports) {"; var pBottom = "});" var projes = { aea: "exports.aea = require('./projCode/aea');", lcc: "exports.lcc = require('./projCode/lcc');", utm: "exports.utm = require('./projCode/utm');", aeqd: "exports.aeqd = require('./projCode/aeqd');", eqdc: "exports.eqdc = require('./projCode/eqdc');", merc: "exports.merc = require('./projCode/merc');", poly: "exports.poly = require('./projCode/poly');", mill: "exports.mill = require('./projCode/mill');", cea: "exports.cea = require('./projCode/cea');", krovak: "exports.krovak = require('./projCode/krovak');", sterea: "exports.sterea = require('./projCode/sterea');", laea: "exports.laea = require('./projCode/laea');", cass: "exports.cass = require('./projCode/cass');", eqc: "exports.eqc = require('./projCode/eqc');", tmerc: "exports.tmerc = require('./projCode/tmerc');", longlat: "exports.longlat = require('./projCode/longlat');exports.identity=exports.longlat;", somerc: "exports.somerc = require('./projCode/somerc');", sinu: "exports.sinu = require('./projCode/sinu');", stere: "exports.stere = require('./projCode/stere');", gnom: "exports.gnom = require('./projCode/gnom');", omerc: "exports.omerc = require('./projCode/omerc');", nzmg: "exports.nzmg = require('./projCode/nzmg');", moll: "exports.moll = require('./projCode/moll');", vandg: "exports.vandg = require('./projCode/vandg');" }; var fs = require('fs'); function buildDefs(defs) { if (!defs) { return writeDefs(defaultLocals); } else if (typeof defs === 'string') { return writeDefs(defaultLocals.filter(filterString(defs))); } else { return writeDefs(defaultLocals.filter(filterArray(defs))); } } function writeDefs(defs) { writeProjes(defs); fs.writeFileSync('./src/defs/local.js', top + JSON.stringify(defs) + end, 'utf8'); } function writeProjes(defs) { var out = {}; defs.forEach(function(d) { if (d.projName && (d.projName in projes)) { out[d.projName] = projes[d.projName]; } }); out.longlat = projes.longlat; out.identity = out.longlat; var outString = pTop; for (var key in out) { outString += out[key]; } outString += pBottom; fs.writeFileSync('./src/projections.js', outString, 'utf8'); } function filterString(string) { var key = string.split(':')[0]; var value = string.split(':')[1]; return function(obj) { return (key in obj) && obj[key] === value; }; } function filterArray(array) { var funcArray = array.map(filterString); return function(obj) { return funcArray.some(function(f) { return f(obj); }); }; } exports.defs = buildDefs; Loading
.gitignore +3 −1 Original line number Diff line number Diff line *~ node_modules .c9revisions src/projections.js src/defs/local.js
Gruntfile.js +85 −33 Original line number Diff line number Diff line var buildDefs = require('./buildDefs'); module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), concat:{ full:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], dest:'./dist/proj4.js' }, noDefs:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/GOOGLE.js'], dest:'./dist/proj4-noDefs.js' } }, uglify:{ full:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], dest:'./dist/proj4.min.js' }, noDefs:{ src:[ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/GOOGLE.js'], dest:'./dist/proj4-noDefs.min.js' } }, connect: { server: { options: { Loading @@ -30,11 +12,24 @@ module.exports = function(grunt) { } }, mocha_phantomjs: { all: { before: { options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/index.html", "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/min.html" "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/index.html" ] } }, after:{ options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/opt.html" ] } }, amd:{ options: { urls: [//my ide requries process.env.IP and PORT "http://"+(process.env.IP||"127.0.0.1")+":"+(process.env.PORT||"8080")+"/test/amd.html" ] } } Loading @@ -48,21 +43,78 @@ module.exports = function(grunt) { unused: true, trailing:true, indent:2, //camelcase:true, globals: { proj4: true define: true } }, before: [ './src/Proj4.js','./src/Proj.js','./src/defs.js','./src/common.js','./src/datum.js','./src/Point.js','./src/constants.js','./src/projCode/*.js','./src/defs/*.js','./src/util/MGRS.js'], after: [ './dist/proj4.js'] all: [ './src/*.js','./src/projCode/*.js'] }, requirejs: { custom:{ options:{ out: "./dist/proj4.custom.js", baseUrl: "./src", //name: "proj4", wrap: { startFile: 'almond/top.frag', endFile: 'almond/end.frag' }, name: '../node_modules/almond/almond', include: ['proj4'], optimize:'uglify2', uglify2:{ mangle: true }, preserveLicenseComments: false } }, reg:{ options:{ out: "./dist/proj4.js", baseUrl: "./src", //name: "proj4", wrap: { startFile: 'almond/top.frag', endFile: 'almond/end.frag' }, name: '../node_modules/almond/almond', include: ['proj4'], optimize:'uglify2', uglify2:{ mangle: true }, preserveLicenseComments: false } }, amd:{ options:{ out: "./dist/amd/proj4.js", baseUrl: "./src", name: "proj4", //include: ['proj4'], optimize:'none', uglify2:{ mangle: true }, preserveLicenseComments: false } } } }); grunt.loadNpmTasks('grunt-contrib-requirejs'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-mocha-phantomjs'); grunt.registerTask('full', ['concat:full','uglify:full']); grunt.registerTask('noDefs', ['concat:noDefs','uglify:noDefs']); grunt.registerTask('test', ['connect', 'mocha_phantomjs']); grunt.registerTask('default', ['jshint:before','full','noDefs','jshint:after','test']); grunt.registerTask('test', ['connect', 'mocha_phantomjs:before']); grunt.registerTask('defs',function(){ var defs = grunt.option('defs'); if(defs && defs.indexOf(',')>-1){ defs = defs.split(','); } buildDefs.defs(defs); }); grunt.registerTask('amd',['defs','jshint','requirejs:amd','connect','mocha_phantomjs:amd']); grunt.registerTask('build',['defs','jshint','requirejs:custom']); grunt.registerTask('default', ['defs','jshint','test','requirejs:reg','mocha_phantomjs:after']); }
almond/end.frag 0 → 100644 +2 −0 Original line number Diff line number Diff line return require('proj4'); })); No newline at end of file
almond/top.frag 0 → 100644 +11 −0 Original line number Diff line number Diff line (function (root, factory) { /* global module: false */ if (typeof define === 'function' && define.amd) { define(factory); } else if(typeof module !== 'undefined'){ module.exports = factory(); }else { root.proj4 = factory(); } }(this, function () {
buildDefs.js 0 → 100644 +89 −0 Original line number Diff line number Diff line var defaultLocals = require('./src/defs/defaultLocals'); var top = "define(function(require, exports, module) {module.exports = function(defs) {defs("; var end = ")}});"; var pTop = "define(function(require, exports) {"; var pBottom = "});" var projes = { aea: "exports.aea = require('./projCode/aea');", lcc: "exports.lcc = require('./projCode/lcc');", utm: "exports.utm = require('./projCode/utm');", aeqd: "exports.aeqd = require('./projCode/aeqd');", eqdc: "exports.eqdc = require('./projCode/eqdc');", merc: "exports.merc = require('./projCode/merc');", poly: "exports.poly = require('./projCode/poly');", mill: "exports.mill = require('./projCode/mill');", cea: "exports.cea = require('./projCode/cea');", krovak: "exports.krovak = require('./projCode/krovak');", sterea: "exports.sterea = require('./projCode/sterea');", laea: "exports.laea = require('./projCode/laea');", cass: "exports.cass = require('./projCode/cass');", eqc: "exports.eqc = require('./projCode/eqc');", tmerc: "exports.tmerc = require('./projCode/tmerc');", longlat: "exports.longlat = require('./projCode/longlat');exports.identity=exports.longlat;", somerc: "exports.somerc = require('./projCode/somerc');", sinu: "exports.sinu = require('./projCode/sinu');", stere: "exports.stere = require('./projCode/stere');", gnom: "exports.gnom = require('./projCode/gnom');", omerc: "exports.omerc = require('./projCode/omerc');", nzmg: "exports.nzmg = require('./projCode/nzmg');", moll: "exports.moll = require('./projCode/moll');", vandg: "exports.vandg = require('./projCode/vandg');" }; var fs = require('fs'); function buildDefs(defs) { if (!defs) { return writeDefs(defaultLocals); } else if (typeof defs === 'string') { return writeDefs(defaultLocals.filter(filterString(defs))); } else { return writeDefs(defaultLocals.filter(filterArray(defs))); } } function writeDefs(defs) { writeProjes(defs); fs.writeFileSync('./src/defs/local.js', top + JSON.stringify(defs) + end, 'utf8'); } function writeProjes(defs) { var out = {}; defs.forEach(function(d) { if (d.projName && (d.projName in projes)) { out[d.projName] = projes[d.projName]; } }); out.longlat = projes.longlat; out.identity = out.longlat; var outString = pTop; for (var key in out) { outString += out[key]; } outString += pBottom; fs.writeFileSync('./src/projections.js', outString, 'utf8'); } function filterString(string) { var key = string.split(':')[0]; var value = string.split(':')[1]; return function(obj) { return (key in obj) && obj[key] === value; }; } function filterArray(array) { var funcArray = array.map(filterString); return function(obj) { return funcArray.some(function(f) { return f(obj); }); }; } exports.defs = buildDefs;