Skip to content

Commit

Permalink
Merge pull request #3995 from rwjblue/embed-shims
Browse files Browse the repository at this point in the history
[BUGFIX beta] Implement public module API.
  • Loading branch information
bmac committed Dec 14, 2015
2 parents 01c350b + 8cd375e commit de6f7be
Show file tree
Hide file tree
Showing 19 changed files with 117 additions and 77 deletions.
1 change: 1 addition & 0 deletions addon/adapter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/system/adapter";
1 change: 1 addition & 0 deletions addon/adapters/json-api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/adapters/json-api-adapter";
1 change: 1 addition & 0 deletions addon/adapters/rest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/adapters/rest-adapter";
1 change: 1 addition & 0 deletions addon/attr.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/system/model/attributes";
1 change: 1 addition & 0 deletions addon/model.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/system/model";
1 change: 1 addition & 0 deletions addon/relationships.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from 'ember-data/-private/system/relationships';
1 change: 1 addition & 0 deletions addon/serializers/json-api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/serializers/json-api-serializer";
1 change: 1 addition & 0 deletions addon/serializers/json.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/serializers/json-serializer";
1 change: 1 addition & 0 deletions addon/serializers/rest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/serializers/rest-serializer";
1 change: 1 addition & 0 deletions addon/store.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/system/store";
1 change: 1 addition & 0 deletions addon/transform.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "ember-data/-private/transforms/base";
24 changes: 0 additions & 24 deletions config/environment.js

This file was deleted.

49 changes: 49 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,59 @@
module.exports = {
name: 'ember-data',

_warn: function(message) {
var chalk = require('chalk');
var warning = chalk.yellow('WARNING: ' + message);

if (this.ui && this.ui.writeWarnLine) {
this.ui.writeWarnLine(message);
} else if (this.ui) {
this.ui.writeLine(warning);
} else {
console.log(warning);
}
},

init: function() {
var bowerDeps = this.project.bowerDependencies();

if (bowerDeps['ember-data']) {
this._warn('Please remove `ember-data` from `bower.json`. As of Ember Data 2.3.0, only the NPM package is needed.');
this._forceBowerUsage = true;
} else {
this._forceBowerUsage = false;
}

var VersionChecker = require('ember-cli-version-checker');

var checker = new VersionChecker(this);
var dep = checker.for('ember-cli-shims', 'bower');

if (!dep.satisfies('>= 0.1.0')) {
this._warn('Using a version of ember-cli-shims prior to 0.1.0 will cause errors while loading Ember Data 2.3+. Please update ember-cli-shims from ' + dep.version + ' to 0.1.0.');
}
},

treeForAddon: function(dir) {
if (this._forceBowerUsage) {
// Fakes an empty broccoli tree
return { inputTree: dir, rebuild: function() { return []; } };
}

var version = require('./lib/version');
var merge = require('broccoli-merge-trees');

return this._super.treeForAddon.call(this, merge([version(), dir]));
},

included: function(app) {
this._super.included.apply(this, arguments);

if (this._forceBowerUsage) {
this.app.import({
development: app.bowerDirectory + '/ember-data/ember-data.js',
production: app.bowerDirectory + '/ember-data/ember-data.prod.js'
});
}
}
};
15 changes: 0 additions & 15 deletions lib/ember-addon/blueprints/ember-data/index.js

This file was deleted.

31 changes: 0 additions & 31 deletions lib/ember-addon/index.js

This file was deleted.

36 changes: 36 additions & 0 deletions lib/ember-data-shims.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
;(function() {
function processEmberDataShims() {
var shims = {
'ember-data': { default: DS },
'ember-data/model': { default: DS.Model },
'ember-data/serializers/rest': { default: DS.RESTSerializer },
'ember-data/serializers/active-model': { default: DS.ActiveModelSerializer },
'ember-data/serializers/json': { default: DS.JSONSerializer },
'ember-data/serializers/json-api': { default: DS.JSONAPISerializer },
'ember-data/adapters/json-api': { default: DS.JSONAPIAdapter },
'ember-data/adapters/rest': { default: DS.RESTAdapter },
'ember-data/adapter': { default: DS.Adapter },
'ember-data/adapters/active-model': { default: DS.ActiveModelAdapter },
'ember-data/store': { default: DS.Store },
'ember-data/transform': { default: DS.Transform },
'ember-data/attr': { default: DS.attr },
'ember-data/relationships': { hasMany: DS.hasMany, belongsTo: DS.belongsTo }
};

for (var moduleName in shims) {
generateModule(moduleName, shims[moduleName]);
}
}

function generateModule(name, values) {
define(name, [], function() {
'use strict';

return values;
});
}

if (typeof define !== 'undefined' && define && define.petal) {
processEmberDataShims();
}
})();
5 changes: 4 additions & 1 deletion lib/javascripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,15 @@ function collapse(tree, outputFileName) {
var license = new Funnel(generatorDir, {include: ['license.js']});
license = versionReplace(license);

var emberDataShimsPath = path.join(__dirname, 'ember-data-shims.js');
var emberDataShims = fs.readFileSync(emberDataShimsPath, { encoding: 'utf8' });

var withLoader = merge([tree, loader, license, emberShim]);
return concat(withLoader, {
inputFiles: ['license.js', 'loader.js', '**/*.js'],
outputFile: '/' + outputFileName,
header: '(function(){ \n"use strict";\n',
footer: '\nrequire("ember-data");\n})();\n'
footer: '\nrequire("ember-data");\n})();\n' + emberDataShims
});
}

Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
"bower": "bower install",
"production": "ember build --environment=production"
},
"repository": "",
"engines": {
"node": ">= 0.10.0"
},
Expand All @@ -24,7 +23,9 @@
"dependencies": {
"broccoli-file-creator": "^1.0.0",
"broccoli-merge-trees": "^1.0.0",
"ember-cli-babel": "^5.1.3"
"chalk": "^1.1.1",
"ember-cli-babel": "^5.1.3",
"ember-cli-version-checker": "^1.1.4"
},
"devDependencies": {
"babel-plugin-feature-flags": "^0.2.0",
Expand Down
18 changes: 14 additions & 4 deletions tests/dummy/config/environment.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
/* jshint node: true */

var fs = require('fs');
var featuresJson = fs.readFileSync('config/features.json', { encoding: 'utf8' });
var featureFlags = JSON.parse(featuresJson);

module.exports = function(environment) {
var ENV = {
modulePrefix: 'dummy',
environment: environment,
baseURL: '/',
locationType: 'auto',
EmberENV: {
FEATURES: {
// Here you can enable experimental features on an ember canary build
// e.g. 'with-controller': true
}
FEATURES: featureFlags,
ENABLE_DS_FILTER: true,

// don't raise on deprecation yet, since there are too many thrown errors;
// this should be addressed in another PR
// RAISE_ON_DEPRECATION: true
},

APP: {
Expand All @@ -19,6 +25,10 @@ module.exports = function(environment) {
}
};

if (environment === 'test-optional-features') {
ENV.EmberENV.ENABLE_OPTIONAL_FEATURES = true;
}

if (environment === 'development') {
// ENV.APP.LOG_RESOLVER = true;
// ENV.APP.LOG_ACTIVE_GENERATION = true;
Expand Down

0 comments on commit de6f7be

Please sign in to comment.