diff --git a/package-lock.json b/package-lock.json index 914937430..72857ab6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1923,6 +1923,14 @@ "url": "0.10.3", "uuid": "3.1.0", "xml2js": "0.4.19" + }, + "dependencies": { + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + } } }, "aws-sign2": { @@ -15303,9 +15311,9 @@ } }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, "validate-npm-package-license": { diff --git a/package.json b/package.json index 6f130dd42..0caec48ba 100644 --- a/package.json +++ b/package.json @@ -71,12 +71,14 @@ "tslint": "^5.11.0", "tslint-config-prettier": "^1.16.0", "typedoc": "^0.13.0", - "typescript": "^3.1.6" + "typescript": "^3.1.6", + "uuid": "^3.3.2" }, "peerDependencies": { "aws-sdk": "^2.286.1", "lodash": "^4.17.10", "reflect-metadata": "^0.1.12", - "rxjs": "^6.0.0" + "rxjs": "^6.0.0", + "uuid": "^3.3.2" } } diff --git a/src/mapper/mapper.ts b/src/mapper/mapper.ts index 42aa66946..ae6fc9192 100644 --- a/src/mapper/mapper.ts +++ b/src/mapper/mapper.ts @@ -1,3 +1,4 @@ +import {v4 as uuidv4} from 'uuid' import { Metadata } from '../decorator/metadata/metadata' import { metadataForClass, metadataForProperty } from '../decorator/metadata/metadata-helper' import { Key, PropertyMetadata } from '../decorator/metadata/property-metadata.model' @@ -16,7 +17,7 @@ import { Binary } from './type/binary.type' import { EnumType } from './type/enum.type' import { NullType } from './type/null.type' import { UndefinedType } from './type/undefined.type' -import { typeOf, typeOfFromDb, uuidv4 } from './util' +import { typeOf, typeOfFromDb } from './util' const mapperForType: Map> = new Map() diff --git a/src/mapper/util.ts b/src/mapper/util.ts index 5f55f262f..fa4da5e0d 100644 --- a/src/mapper/util.ts +++ b/src/mapper/util.ts @@ -251,13 +251,3 @@ export function typeName(type: any): 'Null' | 'Undefined' | string { throw new Error(`was not able to resolve type name for type ${type}`) } - -// FIXME UUID replace with a more bullet proof implementation node uuid module requires crypto, need to figure out how to use it with browser -export function uuidv4() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { - // tslint:disable - let r = (Math.random() * 16) | 0, - v = c == 'x' ? r : (r & 0x3) | 0x8 - return v.toString(16) - }) -}