@noodletired/rest-ts-core
Version:
Type-safe rest API definitions to share
46 lines • 2.98 kB
JavaScript
;
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