mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 17:52:32 +00:00
backport of commit 16e9c146a6 (#19442)
Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
This commit is contained in:
committed by
GitHub
parent
9f545bdc45
commit
90d3dc641f
3
changelog/19428.txt
Normal file
3
changelog/19428.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
ui: Fixes crypto.randomUUID error in unsecure contexts from third party ember-data library
|
||||
```
|
||||
26
ui/app/initializers/ember-data-identifiers.js
Normal file
26
ui/app/initializers/ember-data-identifiers.js
Normal file
@@ -0,0 +1,26 @@
|
||||
import { setIdentifierGenerationMethod } from '@ember-data/store';
|
||||
import { dasherize } from '@ember/string';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
export function initialize() {
|
||||
// see this GH issue for more information https://github.com/emberjs/data/issues/8106
|
||||
// Ember Data uses uuidv4 library to generate ids which relies on the crypto API which is no available in unsecure contexts
|
||||
// the suggested polyfill was added in 4.6.2 so until we upgrade we need to define our own id generation method
|
||||
// https://api.emberjs.com/ember-data/4.5/classes/IdentifierCache/methods/getOrCreateRecordIdentifier?anchor=getOrCreateRecordIdentifier
|
||||
// the uuid library was brought in to replace other usages of crypto in the app so it is safe to use in unsecure contexts
|
||||
// adapted from defaultGenerationMethod -- https://github.com/emberjs/data/blob/v4.5.0/packages/store/addon/-private/identifier-cache.ts#LL82-L94C2
|
||||
setIdentifierGenerationMethod((data) => {
|
||||
if (data.lid) {
|
||||
return data.lid;
|
||||
}
|
||||
if (data.id) {
|
||||
return `@lid:${dasherize(data.type)}-${data.id}`;
|
||||
}
|
||||
return uuidv4();
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
name: 'ember-data-identifiers',
|
||||
initialize,
|
||||
};
|
||||
Reference in New Issue
Block a user