UNPKG

@noodletired/rest-ts-core

Version:

Type-safe rest API definitions to share

46 lines 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildPathnameFromParams = exports.buildGenericPathname = void 0; /** * Creates a string representing the generic path for the given endpoint. * * Path parameters are prefixed with a colon ':'. * * For instance, for an endpoint defined with: "GET `/pets/${type}/${name}`", * this method returns "`/pets/:type/:name`". * * @param def The endpoint definition whose path to get */ function buildGenericPathname(def) { var pathBuilder = def.path[0]; if (isNotUndefined(def.params)) { for (var i = 0; i < def.params.length; i++) { pathBuilder += ':' + def.params[i] + def.path[i + 1]; } } return pathBuilder; } exports.buildGenericPathname = buildGenericPathname; /** * Builds the pathname given an endpoint definition and some path parameters. * * For instance, `buildPathnameFromParams(GET '/pets/${type}/${name}', {type: "cat", name: "linus"})` * returns: "/pets/cat/linus". * * @param def The definition whose pathname to build * @param params The path parameters to inject */ function buildPathnameFromParams(def, params) { var pathBuilder = def.path[0]; if (isNotUndefined(def.params) && isNotUndefined(params)) { for (var i = 0; i < def.params.length; i++) { pathBuilder += params[def.params[i]] + def.path[i + 1]; } } return pathBuilder; } exports.buildPathnameFromParams = buildPathnameFromParams; function isNotUndefined(x) { return typeof x !== 'undefined'; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcml2YXRlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsR0FBdUI7SUFDeEQsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFHLENBQUMsRUFBRSxFQUFFO1lBQzFDLFdBQVcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RDtLQUNKO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQVJELG9EQVFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBK0IsR0FBTSxFQUFFLE1BQTJDO0lBQ3JILElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEQ7S0FDSjtJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUM7QUFSRCwwREFRQztBQUdELFNBQVMsY0FBYyxDQUFJLENBQUk7SUFDM0IsT0FBTyxPQUFPLENBQUMsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyJ9