Robin Ward
ce3fe2f4c4
REFACTOR: Support bundling our `admin` section as an ember addon
2020-09-22 15:14:29 -04:00
Joffrey JAFFEUX
bbddce4d3a
DEV: updates js transpiler to use babel 7 ( #10627 )
...
Updates our js transpiler code to use Babel 7.11.6
List of changes in this commit:
- Updates plugins, babel plugins all have a new version which doesn't contain -es2015- anymore
- Drops [transform-es2015-classes](https://babeljs.io/docs/en/babel-plugin-transform-classes ) this plugin shouldn't be needed now that we don't support IE
- Drops check-es2015-constants, checking constants is now part of babel and the check-constants plugin is deprecated. As a result the behavior slightly changed, and is now wrapping every const call in a readOnlyError function which would throw if assigned a new value. This explains the modified spec.
- Adds [proposal-optional-chaining](https://babeljs.io/docs/en/babel-plugin-proposal-optional-chaining )
```javascript
const obj = {
foo: {
bar: {
baz: 42,
},
},
};
const baz = obj?.foo?.bar?.baz; // 42
```
- Adds [proposal-json-strings](https://babeljs.io/docs/en/babel-plugin-proposal-json-strings )
```javascript
// IN
const ex = "before
after";
// ^ There's a U+2028 char between 'before' and 'after'
// OUT
const ex = "before\u2028after";
// ^ There's a U+2028 char between 'before' and 'after'
```
- Adds [proposal-nullish-coalescing-operator](https://babeljs.io/docs/en/babel-plugin-proposal-nullish-coalescing-operator )
```javascript
var object = {};
var foo = object.foo ?? "default"; // default
```
- Adds [proposal-logical-assignment-operators](https://babeljs.io/docs/en/babel-plugin-proposal-logical-assignment-operators )
```javascript
let a;
let b = 2;
a ||= b; // 2
```
- Adds [proposal-numeric-separator](https://babeljs.io/docs/en/babel-plugin-proposal-numeric-separator )
```javascript
let budget = 1_000_000_000_000;
console.log(budget === 10 ** 12); // true
```
- Adds proposal-object-rest-spread https://babeljs.io/docs/en/babel-plugin-proposal-object-rest-spread
```javascript
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }
```
- Adds proposal-optional-catch-binding https://babeljs.io/docs/en/babel-plugin-proposal-optional-catch-binding
```javascript
try {
} catch {
} finally {
// ensures finally is available in every browsers
}
```
- Adds improved regex support for firefox through (transform-dotall-regex](https://babeljs.io/docs/en/next/babel-plugin-transform-dotall-regex.html ) and (proposal-unicode-property-regex](https://babeljs.io/docs/en/babel-plugin-proposal-unicode-property-regex )
- Drops async/generator stuff, the browser we target should allow to use this (excepts iterable async)
2020-09-15 09:26:33 +02:00
David Taylor
7d300006a1
Revert "PERF: Move highlightjs to a background worker, and add result cache ( #10191 )"
...
This caused a CORS error when used with S3 asset storage
This reverts commit d09f283e91
.
2020-07-15 13:52:35 +01:00
David Taylor
c802c7367a
FIX: Allow highlightjs-worker to be compiled successfully
2020-07-15 13:17:52 +01:00
Robin Ward
2b2434b82d
Start Discourse in an initializer ( #9930 )
...
* DEV: To be pedantic, there is more than EMBER in there now
* DEV: Use less globals. Have `Discourse` start in an initializer
* DEV: Remove another global
2020-05-29 14:37:02 -04:00
Sam Saffron
4601833e4e
PERF: ensure we run full GC on contexts
...
Prior to this change we would never clear memory from contexts and
rely on V8 reacting to pressure
This could lead to bloating of PrettyText and Transpiler contexts
This optimisations ensures that we will clear memory 2 seconds after
the last eval on the context
2020-05-15 14:01:54 +10:00
Robin Ward
01929e3505
DEV: Move `preload-store` to `discourse/lib/preload-store`
...
It's only used inside Discourse so it needn't be its own module
2020-05-06 15:28:06 -04:00
Robin Ward
e57fd283db
DEV: Rename `deprecated` to the more appropriate app-boot
2020-05-01 15:19:19 -04:00
Robin Ward
cbb27241c4
DEV: Make `discourse-common` an Ember addon. ( #9578 )
...
This is to help with the migration to Ember CLI. In the current running
version of Discourse everything should be the same as before, just with
a few extra files that are not used. However, using Ember CLI this can
be installed as an Ember addon.
Co-Authored-By: Jarek Radosz <jradosz@gmail.com>
2020-04-29 12:18:21 -04:00
Robin Ward
056327c0c9
DEV: Move `discourse.js` to `app/app.js` ( #9545 )
...
This is another thing to get our application in line with what Ember CLI
expects.
2020-04-27 13:28:10 -04:00
Roman Rizzi
7a2e8d3ead
DEV: Add the missing `app` subdirectory ( #9499 )
...
* DEV: Add missing directory to the Discourse ember app
* DEV: Resolve imports correctly
2020-04-23 10:07:54 -03:00
Robin Ward
7b4fdebbce
FEATURE: Plugin support for transpiling regular `.js` files ( #9398 )
...
This adds support for a new piece of metadata to your plugin.rb
files. If you add:
```
transpile_js: true
```
Then Discourse will support transpilation of assets in your
`assets/javascripts` directory. Previously they had to be named
`.js.es6` but now regular `.js` will work.
Note this is opt-in because some plugins currently have `.js` files in
app/assets that are not meant to be transpiled.
Going forward all plugins should migrate to this setting as they are
comfortable able to do so.
2020-04-13 15:05:46 -04:00
Robin Ward
b2b7afd310
Rename the server side widget hbs compiler
2020-03-27 12:06:14 -04:00
Robin Ward
7d2c71dd5f
FIX: Auto redirect had invalid extension
2020-03-26 13:21:04 -04:00
Robin Ward
388e14b9dc
FIX: Broken transpilation
2020-03-26 13:12:17 -04:00
Robin Ward
358ddb9b95
FIX: `nil` != `false`
2020-03-26 12:47:10 -04:00
Robin Ward
60df2ade8d
Retry: Rename all test files from JS -> ES6
2020-03-26 12:25:46 -04:00
Robin Ward
4fa580fbd1
Revert "Rename all test files from JS -> ES6"
...
This reverts commit 2abe85b834
.
2020-03-25 16:13:43 -04:00
Robin Ward
eaa324ecbd
Revert "Move the widget-hbs compiler to js from es6"
...
This reverts commit 5d66a2c16e
.
2020-03-25 16:13:26 -04:00
Robin Ward
5d66a2c16e
Move the widget-hbs compiler to js from es6
2020-03-25 15:03:21 -04:00
Robin Ward
2abe85b834
Rename all test files from JS -> ES6
2020-03-25 15:03:21 -04:00
Robin Ward
f2f8ede22c
Last ES6 files in our app/assets/javascripts
2020-03-25 12:30:20 -04:00
Robin Ward
a11938d58d
Rename more es6 files to js
2020-03-24 16:32:56 -04:00
Robin Ward
4d190c93b6
Migrate ember-addons from ES6 -> JS
2020-03-24 16:11:56 -04:00
Robin Ward
27641f21e4
Migrate `discourse-common` from es6 -> js
2020-03-23 15:05:58 -04:00
Robin Ward
1ac0242201
Convert wizard es6 files to js
2020-03-23 14:15:16 -04:00
Robin Ward
07813c4a91
Convert select-kit from es6 to js ( #9246 )
...
* Convert select-kit from es6 to js
* Hide more git blames
2020-03-20 12:40:32 -04:00
Robin Ward
c150566506
Migrate pretty-text to `.js` extensions ( #9243 )
2020-03-20 09:55:42 -04:00
Robin Ward
e40e06d78c
Rename `.js.es6` to `.js` in the admin application
2020-03-13 17:03:08 -04:00
Robin Ward
a3f0543f99
Support for transpiling `.js` files ( #9160 )
...
* Remove some `.es6` from comments where it does not matter
* Use a post processor for transpilation
This will allow us to eventually use the directory structure to
transpile rather than the extension.
* FIX: Some errors and clean up in confirm-new-email
It would throw an error if the webauthn element wasn't present.
Also I changed things so that no-module is not explicitly
referenced.
* Remove `no-module`
Instead we allow a magic comment: `// discourse-skip-module` to prevent
the asset pipeline from creating a module.
* DEV: Enable babel transpilation based on directory
If it's in `app/assets/javascripts/dicourse` it will be transpiled
even without the `.es6` extension.
* REFACTOR: Remove Tilt/ES6ModuleTranspiler
2020-03-11 09:43:55 -04:00