]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Move es6 files to src, add transpile and qtest grunt tasks
authorIskren Chernev <iskren.chernev@gmail.com>
Fri, 30 Jan 2015 08:43:02 +0000 (00:43 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Wed, 25 Mar 2015 16:27:42 +0000 (09:27 -0700)
129 files changed:
.gitignore
package.json
src/lib/create/check-overflow.js [moved from lib/create/check-overflow.js with 100% similarity]
src/lib/create/date-from-array.js [moved from lib/create/date-from-array.js with 100% similarity]
src/lib/create/default-parsing-flags.js [moved from lib/create/default-parsing-flags.js with 100% similarity]
src/lib/create/from-anything.js [moved from lib/create/from-anything.js with 100% similarity]
src/lib/create/from-array.js [moved from lib/create/from-array.js with 100% similarity]
src/lib/create/from-object.js [moved from lib/create/from-object.js with 100% similarity]
src/lib/create/from-string-and-array.js [moved from lib/create/from-string-and-array.js with 100% similarity]
src/lib/create/from-string-and-format.js [moved from lib/create/from-string-and-format.js with 100% similarity]
src/lib/create/from-string.js [moved from lib/create/from-string.js with 100% similarity]
src/lib/create/local.js [moved from lib/create/local.js with 100% similarity]
src/lib/create/utc.js [moved from lib/create/utc.js with 100% similarity]
src/lib/create/valid.js [moved from lib/create/valid.js with 100% similarity]
src/lib/duration/abs.js [moved from lib/duration/abs.js with 100% similarity]
src/lib/duration/add-subtract.js [moved from lib/duration/add-subtract.js with 100% similarity]
src/lib/duration/as.js [moved from lib/duration/as.js with 100% similarity]
src/lib/duration/bubble.js [moved from lib/duration/bubble.js with 100% similarity]
src/lib/duration/constructor.js [moved from lib/duration/constructor.js with 100% similarity]
src/lib/duration/create.js [moved from lib/duration/create.js with 100% similarity]
src/lib/duration/duration.js [moved from lib/duration/duration.js with 100% similarity]
src/lib/duration/get.js [moved from lib/duration/get.js with 100% similarity]
src/lib/duration/humanize.js [moved from lib/duration/humanize.js with 100% similarity]
src/lib/duration/iso-string.js [moved from lib/duration/iso-string.js with 100% similarity]
src/lib/duration/prototype.js [moved from lib/duration/prototype.js with 100% similarity]
src/lib/format/format.js [moved from lib/format/format.js with 100% similarity]
src/lib/locale/calendar.js [moved from lib/locale/calendar.js with 100% similarity]
src/lib/locale/constructor.js [moved from lib/locale/constructor.js with 100% similarity]
src/lib/locale/en.js [moved from lib/locale/en.js with 100% similarity]
src/lib/locale/formats.js [moved from lib/locale/formats.js with 100% similarity]
src/lib/locale/invalid.js [moved from lib/locale/invalid.js with 100% similarity]
src/lib/locale/lists.js [moved from lib/locale/lists.js with 100% similarity]
src/lib/locale/locale.js [moved from lib/locale/locale.js with 100% similarity]
src/lib/locale/locales.js [moved from lib/locale/locales.js with 100% similarity]
src/lib/locale/ordinal.js [moved from lib/locale/ordinal.js with 100% similarity]
src/lib/locale/pre-post-format.js [moved from lib/locale/pre-post-format.js with 100% similarity]
src/lib/locale/prototype.js [moved from lib/locale/prototype.js with 100% similarity]
src/lib/locale/relative.js [moved from lib/locale/relative.js with 100% similarity]
src/lib/locale/set.js [moved from lib/locale/set.js with 100% similarity]
src/lib/moment/add-subtract.js [moved from lib/moment/add-subtract.js with 100% similarity]
src/lib/moment/calendar.js [moved from lib/moment/calendar.js with 100% similarity]
src/lib/moment/clone.js [moved from lib/moment/clone.js with 100% similarity]
src/lib/moment/compare.js [moved from lib/moment/compare.js with 100% similarity]
src/lib/moment/constructor.js [moved from lib/moment/constructor.js with 100% similarity]
src/lib/moment/diff.js [moved from lib/moment/diff.js with 100% similarity]
src/lib/moment/format.js [moved from lib/moment/format.js with 100% similarity]
src/lib/moment/from.js [moved from lib/moment/from.js with 100% similarity]
src/lib/moment/get-set.js [moved from lib/moment/get-set.js with 100% similarity]
src/lib/moment/locale.js [moved from lib/moment/locale.js with 100% similarity]
src/lib/moment/min-max.js [moved from lib/moment/min-max.js with 100% similarity]
src/lib/moment/moment.js [moved from lib/moment/moment.js with 100% similarity]
src/lib/moment/prototype.js [moved from lib/moment/prototype.js with 100% similarity]
src/lib/moment/start-end-of.js [moved from lib/moment/start-end-of.js with 100% similarity]
src/lib/moment/to-type.js [moved from lib/moment/to-type.js with 100% similarity]
src/lib/moment/valid.js [moved from lib/moment/valid.js with 100% similarity]
src/lib/parse/regex.js [moved from lib/parse/regex.js with 100% similarity]
src/lib/parse/token.js [moved from lib/parse/token.js with 100% similarity]
src/lib/units/aliases.js [moved from lib/units/aliases.js with 100% similarity]
src/lib/units/constants.js [moved from lib/units/constants.js with 100% similarity]
src/lib/units/day-of-month.js [moved from lib/units/day-of-month.js with 100% similarity]
src/lib/units/day-of-week.js [moved from lib/units/day-of-week.js with 100% similarity]
src/lib/units/day-of-year.js [moved from lib/units/day-of-year.js with 100% similarity]
src/lib/units/hour.js [moved from lib/units/hour.js with 100% similarity]
src/lib/units/millisecond.js [moved from lib/units/millisecond.js with 100% similarity]
src/lib/units/minute.js [moved from lib/units/minute.js with 100% similarity]
src/lib/units/month.js [moved from lib/units/month.js with 100% similarity]
src/lib/units/offset.js [moved from lib/units/offset.js with 100% similarity]
src/lib/units/quarter.js [moved from lib/units/quarter.js with 100% similarity]
src/lib/units/second.js [moved from lib/units/second.js with 100% similarity]
src/lib/units/timestamp.js [moved from lib/units/timestamp.js with 100% similarity]
src/lib/units/timezone.js [moved from lib/units/timezone.js with 100% similarity]
src/lib/units/units.js [moved from lib/units/units.js with 100% similarity]
src/lib/units/week-year.js [moved from lib/units/week-year.js with 100% similarity]
src/lib/units/week.js [moved from lib/units/week.js with 100% similarity]
src/lib/units/year.js [moved from lib/units/year.js with 100% similarity]
src/lib/utils/abs-floor.js [moved from lib/utils/abs-floor.js with 100% similarity]
src/lib/utils/compare-arrays.js [moved from lib/utils/compare-arrays.js with 100% similarity]
src/lib/utils/defaults.js [moved from lib/utils/defaults.js with 100% similarity]
src/lib/utils/deprecate.js [moved from lib/utils/deprecate.js with 100% similarity]
src/lib/utils/extend.js [moved from lib/utils/extend.js with 100% similarity]
src/lib/utils/has-own-prop.js [moved from lib/utils/has-own-prop.js with 100% similarity]
src/lib/utils/hooks.js [moved from lib/utils/hooks.js with 100% similarity]
src/lib/utils/is-array.js [moved from lib/utils/is-array.js with 100% similarity]
src/lib/utils/is-date.js [moved from lib/utils/is-date.js with 100% similarity]
src/lib/utils/map.js [moved from lib/utils/map.js with 100% similarity]
src/lib/utils/to-int.js [moved from lib/utils/to-int.js with 100% similarity]
src/lib/utils/zero-fill.js [moved from lib/utils/zero-fill.js with 100% similarity]
src/moment.js [moved from lib/moment.js with 86% similarity]
src/test/helpers/each.js [moved from test/helpers/each.js with 100% similarity]
src/test/moment/add_subtract.js [moved from test/moment/add_subtract.js with 100% similarity]
src/test/moment/create.js [moved from test/moment/create.js with 100% similarity]
src/test/moment/days_in_month.js [moved from test/moment/days_in_month.js with 100% similarity]
src/test/moment/diff.js [moved from test/moment/diff.js with 100% similarity]
src/test/moment/duration.js [moved from test/moment/duration.js with 100% similarity]
src/test/moment/duration_from_moments.js [moved from test/moment/duration_from_moments.js with 100% similarity]
src/test/moment/format.js [moved from test/moment/format.js with 100% similarity]
src/test/moment/getters_setters.js [moved from test/moment/getters_setters.js with 100% similarity]
src/test/moment/invalid.js [moved from test/moment/invalid.js with 100% similarity]
src/test/moment/is_after.js [moved from test/moment/is_after.js with 100% similarity]
src/test/moment/is_before.js [moved from test/moment/is_before.js with 100% similarity]
src/test/moment/is_between.js [moved from test/moment/is_between.js with 100% similarity]
src/test/moment/is_date.js [moved from test/moment/is_date.js with 100% similarity]
src/test/moment/is_moment.js [moved from test/moment/is_moment.js with 100% similarity]
src/test/moment/is_same.js [moved from test/moment/is_same.js with 100% similarity]
src/test/moment/is_valid.js [moved from test/moment/is_valid.js with 100% similarity]
src/test/moment/leapyear.js [moved from test/moment/leapyear.js with 100% similarity]
src/test/moment/listers.js [moved from test/moment/listers.js with 100% similarity]
src/test/moment/locale.js [moved from test/moment/locale.js with 100% similarity]
src/test/moment/min_max.js [moved from test/moment/min_max.js with 100% similarity]
src/test/moment/mutable.js [moved from test/moment/mutable.js with 100% similarity]
src/test/moment/normalize_units.js [moved from test/moment/normalize_units.js with 100% similarity]
src/test/moment/parsing_flags.js [moved from test/moment/parsing_flags.js with 100% similarity]
src/test/moment/preparse_postformat.js [moved from test/moment/preparse_postformat.js with 100% similarity]
src/test/moment/quarter.js [moved from test/moment/quarter.js with 100% similarity]
src/test/moment/relative_time.js [moved from test/moment/relative_time.js with 100% similarity]
src/test/moment/start_end_of.js [moved from test/moment/start_end_of.js with 100% similarity]
src/test/moment/string_prototype.js [moved from test/moment/string_prototype.js with 100% similarity]
src/test/moment/utc.js [moved from test/moment/utc.js with 100% similarity]
src/test/moment/utc_offset.js [moved from test/moment/utc_offset.js with 100% similarity]
src/test/moment/week_year.js [moved from test/moment/week_year.js with 100% similarity]
src/test/moment/weekday.js [moved from test/moment/weekday.js with 100% similarity]
src/test/moment/weeks.js [moved from test/moment/weeks.js with 100% similarity]
src/test/moment/weeks_in_year.js [moved from test/moment/weeks_in_year.js with 100% similarity]
src/test/moment/zone_switching.js [moved from test/moment/zone_switching.js with 100% similarity]
src/test/moment/zones.js [moved from test/moment/zones.js with 100% similarity]
src/test/qunit.js [moved from test/qunit.js with 100% similarity]
tasks/qtest.js [new file with mode: 0644]
tasks/transpile.js [new file with mode: 0644]
templates/test-header.js [new file with mode: 0644]

index 3f7127b9d98a3cf1fd79783174d4e3949da316ab..339435a7f1e54315bb3a6b014e7906499d0702d3 100644 (file)
@@ -7,4 +7,4 @@ sauce_connect.log
 .sauce-labs.creds
 npm-debug.log
 .build*
-temp
+build
index 5007d8eaa521361a109785260731628a348dd96f..9ec6b25265bd07e7aeeeea924d0c6b36f15cc1a1 100644 (file)
@@ -47,6 +47,7 @@
         "broccoli-funnel": "^0.1.6",
         "broccoli-merge-trees": "^0.2.1",
         "broccoli-uglify-js": "^0.1.3",
+        "es6-promise": "latest",
         "grunt": "latest",
         "nodeunit": "latest",
         "benchmark": "latest",
similarity index 100%
rename from lib/create/local.js
rename to src/lib/create/local.js
similarity index 100%
rename from lib/create/utc.js
rename to src/lib/create/utc.js
similarity index 100%
rename from lib/create/valid.js
rename to src/lib/create/valid.js
similarity index 100%
rename from lib/duration/abs.js
rename to src/lib/duration/abs.js
similarity index 100%
rename from lib/duration/as.js
rename to src/lib/duration/as.js
similarity index 100%
rename from lib/duration/get.js
rename to src/lib/duration/get.js
similarity index 100%
rename from lib/locale/en.js
rename to src/lib/locale/en.js
similarity index 100%
rename from lib/locale/lists.js
rename to src/lib/locale/lists.js
similarity index 100%
rename from lib/locale/set.js
rename to src/lib/locale/set.js
similarity index 100%
rename from lib/moment/clone.js
rename to src/lib/moment/clone.js
similarity index 100%
rename from lib/moment/diff.js
rename to src/lib/moment/diff.js
similarity index 100%
rename from lib/moment/from.js
rename to src/lib/moment/from.js
similarity index 100%
rename from lib/moment/valid.js
rename to src/lib/moment/valid.js
similarity index 100%
rename from lib/parse/regex.js
rename to src/lib/parse/regex.js
similarity index 100%
rename from lib/parse/token.js
rename to src/lib/parse/token.js
similarity index 100%
rename from lib/units/hour.js
rename to src/lib/units/hour.js
similarity index 100%
rename from lib/units/minute.js
rename to src/lib/units/minute.js
similarity index 100%
rename from lib/units/month.js
rename to src/lib/units/month.js
similarity index 100%
rename from lib/units/offset.js
rename to src/lib/units/offset.js
similarity index 100%
rename from lib/units/second.js
rename to src/lib/units/second.js
similarity index 100%
rename from lib/units/units.js
rename to src/lib/units/units.js
similarity index 100%
rename from lib/units/week.js
rename to src/lib/units/week.js
similarity index 100%
rename from lib/units/year.js
rename to src/lib/units/year.js
similarity index 100%
rename from lib/utils/extend.js
rename to src/lib/utils/extend.js
similarity index 100%
rename from lib/utils/hooks.js
rename to src/lib/utils/hooks.js
similarity index 100%
rename from lib/utils/map.js
rename to src/lib/utils/map.js
similarity index 100%
rename from lib/utils/to-int.js
rename to src/lib/utils/to-int.js
similarity index 86%
rename from lib/moment.js
rename to src/moment.js
index b01423a2de5f80e60b7a5a3d2a559d1a25d22508..a4781ae980fa8579818483d715ed12d7f036a81a 100644 (file)
@@ -4,7 +4,7 @@
 //! license : MIT
 //! momentjs.com
 
-import { hooks as moment, setHookCallback } from "./utils/hooks";
+import { hooks as moment, setHookCallback } from "./lib/utils/hooks";
 
 moment.version = '2.8.3';
 
@@ -18,7 +18,7 @@ import {
     createLocal     as local,
     createInvalid   as invalid,
     createInZone    as parseZone
-} from "./moment/moment";
+} from "./lib/moment/moment";
 
 import {
     defineLocale,
@@ -29,17 +29,17 @@ import {
     listWeekdays       as weekdays,
     listWeekdaysMin    as weekdaysMin,
     listWeekdaysShort  as weekdaysShort
-} from "./locale/locale";
+} from "./lib/locale/locale";
 
 import {
     isDuration,
     createDuration as duration,
     getSetRelativeTimeThreshold as relativeTimeThreshold
-} from "./duration/duration";
+} from "./lib/duration/duration";
 
-import { normalizeUnits } from "./units/units";
+import { normalizeUnits } from "./lib/units/units";
 
-import isDate from "./utils/is-date";
+import isDate from "./lib/utils/is-date";
 
 setHookCallback(local);
 
similarity index 100%
rename from test/moment/diff.js
rename to src/test/moment/diff.js
similarity index 100%
rename from test/moment/utc.js
rename to src/test/moment/utc.js
similarity index 100%
rename from test/qunit.js
rename to src/test/qunit.js
diff --git a/tasks/qtest.js b/tasks/qtest.js
new file mode 100644 (file)
index 0000000..72f1f61
--- /dev/null
@@ -0,0 +1,29 @@
+module.exports = function (grunt) {
+    grunt.task.registerTask("qtest", "run tests locally", function () {
+
+        var done = this.async();
+
+        var testrunner = require("qunit");
+
+        testrunner.options.log.assertions = false;
+        testrunner.options.log.tests = false;
+        testrunner.options.log.summary = false;
+        testrunner.options.log.testing = false;
+
+        testrunner.run({
+            code: "build/umd/moment.js",
+            tests: grunt.file.expand("build/umd/test/moment/*.js"),
+        }, function(err, report) {
+            if (err) {
+                done(err);
+                return;
+            }
+            var err = null;
+            if (report.failed !== 0) {
+                err = new Error(report.failed + " tests failed");
+            }
+            done(err);
+        });
+
+    });
+};
diff --git a/tasks/transpile.js b/tasks/transpile.js
new file mode 100644 (file)
index 0000000..3e603c4
--- /dev/null
@@ -0,0 +1,36 @@
+module.exports = function (grunt) {
+    var esperanto = require('esperanto');
+    var Promise = require('es6-promise').Promise;
+
+    grunt.task.registerTask('transpile', 'convert es6 to umd', function () {
+        var done = this.async();
+
+        grunt.file.delete("build");
+
+        esperanto.bundle({
+            base: 'src', // optional, defaults to current dir
+            entry: 'moment.js' // the '.js' is optional
+        }).then(function(bundle) {
+            var umd = bundle.toUmd({name: 'moment'});
+            grunt.file.write('build/umd/moment.js', umd.code);
+        }).then(function() {
+            var files = grunt.file.expand({cwd: 'src'}, "test/moment/*.js");
+            var header = grunt.file.read('templates/test-header.js');
+
+            return Promise.all(files.map(function (file) {
+                return esperanto.bundle({
+                    base: 'src',
+                    entry: file,
+                    skip: ['moment']
+                }).then(function (bundle) {
+                    var umd = bundle.toUmd({name: 'not_used'});
+                    var fixed = header + umd.code.split('\n').slice(5).join('\n');
+                    grunt.file.write('build/umd/' + file, fixed);
+                });
+            }));
+
+        }).catch(function() {
+        }).then(done);
+
+    });
+};
diff --git a/templates/test-header.js b/templates/test-header.js
new file mode 100644 (file)
index 0000000..80ec8ef
--- /dev/null
@@ -0,0 +1,4 @@
+(function (global, factory) {
+   typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../../moment')) :
+   typeof define === 'function' && define.amd && define(['../../moment'], factory);
+}(this, function (moment) { 'use strict';