Contributing to Aurelia UX

I would like to contribute to the Aurelia UX project but find it quite difficult to get started. A small thing that took me some time to find was to use npx ... command to use lerna commands, since now lerna is not installed locally anymore (I did contribute previously with lerna 2.x and a local version of lerna).

Would be great to update the README with npx lerna ... commands to help future people to contribute. I can make a PR for that when I’ll be ready with my local version.

However now I’m stuck with TS errors and I can’t build the code.

Basically, when I try to run npm run build at a component level package, I get the following error:

../../node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts(67,5): error TS1110: Type expected.
[3] ../../node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts(67,5): error TS1110: Type expected.
[4] ../../node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts(67,5): error TS1110: Type expected.

How can I fix this issue and start building the code of Aurelia UX ?

Try using the npm scripts in package.json. See https://github.com/aurelia/aurelia/blob/master/package.json

For example, npm run build will build the repo. npx is not required.

1 Like

I tried to npm run build from a repo (exemple /packages/textarea) but I still get the Typescript error error TS1110: Type expected from aurelia-dependency-injection. I still can’t build the code.

1 Like

Hi all -

Getting the same error when building the excellent slick-grid demo project:

ERROR in /.../aurelia/aurelia-slickgrid-demos/webpack-bs3-demo/node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts
[tsl] ERROR in /.../aurelia/aurelia-slickgrid-demos/webpack-bs3-demo/node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts(67,5)
TS1110: Type expected.

Possibly related to this issue:

Any help appreciated.

Eamonn

1 Like

I confirm that the recent update of aurelia-dependency-injection is the issue. By reverting back the dependency to “@1.4.2” it fixes the issue.

In my case, wanting to work on the textarea package, I ran npm install aurelia-dependency-injection@1.4.2 in the package and then npm run build is working.

I don’t know enough about TS typing to understand the issue in the aurelia-dependency-injection package. Hopefully this will be fixed in the next release.

2 Likes

I’m not having any direct dependency to aurelia-dependency-injection in Aurelia-Slickgrid, so I guess you could try what @ben-girardet wrote

I confirm that the recent update of aurelia-dependency-injection is the issue. By reverting back the dependency to “@1.4.2” it fixes the issue.

Hopefully that works out, let me know if there’s anything I need to do to fix this within Aurelia-Slickgrid, though I think it’s fine in my lib since all my Aurelia-Slickgrid-Demos are working fine, at least last I tried.

1 Like

I’ve been also working on another project that had no direct dependency with aurelia-dependency-injection (but in this case with aurelia-validation). In order to “force” NPM to use the version 1.4.2 of aurelia-dependency-injection I used a npm-shrinkwrap.json file.

1 Like

In the case of my Aurelia-Slickgrid lib, I use the dependency directly from aurelia-framework, I’m not sure what will happen then. I wonder if I should switch all of the @inject to use the import from aurelia-dependency-injection instead?

I never heard of npm-shrinkwrap.json before, guess I should look into that then. @ben-girardet can you provide a quick sample of what that would look like? Would that fix what I wrote in previous paragraph?

Also, is there an open issue in the Aurelia repo to track this injection issue?

1 Like

I’m not an expert and discovered npm-shrinkwrap.json while searching for a solution to this specific problem. I wrote the following in the file and then ran npm install

{
  "dependencies": {
    "aurelia-validation": {
      "requires": {
        "aurelia-dependency-injection": "1.4.2",
      }
    }
  }
}

What it seem to do is to tell NPM to use the version 1.4.2 of aurelia-dependency-injection as dependency for the aurelia-validation dependency of the current project, even if it could use another version by following semver rules.

Once I run NPM install this file get modified (similar to package-lock.json) and from then I don’t know exactly what happens… (as I said, I’m not an expert, posting this in case it could help you out)

2 Likes

Yes: https://github.com/aurelia/dependency-injection/issues/187

2 Likes

I got rid of all the errors with type expected but updating the version of TypeScript to latest 3.6.4 (the aurelia-slickgrid-demos was using an old TS version of 2.7.2 which was causing these issues). It seems that in order to use the latest version of "aurelia-dependency-injection": "^1.5.1" you also need TypeScript 3.x version.

@ben-girardet not sure if your problem is also related, but have you checked which version of TypeScript you’re using?

EDIT

Actually forget that, I just saw you wrote that you use TS 3.6.4 in your GitHup opened issue

1 Like

Great work!
All the slick grid demos work for me now.
Thanks again

2 Likes

For anyone who follows this, the PR is ready at here https://github.com/aurelia/ux/pull/216 and will be merged soo

Cool. I will see if it’s easy enough to implement storybook on top of this.

1 Like