Skip to content

Intelligent list of paths. #31

Open

Description

@rwjblue

By default (e.g. no customized arguments) the codemod should process the following directories:

  • If in an addon (determined by keywords in package.json):
    • addon, addon-test-support, and tests
  • If in an app:
    • app and tests
  • Both addon and app types should process any require('./package)['ember-addon'].paths

The codemod should also allow an explicit path to be specified on the command line. When specified on the command line, the default paths (described above) should not be processed and only the specific path provided in the first arg should be processed.

Activity

  1. rwjblue commented on Jul 31, 2017

    @rwjblue
    MemberAuthor

    @Turbo87 - You 👍 on the general plan laid out above?

  2. Turbo87 commented on Jul 31, 2017

    @Turbo87
    Contributor

    in general I'm 👍

    I'm just not sure what the require() stuff is for 🤔

  3. rwjblue commented on Jul 31, 2017

    @rwjblue
    MemberAuthor

    Haha, I was just too lazy to write it out manually. For the auto-detect bit, this is basically what I'm proposing:

    const ADDON_PATHS = ['addon', 'addon-test-support', 'tests'];
    const APP_PATHS = ['app', 'tests'];
    
    let paths;
    let package = JSON.parse(fs.readFileSync('package.json'));
    if (package.keywords && package.keywords.indexOf('ember-addon') > -1) {
      // addon
      paths = ADDON_PATHS.slice();
    } else {
      // app
      paths = APP_PATHS.slice();
    }
    
    if (package['ember-addon'] && package['ember-addon'].paths) {
      package['ember-addon'].paths).filter(Boolean);
      package['ember-addon'].paths.forEach(inRepoAddonBasePath => {
        ADDON_PATHS.forEach(addonFolderName => {
          let fullPath = path.join(inRepoAddonBasePath, addonFolderName);
          paths.push(fullPath);
        });
      });
    }
  4. Turbo87 commented on Jul 31, 2017

    @Turbo87
    Contributor

    aka. in-repo-addons, right?

  5. rwjblue commented on Jul 31, 2017

    @rwjblue
    MemberAuthor

    c

  6. rwjblue commented on Jul 31, 2017

    @rwjblue
    MemberAuthor

    currently we auto-process all of lib which isn't guaranteed to be an addon at all (e.g. many addons use lib for node-land code also)

  7. cyril-sf commented on Aug 30, 2018

    @cyril-sf
    Contributor

    Is this still needed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions