Skip to content

Commit

Permalink
unwinds 'features' (isEnabled) but hits a cycle
Browse files Browse the repository at this point in the history
  • Loading branch information
runspired authored and stefanpenner committed Apr 24, 2017
1 parent e56866a commit 9c5557c
Show file tree
Hide file tree
Showing 26 changed files with 84 additions and 74 deletions.
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ production builds automatically.

Give it a default of `null` so it will not be used in production builds.

2. Import `isEnabled` from `ember-data/-private/features`, wrapping any new
2. Import `isEnabled` from `ember-data/-private`, wrapping any new
code with your feature:

```js
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
if (isEnabled('ds-mynew-feature')) {
// ... any additional code
Expand All @@ -99,7 +99,7 @@ production builds automatically.
feature flag.

```js
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
if (isEnabled('ds-mynew-feature')) {
test('test for new feature', function(assert) {
Expand Down
36 changes: 34 additions & 2 deletions addon/-private/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,45 @@ export { default as Model } from './system/model/model';
export { default as Errors } from './system/model/errors';
export { default as Store } from './system/store';
export { default as DS } from './core';
export { default as belongsTo } from './system/relationships/belongs-to';
export { default as hasMany } from './system/relationships/has-many';
export { default as BuildURLMixin } from './adapters/build-url-mixin';
export { default as Snapshot } from './system/snapshot';

// should be moved into public
// maybe public ?
export { default as normalizeModelName } from './system/normalize-model-name';
export { modelHasAttributeOrRelationshipNamedType } from './utils';
export { default as coerceId } from './system/coerce-id';
export { default as parseResponseHeaders } from './utils/parse-response-headers';

// should be moved into public ?
export { default as NumberTransform } from './transforms/number';
export { default as DateTransform } from './transforms/date';
export { default as StringTransform } from './transforms/string';
export { default as BooleanTransform } from './transforms/boolean';

// should be private
// should be private ?
export { default as RootState } from './system/model/states';
export { default as global } from './global';
export { default as isEnabled } from './features';
export { default as InternalModel } from './system/model/internal-model';

export {
PromiseArray,
PromiseObject,
PromiseManyArray
} from './system/promise-proxies';

export {
RecordArray,
FilteredRecordArray,
AdapterPopulatedRecordArray
} from './system/record-arrays';

export { default as ManyArray } from './system/many-array';
export { default as RecordArrayManager } from './system/record-array-manager';
export { default as initializeStoreService } from './instance-initializers/initialize-store-service';
export { default as Relationship } from './system/relationships/state/relationship';

// Should be a different Repo ?
export { default as DebugAdapter } from './system/debug/debug-adapter';
2 changes: 1 addition & 1 deletion addon/-private/system/debug/debug-adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
@module ember-data
*/
import Ember from 'ember';
import Model from "../../../model";
import Model from '../model/model';
const capitalize = Ember.String.capitalize;
const underscore = Ember.String.underscore;
const { assert, get } = Ember;
Expand Down
2 changes: 1 addition & 1 deletion addon/adapters/json-api.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import Ember from 'ember';
import RESTAdapter from "./rest";
import isEnabled from '../-private/features';
import { isEnabled } from '../-private';
import { instrument, deprecate } from 'ember-data/-debug';

/**
Expand Down
4 changes: 1 addition & 3 deletions addon/adapters/rest.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ import {
TimeoutError,
AbortError
} from './errors';
import BuildURLMixin from "../-private/adapters/build-url-mixin";
import isEnabled from '../-private/features';
import { parseResponseHeaders, BuildURLMixin, isEnabled } from '../-private';
import { instrument, runInDebug, warn, deprecate } from 'ember-data/-debug';
import parseResponseHeaders from '../-private/utils/parse-response-headers';

const {
MapWithDefault,
Expand Down
52 changes: 24 additions & 28 deletions addon/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,38 @@ if (Ember.VERSION.match(/^1\.([0-9]|1[0-2])\./)) {
". Please upgrade your version of Ember, then upgrade Ember Data.");
}

import normalizeModelName from "./-private/system/normalize-model-name";
import Snapshot from "./-private/system/snapshot";
import InternalModel from "./-private/system/model/internal-model";
import DebugAdapter from './-private/system/debug/debug-adapter';
import isEnabled from "./-private/features";

import {
PromiseArray,
PromiseObject,
PromiseManyArray
} from "./-private/system/promise-proxies";

import {
Snapshot,
DebugAdapter,
DS,
BuildURLMixin,
belongsTo,
hasMany,
global,
isEnabled,
Errors,
RootState,
Model,
Store,
normalizeModelName,
DateTransform,
NumberTransform,
StringTransform,
BooleanTransform
BooleanTransform,
PromiseArray,
PromiseObject,
PromiseManyArray,
RecordArray,
FilteredRecordArray,
AdapterPopulatedRecordArray,
ManyArray,
RecordArrayManager,
Relationship,
initializeStoreService
} from './-private';

import Adapter from "./adapter";
import Serializer from "./serializer";

import {
AdapterError,
InvalidError,
Expand All @@ -56,28 +60,20 @@ import {
} from "./adapters/errors";

import "ember-inflector";
import setupContainer from "./setup-container";

import Adapter from "./adapter";
import JSONAPIAdapter from './adapters/json-api';
import RESTAdapter from './adapters/rest';

import Serializer from "./serializer";
import JSONAPISerializer from './serializers/json-api';
import JSONSerializer from './serializers/json';
import RESTSerializer from './serializers/rest';
import EmbeddedRecordsMixin from "./serializers/embedded-records-mixin";

import {
RecordArray,
FilteredRecordArray,
AdapterPopulatedRecordArray
} from "./-private/system/record-arrays";
import ManyArray from "./-private/system/many-array";
import RecordArrayManager from "./-private/system/record-array-manager";
import BuildURLMixin from "./-private/adapters/build-url-mixin";
import EmbeddedRecordsMixin from "./serializers/embedded-records-mixin";

import Transform from './transform';
import { hasMany, belongsTo } from "./relationships";
import setupContainer from "./setup-container";
import initializeStoreService from './-private/instance-initializers/initialize-store-service';

import Relationship from "./-private/system/relationships/state/relationship";
import attr from './attr';

DS.Store = Store;
Expand Down
10 changes: 1 addition & 9 deletions addon/relationships.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
/**
@module ember-data
*/

import belongsTo from "./-private/system/relationships/belongs-to";
import hasMany from "./-private/system/relationships/has-many";

export {
belongsTo,
hasMany
};

export { belongsTo, hasMany } from './-private';
3 changes: 1 addition & 2 deletions addon/serializers/json-api.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import Ember from 'ember';
import { pluralize, singularize } from 'ember-inflector';
import { assert, deprecate, runInDebug, warn } from 'ember-data/-debug';
import JSONSerializer from './json';
import normalizeModelName from '../-private/system/normalize-model-name';
import isEnabled from '../-private/features';
import { normalizeModelName, isEnabled } from '../-private';

const dasherize = Ember.String.dasherize;

Expand Down
5 changes: 1 addition & 4 deletions addon/serializers/json.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import Ember from 'ember';
import { assert, deprecate, warn } from 'ember-data/-debug';
import Serializer from "../serializer";
import coerceId from "../-private/system/coerce-id";
import normalizeModelName from "../-private/system/normalize-model-name";
import { modelHasAttributeOrRelationshipNamedType } from "../-private/utils";
import isEnabled from '../-private/features';
import { coerceId, modelHasAttributeOrRelationshipNamedType, normalizeModelName, isEnabled } from '../-private';

import {
getOwner
Expand Down
5 changes: 1 addition & 4 deletions addon/serializers/rest.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@ import Ember from 'ember';
import { singularize } from "ember-inflector";
import { assert, deprecate, runInDebug, warn } from 'ember-data/-debug';
import JSONSerializer from "../serializers/json";
import normalizeModelName from "../-private/system/normalize-model-name";
import coerceId from "../-private/system/coerce-id";
import { modelHasAttributeOrRelationshipNamedType } from "../-private/utils";
import isEnabled from '../-private/features';
import { coerceId, modelHasAttributeOrRelationshipNamedType, normalizeModelName, isEnabled } from '../-private';

let camelize = Ember.String.camelize;

Expand Down
2 changes: 1 addition & 1 deletion tests/integration/adapter/build-url-mixin-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

import {module, test} from 'qunit';

Expand Down
2 changes: 1 addition & 1 deletion tests/integration/adapter/json-api-adapter-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {module, test} from 'qunit';
import testInDebug from 'dummy/tests/helpers/test-in-debug';

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

var env, store, adapter;
var passedUrl, passedVerb, passedHash;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/adapter/rest-adapter-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {module, test} from 'qunit';
import Pretender from "pretender";

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

var env, store, adapter, Post, Comment, SuperUser;
var passedUrl, passedVerb, passedHash;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/references/belongs-to-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import DS from 'ember-data';
import Ember from 'ember';
import setupStore from 'dummy/tests/helpers/store';
import testInDebug from 'dummy/tests/helpers/test-in-debug';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
import { module, test } from 'qunit';

var get = Ember.get;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/references/has-many-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import DS from 'ember-data';
import Ember from 'ember';
import setupStore from 'dummy/tests/helpers/store';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
import testInDebug from 'dummy/tests/helpers/test-in-debug';
import { module, test } from 'qunit';

Expand Down
2 changes: 1 addition & 1 deletion tests/integration/serializers/json-api-serializer-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Ember from 'ember';
import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';

import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

import DS from 'ember-data';

Expand Down
2 changes: 1 addition & 1 deletion tests/integration/serializers/json-serializer-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import setupStore from 'dummy/tests/helpers/store';
import Ember from 'ember';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';
Expand Down
3 changes: 1 addition & 2 deletions tests/integration/serializers/rest-serializer-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import Ember from 'ember';

import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';

import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

import DS from 'ember-data';

Expand Down
2 changes: 1 addition & 1 deletion tests/integration/store-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

var store, env;

Expand Down
2 changes: 1 addition & 1 deletion tests/unit/adapter-errors-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Ember from 'ember';

import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';

Expand Down
2 changes: 1 addition & 1 deletion tests/unit/adapters/rest-adapter/ajax-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Ember from 'ember';
import {module, test} from 'qunit';

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

var Person, Place, store, adapter, env;
const { run } = Ember;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Ember from 'ember';
import {module, test} from 'qunit';

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

let GroupsAdapter, store, requests;
let maxLength;
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/model-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Ember from 'ember';
import testInDebug from 'dummy/tests/helpers/test-in-debug';
import {module, test} from 'qunit';
import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';
import { parseDate } from "ember-data/-private/ext/date";

const { get, set, run } = Ember;
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/model/rollback-attributes-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Ember from 'ember';
import {module, test} from 'qunit';

import DS from 'ember-data';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

let env, store, Person;
const { run } = Ember;
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/store/push-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {module, test} from 'qunit';

import DS from 'ember-data';

import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

let env, store, Person, PhoneNumber, Post;
const { attr, hasMany, belongsTo } = DS;
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/store/serialize-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import attr from 'ember-data/attr';
import Model from 'ember-data/model';
import { createStore } from 'dummy/tests/helpers/store';
import Ember from 'ember';
import isEnabled from 'ember-data/-private/features';
import { isEnabled } from 'ember-data/-private';

const { run } = Ember;

Expand Down

0 comments on commit 9c5557c

Please sign in to comment.