New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ember-cpm

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cpm

Computed Propery Macros for Ember.js

  • 3.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

Ember-CPM

Build Status Ember Observer Score Code Climate Dependency Status devDependency Status Ember Version

Computed Property Macros for Ember

Requirements

Version 2.0+ will only work with Ember 2.0+ Version 3.0+ is only tested in the last 2 LTS.

Installation

Just run ember install ember-cpm

Usage

Just import individual macros from ember-cpm/macros/* or all macros from ember-cpm.

// Import only one macros
import ifNull from "ember-cpm/macros/if-null";
// or alternatively import all the namespace
import EmberCPM from "ember-cpm";

Contributing

To generate a new computed property macros with ember-cli

  • Run ember g macro <dasherized-macro-name>. This will generate a few files
    • ./addon/macros/dasherized-macro-name.js (the macro)
    • ./addon/tests/dummy/unit/macro/dasherized-macro-name-test.js (a test)*
    • and modify ./addon/ember-cpm.js
// import the macro
import camelizedMacroName from './macros/dasherized-macro-name.js'
...

var Macros = {
  ...
  // allows use via EmberCPM.Macros.camelizedMacroName
  camelizedMacroName: camelizedMacroName,
  ...
};

ember d macro <dasherized-macro-name> will do the reverse of these changes

Provided Macros

  • among -- returns true if the original value is among the given literals (testing using ===)
  • encodeURIComponent -- calls encodeURIComponent on the original value
  • encodeURI -- calls encodeURI on the original value
  • firstPresent -- returns the first property with a value, as determined by Ember.isPresent
  • fmt -- pass the original values into a format-string
  • htmlEscape -- escapes the original value with Handlebars.Utils.escapeExpression and wraps the result in a Handlebars.SafeString (since it's now safe)
  • ifNull -- fall back on a default value
  • promise -- wraps the original value in an already-resolved promise
  • safeString -- wraps the original value in a Handlebars.SafeString
  • join -- joins the supplied values together with a provided sepatator
  • quotient -- divides one numeric property or literal by another
  • difference -- subtracts one numeric property or literal from another
  • product -- multiplies numeric properties and literals together
  • sum -- sums numeric properties and literals together
  • conditional -- returns values based on a boolean property (good replacement for ternary operator)
  • computedPromise -- Updates computed property when supplied callback (which must return a promise) is resolved

Composable Computed Property Macros

Unlike Ember's computed property macros, the macros in this addon are composable. That means you define macros inside other macros without defining them in a separate key.

import Ember from 'ember';
import EmberCPM from 'ember-cpm';

const { Macros: { sum, difference, product } } = EmberCPM;

export default Ember.Component.extend({
  num1: 45,
  num2: 3.5,
  num3: 13.4,
  num4: -2,

  total: sum(
    sum('num1', 'num2', 'num3'),
    difference('num3', 'num2'),
    product(difference('num2', 'num1'), 'num4')
  )
});

Keywords

FAQs

Package last updated on 07 Jul 2018

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc