![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@catchfashion/url-catalog-generator
Advanced tools
generates Typescript URL schemas that parse / serialize / support react-router.
generates Typescript URL schemas that parse / serialize / support react-router.
Modern App / Web requires singular url schema
such as https://www.catchfashion.com/category/abcdef and catch://category/abcdef
for this purpose, url-catalog-generator suggest centralized way of managing url schema.
which could be used for
(schema.json)
{
"name": "CATCH",
"urls": [
{
"name": "Home",
"description": "Home page",
"pathTemplate": "/:gender",
"params": {
"path": { "gender": { "type": "string", "enum": ["men", "women"] } }
}
},
{
"name": "Category",
"description": "Category page",
"pathTemplate": "/category/:categoryId",
"params": {
"path": { "categoryId": { "type": "string" } }
}
},
]
}
run
npm install @catchfashion/url-catalog-generator
url-catalog schema.json ./src
This would automatically generates below files
(urls/Category.ts)
import { URLSchema } from "url-catalog-generator";
type QueryParams = {};
type PathParams = {
gender: "men" | "women", categoryId: string
};
type AllParams = QueryParams & PathParams;
export class Category {
public static schema = new URLSchema<QueryParams, PathParams>({
name: "Category",
description: "category main show page",
pathTemplate: "/:gender/category/:categoryId",
params: {"path":{"gender":{"type":"string","enum":["men","women"]},"categoryId":{"type":"string"}}},
});
public static parse(path: string) {
const params = this.schema.parse(path);
return params && new this(params);
}
public static serialize(params: AllParams) {
return new this(params).toString();
}
constructor(public readonly params: AllParams) {}
public toString() {
return Category.schema.serialize(this.params);
}
}
(urls/Home.ts)
import { URLSchema } from "url-catalog-generator";
type QueryParams = {};
type PathParams = {
gender: "men" | "women"
};
type AllParams = QueryParams & PathParams;
export class Home {
public static schema = new URLSchema<QueryParams, PathParams>({
name: "Home",
description: "Home page",
pathTemplate: "/:gender",
params: {"path":{"gender":{"type":"string","enum":["men","women"]}}},
});
public static parse(path: string) {
const params = this.schema.parse(path);
return params && new this(params);
}
public static serialize(params: AllParams) {
return new this(params).toString();
}
constructor(public readonly params: AllParams) {}
public toString() {
return Home.schema.serialize(this.params);
}
}
import { URLs } from "./urls";
const url = "some string';
function parseURL(url: string) {
for (const schema of URLs) {
let model = schema.parse(url);
if (model) {
return model;
}
}
}
const parsed = parseURL("/women");
if (parsed instanceof URLs.Home) {
const gender = parsed.gender; // "men" / "women";
console.log("its home!");
} else if (parse instanceof URLs.CategoryShow) {
const categoryId = parsed.categoryId; //
console.log("it's category with id : ", categoryId);
}
import { URLs } from "./urls";
new URLs.Home({ gender: "women" }).toString(); // "/women";
URLs.Home.serialize({ gender: "women" }); // "/women";
import { URLs } from "./urls";
URLs.Home.schema.toPathToRegexp() === "/:gender(women|men)";
FAQs
generates Typescript URL schemas that parse / serialize / support react-router.
The npm package @catchfashion/url-catalog-generator receives a total of 3 weekly downloads. As such, @catchfashion/url-catalog-generator popularity was classified as not popular.
We found that @catchfashion/url-catalog-generator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.