Commit graph

17 commits

Author SHA1 Message Date
Murod Khaydarov
bd37de8d1e Request changes 2017-12-23 22:27:26 +03:00
Murod Khaydarov
551ae9e381 Merge branch 'rewriting-version2.0' into improvements
# Conflicts:
#	build/codex-editor.js
#	build/codex-editor.js.map
2017-12-19 21:22:44 +03:00
Peter Savchenko
2df18b00b0
Module abstract (#226)
* Abstract Module class

Now all modules inherits from `Module` class. You don’t need more to
write

```js
constructor({ config }) {
        this.Editor = null;
        this.config = config;
}
```
and

```js
    /**
     * @param Editor
     * @param Editor.modules {@link CodexEditor#moduleInstances}
     * @param Editor.config {@link CodexEditor#configuration}
     */
    set state(Editor) {

        this.Editor = Editor;

    }
```

## Default exports improved

Now you don’t need more to write `.default` on module requiring

```js
let module = require(‘module’).default;
```

* Update docs
2017-12-11 13:24:46 +03:00
George Berezhnoy
dc9a20c62a Merge branch 'rewriting-version2.0' into renderer-initial 2017-12-04 12:09:34 +03:00
Peter Savchenko
5f670c3985
Autoloading improved, utilities now global (#225)
* Autoloading improved, utilities now global

# Autoloading

Webpack специально не дает использовать переменные в реквайрах типа:

let moduleName = 'toolbar.js';
let module = require(moduleName);

У нас в автолоадинге было так:

let modules = editorModules.map( module =>
require('./components/modules/' + module ));

и это работало, но не так как нужно. Он подключал не только нужные
модули из массива editorModules, а вообще все модули из папки
components/modules. Я заметил, что они попадают в сборку, хоть и не
указаны в реквайрах. Оказывается это так и задумано: Webpack на этапе
компиляции не знает что будет в переменной, то есть какой там будет
модуль. А ему нужно высчитать время компиляции, поэтому он вкладывет в
сброрку тупо все файлы из этой папки, и для каждого высчитывает время.
Так что по сути это было то же самое что просто написать
require('./components/modules/') и подключить все файлы.

Но наш автолоадер должен был подключать только указанные файлы, не
заходить в подпапки и не включать файлы, начинающиеся с подчеркивания.

Теперь автолоадинг работает так, как и задумывалось.

# Global visible modules

Теперь не нужно в каждом файле писать

import $ from '../dom';

и тд. Они автоматически будут доступны внутри модулей

* Update util.Dom

* Remove duplicated Babel helpers. Now it will be defined at once
2017-12-02 15:35:55 +03:00
George Berezhnoy
8b3a7c2747 Merge branch 'rewriting-version2.0' into renderer-initial 2017-11-30 20:01:47 +03:00
George Berezhnoy
bf83f41cc2 BlockManager 2017-11-30 10:19:07 +03:00
Peter Savchenko
7bf5bf72f1
Remove class 'name' getter (#222) 2017-11-25 20:05:35 +03:00
George Berezhnoy
85de7b903e Renderer initial 2017-11-25 18:53:03 +03:00
Murod Khaydarov
84f7125399 last changes 2017-11-25 18:05:21 +03:00
Murod Khaydarov
cf7b1a38d5 update 2017-11-25 17:57:19 +03:00
Murod Khaydarov
99ec7b6455 get tool improvements 2017-11-25 17:54:24 +03:00
Murod Khaydarov
17c65ead28 update async chains 2017-11-25 17:12:25 +03:00
Murod Khaydarov
2aac4b45ba Merge branch 'rewriting-version2.0' into module-tools-v2
# Conflicts:
#	src/codex.js
#	src/components/modules/tools.js
2017-11-25 16:30:05 +03:00
Murod Khaydarov
25329da50b fix changes 2017-11-25 16:04:27 +03:00
Murod Khaydarov
cd55c7360d Merge branch 'rewriting-version2.0' into module-tools-v2
# Conflicts:
#	src/codex.js
#	src/components/modules/tools.js
2017-11-25 14:32:55 +03:00
Peter Savchenko
061eeb7f5f
Autorequire from components/modules (#217) 2017-11-25 14:25:23 +03:00
Renamed from src/modules/tools.js (Browse further)