Skip to content

Commit b170183

Browse files
authored
check custom elements v1 api (#26)
* tweaks for custom elements v1 * fix import * rm babel-preset-es2015 * rm registerElements reference * reset branches * use develop branch by default
1 parent fd9ba54 commit b170183

9 files changed

Lines changed: 37 additions & 52 deletions

File tree

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
"dependencies": {
4545
"babel-core": "^6.16.0",
4646
"babel-loader": "^6.2.5",
47-
"babel-preset-es2015": "^6.16.0",
4847
"babel-register": "^6.16.3",
4948
"commander": "^2.9.0",
5049
"fs-extra": "^0.30.0",

src/code-gen/element-bundle.js

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,6 @@ let baseConfig = (root) => {
1313
return {
1414
module: {
1515
loaders: [
16-
{
17-
test: /\.js$/,
18-
loader: resolve.sync('babel-loader', { basedir: root }),
19-
query: {
20-
babelrc: false,
21-
presets: [
22-
resolve.sync('babel-preset-es2015', { basedir: root })
23-
]
24-
},
25-
},
2616
{
2717
test: /\.css$/,
2818
loader: 'style!css'
@@ -43,19 +33,27 @@ const ENTRY_JS = 'entry.js';
4333

4434
function writeEntryJs(root, pies) {
4535

46-
let registerElementSrc = (p, index) => `import comp${index} from '${p}';
47-
document.registerElement('${p}', comp${index});
48-
`;
36+
let preamble = `if(!customElements){
37+
throw new Error('Custom Elements arent supported');
38+
}`;
39+
40+
let defineCustomElement = (p, index) => `
41+
import comp${index} from '${p}';
42+
//customElements v1
43+
customElements.define('${p}', comp${index});
44+
`;
4945

5046
let init = (p, index) => {
5147
if (p.hasOwnProperty('initSrc')) {
5248
return p.initSrc;
5349
} else {
54-
return registerElementSrc(p, index);
50+
return defineCustomElement(p, index);
5551
}
5652
};
5753

58-
let js = _.map(pies, init).join('\n');
54+
let js = `${preamble}
55+
${_.map(pies, init).join('\n')};
56+
`;
5957

6058
return new Promise((resolve, reject) => {
6159
let entryPath = path.join(root, ENTRY_JS);
@@ -69,7 +67,6 @@ document.registerElement('${p}', comp${index});
6967
});
7068
}
7169

72-
7370
/**
7471
* @param loaders {Array[{(resolve) => Object}]}
7572
*/

src/code-gen/markup-example.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import jsesc from 'jsesc';
22
import fs from 'fs-extra';
3-
import path from 'path';
43
import { removeFiles } from '../file-helper';
54

65
let mkExampleMarkup = (markup, model, controllerFile, controllerUid) => `
@@ -12,23 +11,22 @@ let mkExampleMarkup = (markup, model, controllerFile, controllerUid) => `
1211
<script src="pie.js" type="text/javascript"></script>
1312
<script src="${controllerFile}" type="text/javascript"></script>
1413
<script type="text/javascript">
15-
16-
document.addEventListener('DOMContentLoaded', function(){
1714
18-
env = {mode: 'gather'};
19-
model = ${jsesc(model)};
20-
session = [];
15+
window.pie = window.pie || {};
16+
window.pie.env = {mode: 'gather'};
17+
window.pie.model = ${jsesc(model)};
18+
window.pie.session = [];
2119
22-
var player = document.querySelector('pie-player');
23-
24-
player.addEventListener('pie.player-ready', function(event){
25-
var pieController = new pie.Controller(model, window['${controllerUid}']);
20+
document.addEventListener('pie.player-ready', function(event){
21+
var player = event.target;
22+
var pieController = new pie.Controller(window.pie.model, window['${controllerUid}']);
2623
player.controller = pieController;
27-
player.env = env;
28-
player.session = session;
24+
player.env = window.pie.env;
25+
player.session = window.pie.session;
2926
3027
var panel = document.querySelector('pie-control-panel');
31-
panel.env = { mode: 'gather' };
28+
panel.env = window.pie.env;
29+
3230
panel.addEventListener('envChanged', function(event){
3331
console.log('envChanged', event.target.env);
3432
player.env = event.target.env;
@@ -41,7 +39,6 @@ let mkExampleMarkup = (markup, model, controllerFile, controllerUid) => `
4139
}
4240
});
4341
});
44-
});
4542
</script>
4643
</head>
4744
<body>

src/framework-support/frameworks/react.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ export function support(dependencies) {
1515

1616
return {
1717
npmDependencies: {
18-
'babel-preset-es2015': '~6.16.0',
1918
'babel-preset-react': '~6.16.0'
2019
},
21-
webpackLoaders: (resolve) => {
20+
webpackLoaders: () => {
2221
return [
2322
{
2423
test: /.(jsx)?$/,
2524
loader: 'babel-loader',
25+
//Don't read in .babelrc files from the dependencies
2626
query: {
27+
babelrc: false,
2728
presets: [
28-
resolve('babel-preset-es2015'),
29-
resolve('babel-preset-react')
29+
'babel-preset-react'
3030
]
3131
}
3232
}

src/question/packer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,11 @@ export default class Packer {
9595

9696
export let DEFAULT_DEPENDENCIES = (branch) => {
9797

98-
branch = branch || 'master';
98+
branch = branch || 'develop';
9999

100100
let branchSpecific = {
101-
'pie-player': `PieLabs/pie-player#${branch}`,
102101
'pie-controller': `PieLabs/pie-controller#${branch}`,
102+
'pie-player': `PieLabs/pie-player#${branch}`,
103103
'pie-control-panel': `PieLabs/pie-control-panel#${branch}`
104104
}
105105

test/integration/example-components/hello-world/lib/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@ import ReactDOM from 'react-dom';
33
import Tester from './tester';
44

55
export default class HelloWorld extends HTMLElement {
6-
createdCallback() {
7-
console.log('created..');
8-
}
96

10-
attachedCallback() {
7+
connectedCallback() {
118
console.log('attached..');
129
this.dispatchEvent(new CustomEvent('pie.register', { bubbles: true }));
1310
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import VueComponent from '../lib/index';
22

3-
document.registerElement('vue-component', VueComponent);
3+
customElements.define('vue-component', VueComponent);
44

test/integration/example-components/vue-component/lib/index.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,8 @@ export default class CorespringMultipleChoiceVueElement extends HTMLElement {
2626
this._rerender();
2727
}
2828

29-
createdCallback() {
30-
this._rerender();
31-
}
32-
33-
attachedCallback() {
34-
console.log('attached');
35-
29+
connectedCallback() {
30+
console.log('connected');
3631
this.dispatchEvent(new CustomEvent('pie.register', { bubbles: true }));
3732
}
3833

test/integration/question/packer-vue-test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { expect } from 'chai';
55
import { join } from 'path';
66
import fs from 'fs-extra';
77
import path from 'path';
8-
import testHelper from '../integration-test-helper';
8+
import { setUpTmpQuestionAndComponents } from '../integration-test-helper';
99

1010
describe('Packer.pack :: Vue', () => {
1111

@@ -14,8 +14,8 @@ describe('Packer.pack :: Vue', () => {
1414
before(function (done) {
1515

1616
this.timeout(50000);
17-
let tmpPath = testHelper.setUpTmpQuestionAndComponents('packer-vue-test');
18-
let questionPath = join(tmpPath, 'example-questions/vue-question');
17+
let tmpPath = setUpTmpQuestionAndComponents('packer-vue-test');
18+
questionPath = join(tmpPath, 'example-questions/vue-question');
1919

2020
frameworkSupport = FrameworkSupport.bootstrap([
2121
path.join(__dirname, '_vue-support')

0 commit comments

Comments
 (0)