Skip to content

Commit 1514844

Browse files
authored
Merge pull request #968 from ember-learn/kg-support-prerelease
2 parents 3e95a9c + e2bbe58 commit 1514844

6 files changed

Lines changed: 3536 additions & 3687 deletions

File tree

app/adapters/application.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ export default class Application extends JSONAPIAdapter {
4343
let projectName = this.currentProject;
4444

4545
if (['namespace', 'class', 'module'].indexOf(modelName) > -1) {
46-
let [version] = id.replace(`${projectName}-`, '').split('-');
46+
let [version] =
47+
id
48+
.replace(`${projectName}-`, '')
49+
.match(/^(\d+\.\d+\.\d+(?:-[a-z]+\.\d+)?)/i) || [];
4750
let revId = this.metaStore.getRevId(projectName, version, modelName, id);
4851

4952
let modelNameToUse = modelName;

app/controllers/project-version.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,20 @@ export default class ProjectVersionController extends Controller {
7171
}
7272

7373
getRelationshipIDs(relationship) {
74-
// eslint-disable-next-line
75-
const splitPoint = 2 + this.get('model.project.id').split('-').length - 1;
74+
// eslint-disable-next-line ember/classic-decorator-no-classic-methods
75+
const projectId = this.get('model.project.id');
7676
const classes = this.model.hasMany(relationship);
7777
const sorted = A(classes.ids()).sort();
78-
//ids come in as ember-2.16.0-@ember/object/promise-proxy-mixin
79-
//so we take the string after the 2nd '-'
78+
//ids come in as ember-2.16.0-@ember/object/promise-proxy-mixin or ember-4.12.0-alpha.23-@ember/object/promise-proxy-mixin
79+
//so we remove the project name and version (including pre-release) to get the class name
8080
return A(sorted)
8181
.toArray()
82-
.map((id) => id.split('-').slice(splitPoint).join('-'));
82+
.map((id) => {
83+
// Remove project name prefix
84+
const withoutProject = id.replace(`${projectId}-`, '');
85+
// Remove version (e.g., 2.16.0 or 4.12.0-alpha.23) and the following dash
86+
return withoutProject.replace(/^\d+\.\d+\.\d+(?:-[a-z]+\.\d+)?-/i, '');
87+
});
8388
}
8489

8590
@computed('showPrivateClasses', 'classesIDs', 'publicClassesIDs')

app/utils/get-compact-version.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
export default function getCompactVersion(fullVersion) {
2+
if (fullVersion.includes('-')) {
3+
return fullVersion;
4+
}
25
return fullVersion.split('.').slice(0, 2).join('.');
36
}

package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,5 @@
171171
"paths": [
172172
"lib/api-docs-data"
173173
]
174-
},
175-
"pnpm": {
176-
"overrides": {
177-
"node-sass": "^9.0.0"
178-
}
179174
}
180175
}

0 commit comments

Comments
 (0)