Sha256: 4ade0a53b00ad7b5be78be818390029848ad3fd28d1468cc3f3cbd547500105b

Contents?: true

Size: 1.12 KB

Versions: 91

Compression:

Stored size: 1.12 KB

Contents

import { URISchemeHandler, URIComponents, URIOptions } from "../uri";
import { URNComponents } from "./urn";
import { SCHEMES } from "../uri";

export interface UUIDComponents extends URNComponents {
	uuid?: string;
}

const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/;

//RFC 4122
const handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {
	scheme : "urn:uuid",

	parse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {
		const uuidComponents = urnComponents as UUIDComponents;
		uuidComponents.uuid = uuidComponents.nss;
		uuidComponents.nss = undefined;

		if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
			uuidComponents.error = uuidComponents.error || "UUID is not valid.";
		}

		return uuidComponents;
	},

	serialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {
		const urnComponents = uuidComponents as URNComponents;
		//normalize UUID
		urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
		return urnComponents;
	},
};

export default handler;

Version data entries

91 entries across 91 versions & 11 rubygems

Version Path
disco_app-0.18.0 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.18.2 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.6 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.5 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.4 node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.16.1 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.15.2 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.3 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.2 node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.18.4 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.18.1 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.14.0 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.1 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-4.3.5 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-5.0.0 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-4.3.4 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-4.3.3 node_modules/uri-js/src/schemes/urn-uuid.ts
trusty-cms-4.3.2 node_modules/uri-js/src/schemes/urn-uuid.ts