🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

ember-cli-shims

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cli-shims

The default blueprint for ember-cli addons.

npmnpm
Version
1.0.1
Version published
Weekly downloads
11K
-49.24%
Maintainers
1
Weekly downloads
 
Created
Source

Ember CLI Shims

Greenkeeper badge

NOTE: this repo is frozen until ember's public module interface has been finalized.

About

Ember CLI Shims (ECS) contain all the shims used in Ember CLI.

Note: The ember-data shim has been removed as of v0.1.0. The latest Ember-Data no longer has a bower dependency; ember-cli-shims >= v0.1.0 is only intended for use with Ember-Data v2.3.0 and up.

Usage

Simply import any of the shims as an ES6 module:

import Component from 'ember-component';
import run from 'ember-runloop';
import injectService from 'ember-service/inject';

Some of the shims have named exports (instead of/in addition to a default export):

import { assert, copy } from 'ember-metal/utils';
import { debounce } from 'ember-runloop';
import { isEmpty } from 'ember-utils';

Shims

The app-shims file provides a complete reference of all modules currently supported by this library.

Why?

Historically, Ember has recommended that developers reference core classes & utilities (ie Component, Route, isEmpty) via the root Ember namespace. This leads to the entire Ember module being imported into nearly every file:

import Ember from 'ember';

export default Ember.Component.extend({
  foo: Ember.inject.service(),
  bar: Ember.computed.readOnly('foo.bar')
});

It would be preferable to have different parts of Ember available as separate modules, allowing developers to only import what they need. This is the direction the framework is moving in, but the modules are not yet available. This has led to a common pattern of ES6 destructuring assignment to enable writing future-proof code:

import Ember from 'ember';

const { Component, computed, inject } = Ember;

export default Component.extend({
  foo: inject.service(),
  bar: computed.readOnly('foo.bar');
});

However, this library provides shims to mimic the future modules that Ember may provide, enabling developers to avoid destructuring and instead import the namespaces as modules today.

import Component from 'ember-component';
import computed from 'ember-computed';
import injectService from 'ember-service/inject';

export default Component.extend({
  foo: injectService(),
  bar: computed.readOnly('foo.bar');
});

That way, as true modules become available in the Ember ecosystem, we can merely remove the shims from ECS upstream, requiring little to no refactoring on the part of developers who have opted-in to this pattern early. Ultimately, the goal of this library is to be replaced completely once Ember itself is an npm package/addon and exports its own modules.

License

Ember CLI Shims is MIT Licensed.

Keywords

ember-addon

FAQs

Package last updated on 21 Jan 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts