Commit Graph

52 Commits

Author SHA1 Message Date
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
David Taylor 9248ad1905 DEV: Enable `Style/SingleLineMethods` and `Style/Semicolon` in Rubocop (#6717) 2018-12-04 11:48:13 +08:00
Kyle Zhao 8b2a379e4e
DEV: transpile certain ES6 files without producing a module (#6460)
`.js.no-module.es6` files will be transpiled without producing a module.

import/export statements are deliberately not supported, so one would still need to use 
`const module = require('moduleName').default.`
2018-10-09 09:18:23 +08:00
Robin Ward dffb1fc4ee FEATURE: Use Glimmer compiler for widget templates
Widgets can now specify a template which is precompiled using Glimmer's
AST and then converted into our virtual dom code.

Example:

```javascript
createWidget('post-link-arrow', {
  template: hbs`
    {{#if attrs.above}}
      <a class="post-info arrow" title={{i18n "topic.jump_reply_up"}}>
        {{fa-icon "arrow-up"}}
      </a>
    {{else}}
      <a class="post-info arrow" title={{i18n "topic.jump_reply_down"}}>
        {{fa-icon "arrow-down"}}
      </a>
    {{/if}}
  `,

  click() {
    DiscourseURL.routeTo(this.attrs.shareUrl);
  }
});
```
2017-09-01 09:28:16 -04:00
Guo Xiang Tan 5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Guo Xiang Tan ac9c8ccf3b Fix broken specs. 2017-07-20 13:17:45 +09:00
Guo Xiang Tan 0edb0018ff Dispose of heap when we reset the context. 2017-07-20 13:10:56 +09:00
Robin Ward 754c1e5438 Upgrade to Babel 6 2017-07-05 15:25:23 -04:00
Robin Ward 2f480e21a0 Stop using Babel source gem, which is no longer updated 2017-07-05 14:19:16 -04:00
Sam 6e5296a510 FEATURE: upgrade sprockets to latest stable
This unlocks Rails upgrades, so we can now upgrade to latest Rails
2017-04-17 10:12:05 -04:00
Sam 7e43e73df6 FIX: properly reset all contexts after forking
Fixes hang on backup
2016-11-02 13:34:20 +11:00
Robin Ward a546395397 REFACTOR: Migrate markdown functionality in ES6 2016-07-11 12:57:05 -04:00
Sam 695773db1c FEATURE: upgrade from therubyracer to mini_racer
This pushes our internal V8 JavaScript engine from Chrome 32 to 50.

It also resolves some long standing issues we had with the old wrapper.
2016-05-23 09:57:15 +10:00
Jeff Atwood ed446ca487 increase transpiler timeout to 15 sec 2016-04-21 16:52:25 -07:00
Jeff Atwood 8f59917f6b increase es6 transpiler timeout from 5 to 10 sec 2016-03-29 16:43:04 -07:00
Robin Ward b4f306ce03 FEATURE: Site Customizations can use the plugin api 2016-03-18 14:41:48 -04:00
Robin Ward d1e85bdd8b FEATURE: Use virtual dom framework for faster post rendering 2016-02-11 11:00:40 -05:00
Sam aa2f802247 PERF: DISCOURSE_NO_CONSTANTS removed
we minimize the amount of constants we decalre see: https://meta.discourse.org/t/deprecating-es6-compatibility-layer/35821
2015-12-01 10:58:01 +11:00
Sam 5c899c765b Revert "Revert "REFACTOR: support booting discourse with DISCOURSE_NO_CONSTANTS""
This reverts commit c21457d6a7.
2015-11-21 12:27:06 +11:00
Robin Ward c21457d6a7 Revert "REFACTOR: support booting discourse with DISCOURSE_NO_CONSTANTS"
This reverts commit c0b277d273.
2015-11-20 10:00:12 -05:00
Sam c0b277d273 REFACTOR: support booting discourse with DISCOURSE_NO_CONSTANTS
This change is discussed here: https://meta.discourse.org/t/deprecating-es6-compatibility-layer/35821

Prior to this change we were not booting correctly with DISCOURSE_NO_CONSTANTS
2015-11-21 00:14:50 +11:00
Sam 09bedfd4c0 Make DISCOURSE_NO_CONSTANTS work in anon for home page 2015-11-20 00:29:56 +11:00
Robin Ward a89241f0b9 Don't include code in files for jshint anymore, eslint is run on command
line
2015-08-13 15:19:27 -04:00
Robin Ward 22844b9e46 Ember 1.12 support 2015-08-13 11:14:16 -04:00
Robin Ward 3c742918fe FIX: Transpile unicode to fix opera issue 2015-07-30 15:16:07 -04:00
Robin Ward bb93a345eb UX: Use smaller messages for moderator actions. 2015-07-27 10:09:21 -04:00
Robin Ward 4706b77940 Backwards compatibility with deprecation for `Discourse.PostMenuView` 2015-07-07 15:18:19 -04:00
Robin Ward aee12fd6ef Ember Deprecations for Topics 2015-05-11 11:18:37 -04:00
Robin Ward 788b66e4a3 Update SourceURL to work better 2015-04-16 16:51:49 -04:00
Robin Ward c7d367996a PERF: Concatenate scripts in development mode
This improves my DOMContentLoaded from 9s+ to less than 4s.
Pinging @SamSaffron on this because this was previously controversial.

This implementation adds the `@sourceURL` directive so chrome correctly
identifies the source files.
2015-04-16 15:40:23 -04:00
Robin Ward a83a19f6ce ES6 module migrations 2015-04-15 14:54:36 -04:00
Robin Ward f50280a889 Split out bulk operations modal and `Discourse.Route.showModal`
This makes it easier to share bulk topic operations, for example
from a plugin's custom topic list.
2015-03-10 15:40:56 -04:00
Robin Ward 4691fe35b3 FIX: 6to5 was renamed to Babel
I can't believe they just pulled the old gem and broke people deploying
our site to production. I get it, your name changed, but don't break
other people's apps with no deprecations.
2015-03-05 13:08:32 -05:00
Robin Ward cf3582bedb FIX: JSHint wasn't validating ES6 files, this fixes a bunch of errors. 2015-02-10 17:21:16 -05:00
Robin Ward 9584990477 Whitelist specific ES6 features we want for now. 2015-02-06 13:44:17 -05:00
Robin Ward a65e0a80ba Add support for more ES6 features 2015-02-06 13:26:33 -05:00
Robin Ward 9a07945a16 FIX: Don't add constants for ES6 modules in plugins
If you're using ES6 in a plugin, you shouldn't be depending on the
backwards compatibility layer. That's for proper Discourse only.
2015-02-03 13:14:05 -05:00
Robin Ward 0fc0533134 FEATURE: Admin interface for adding custom fields for users 2014-09-25 16:17:51 -04:00
Robin Ward 0adfeb1cff ES6: Mega update of controllers 2014-08-13 10:22:47 -04:00
Robin Ward c709ea8f9e FIX: Don't generate compatibility layer for test files 2014-08-06 18:07:27 -04:00
Robin Ward 15a51c6316 ES6: Patch up a few issues with the admin controllers conversion 2014-07-25 14:17:58 -04:00
Robin Ward 4c51258526 PERF: Speed up JSHint tests by using local buffers instead of AJAX
requests.
2014-07-22 14:13:37 -04:00
Robin Ward fd3ceae1d6 ES6: Enable compatibility layer for routes 2014-07-22 12:09:29 -04:00
Robin Ward 44ee7587c0 FIX: Plugins should be required by the path we generate for them 2014-06-09 15:22:11 -04:00
Robin Ward 010da29957 FIX: Plugin transpilation should work in workspaces that aren't called
`discourse`
2014-05-20 16:54:59 -04:00
Robin Ward 5bbe938e82 FIX: Backwards compatibility layer was not handling constants that ended
with 's'
2014-05-20 11:13:43 -04:00
Robin Ward 275fa02082 Generate compatibility layer for Components too 2014-05-16 16:39:41 -04:00
Robin Ward ba8b45792c Plugins: Prefix `discourse/plugins/PLUGINNAME` for plugin export names. 2014-05-15 16:31:45 -04:00
Robin Ward ad90d9710d Add an ENV variable to enable the stricter, plugin-incompatible ES6
behaviour for development.
2014-05-13 12:49:02 -04:00
Robin Ward 092f7510b4 Plugin Backwards compatibility layer for ES6 2014-05-12 15:53:38 -04:00