ember-cli / babel-plugin-ember-modules-api-polyfill

Polyfill for Ember JS API
MIT License
15 stars 21 forks source link

Handle wildcard imports: import * as something from '@ember/something' #16

Open buschtoens opened 7 years ago

buschtoens commented 7 years ago

https://github.com/babel/ember-cli-babel/issues/170#issue-246272427

The import statement supports importing all named exports into an object.

For example, instead of this

import {
 alias as computedAlias,
 and as computedAnd,
 // ...
} from '@ember/object/computed';
import { decoratedPropertyWithRequiredParams } from '../utils/decorator-macros';

export const alias = decoratedPropertyWithRequiredParams(computedAlias);

you could just do this

import * as computed from '@ember/object/computed';
import { decoratedPropertyWithRequiredParams } from '../utils/decorator-macros';

export const alias = decoratedPropertyWithRequiredParams(computed.alias);

But apparently, the latter does not work. :slightly_frowning_face:

Could not find module `@ember/object/computed` imported from `ember-decorators/object/computed`

https://github.com/babel/ember-cli-babel/issues/170#issuecomment-318635180

We would need to handle wildcard import in babel-plugin-ember-modules-API-polyfill. This seems reasonable to me though. We would need to check if the specified module contains only exports from a single namespace or multiple. If multiple namespaces we would have to build up the intermediate POJO that would be used.

blimmer commented 6 years ago

:+1: - found this today because of this:

Using `import * as [object Object] from 'jquery'` is not supported.