New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

nuxt-typed-router

Package Overview
Dependencies
Maintainers
1
Versions
216
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nuxt-typed-router - npm Package Compare versions

Comparing version 0.2.7 to 0.2.8

lib/templates/plugin.js

166

lib/module.js

@@ -33,86 +33,98 @@ "use strict";

const { filePath = `${this.options.srcDir}/__routes.js`, routesObjectName = 'routerPagesNames', stripAtFromName = false, } = { ...this.options.typedRouter, ...moduleOptions };
this.nuxt.hook('build:extendRoutes', async (routes) => {
this.addPlugin({
src: path_1.default.resolve(__dirname, './templates/plugin.js'),
fileName: 'nuxt-typed-router/plugin.js',
});
this.nuxt.hook('build:extendRoutes', async (existingRoutes) => {
try {
this.extendRoutes(async (existingRoutes) => {
let formatedRoutes;
const recursiveMatch = (route, parent) => {
var _a;
if (route.path && route.path.startsWith('@') && !!parent) {
route.path = route.path.split('@')[1];
if (stripAtFromName && route.name) {
const [left, right] = (_a = route.name) === null || _a === void 0 ? void 0 : _a.split('@');
route.name = `${left}${right}`;
let formatedRoutes = [];
const recursiveMatch = (route, parent) => {
var _a;
if (route.path && route.path.startsWith('@') && !!parent) {
route.path = route.path.split('@')[1];
if (stripAtFromName && route.name) {
const [left, right] = (_a = route.name) === null || _a === void 0 ? void 0 : _a.split('@');
route.name = `${left}${right}`;
}
const parentsChildren = parent.children;
if (parentsChildren) {
let defaultName = null;
if (route.name) {
defaultName = route.name;
}
const parentsChildren = parent.children;
if (parentsChildren) {
let defaultName = null;
if (route.name) {
defaultName = route.name;
else if (route.children) {
const child = route.children.find((f) => f.path === '');
if (child) {
defaultName = child.name;
}
else if (route.children) {
const child = route.children.find((f) => f.path === '');
if (child) {
defaultName = child.name;
}
}
else {
defaultName = null;
}
parentsChildren.push({
path: '',
name: `${parent.name}-index`,
redirect: {
...(defaultName && { name: defaultName }),
...(!defaultName && { path: route.path }),
},
});
}
else {
defaultName = null;
}
parentsChildren.push({
path: '',
name: `${parent.name}-index`,
redirect: {
...(defaultName && { name: defaultName }),
...(!defaultName && { path: route.path }),
},
});
}
if (route.children) {
route.children.forEach((child) => recursiveMatch(child, route));
}
};
existingRoutes.map((route) => recursiveMatch(route));
formatedRoutes = existingRoutes;
let routesObject = '{';
const recursiveTypedRoutes = (route, level) => {
const routeName = route.name;
if (route.children) {
const [parentName, parentName2] = route.path.split('/');
routesObject += `${lodash_1.camelCase(parentName || parentName2 || 'index')}:{`;
route.children.map((r) => recursiveTypedRoutes(r, level + 1));
routesObject += '},';
}
else if (routeName) {
let splitted = routeName.split('-');
splitted = splitted.slice(level, splitted.length);
routesObject += `'${lodash_1.camelCase(splitted.join('-')) || 'index'}': '${routeName}',`;
}
};
formatedRoutes.map((r) => recursiveTypedRoutes(r, 0));
routesObject += '}';
const template = `export const ${routesObjectName} = ${routesObject};`;
const templateForLocal = `export default ${routesObject};`;
try {
let prettierFoundOptions = await prettier.resolveConfig(process.cwd());
if (!prettierFoundOptions) {
prettierFoundOptions = require('../.prettierrc');
}
const formatedModelsFile = prettier.format(template, {
...prettierFoundOptions,
parser: 'typescript',
});
const savePath = path_1.default.resolve(process.cwd(), filePath);
await fs_1.default.writeFileSync(savePath, formatedModelsFile);
await fs_1.default.writeFileSync(path_1.default.resolve(__dirname, '../types/generated.js'), templateForLocal);
console.log(log_symbols_1.default.success, `Route definition file generated at ${chalk_1.default.blue(savePath)}`);
this.addPlugin({
src: path_1.default.resolve(__dirname, './templates/nuxt-typed-router.js'),
});
}
catch (e) {
console.error(chalk_1.default.red('Error while saving route definitions file'), '\n' + e);
if (route.children) {
route.children.forEach((child) => recursiveMatch(child, route));
}
return formatedRoutes;
});
};
existingRoutes.map((route) => recursiveMatch(route));
formatedRoutes = existingRoutes;
let routesObjectString = '{';
let routeObjectJs = {};
const recursiveTypedRoutes = (route, level, routeObject) => {
const routeName = route.name;
if (route.children) {
const [parentName, parentName2] = route.path.split('/');
const nameKey = lodash_1.camelCase(parentName || parentName2 || 'index');
routesObjectString += `${nameKey}:{`;
routeObject[nameKey] = {};
route.children.map((r) => recursiveTypedRoutes(r, level + 1, routeObject[nameKey]));
routesObjectString += '},';
}
else if (routeName) {
let splitted = routeName.split('-');
splitted = splitted.slice(level, splitted.length);
const keyName = lodash_1.camelCase(splitted.join('-')) || 'index';
routesObjectString += `'${keyName}': '${routeName}',`;
routeObject[keyName] = routeName;
}
};
formatedRoutes.map((r) => recursiveTypedRoutes(r, 0, routeObjectJs));
routesObjectString += '}';
const templateRoutes = `export const ${routesObjectName} = ${routesObjectString};`;
const templateForLocal = `export default ${routesObjectString};`;
try {
let prettierFoundOptions = await prettier.resolveConfig(process.cwd());
if (!prettierFoundOptions) {
prettierFoundOptions = require('../.prettierrc');
}
const formatedModelsFile = prettier.format(templateRoutes, {
...prettierFoundOptions,
parser: 'typescript',
});
const savePath = path_1.default.resolve(process.cwd(), filePath);
await fs_1.default.writeFileSync(savePath, formatedModelsFile);
console.log(log_symbols_1.default.success, `Route definition file generated at ${chalk_1.default.blue(savePath)}`);
await fs_1.default.writeFileSync(path_1.default.resolve(__dirname, '../types/generated.ts'), templateForLocal);
await fs_1.default.writeFileSync(path_1.default.resolve(__dirname, './templates/generated.js'), templateForLocal);
this.addTemplate({
src: path_1.default.resolve(__dirname, './templates/generated.js'),
fileName: 'nuxt-typed-router/generated.js',
});
console.log(log_symbols_1.default.success, `${chalk_1.default.cyan('$routeNames')} updated ${chalk_1.default.blue(savePath)}`);
this.extendRoutes(async () => {
return formatedRoutes;
});
}
catch (e) {
console.error(chalk_1.default.red('Error while saving route definitions file'), '\n' + e);
}
}

@@ -119,0 +131,0 @@ catch (e) {

{
"name": "nuxt-typed-router",
"version": "0.2.7",
"version": "0.2.8",
"description": "Provide autocompletion for pages route names generated by Nuxt router",
"main": "lib/module.js",
"author": "Victor Garcia <victorgarciaparis13@gmail.com>",
"license": "MIT",
"keywords": [

@@ -18,3 +16,5 @@ "nuxt typed router",

"dev": "tsc -p ./tsconfig.json --pretty --watch",
"build": "tsc -p ./tsconfig.json --pretty",
"build": "rimraf lib && rimraf types && tsc -p ./tsconfig.json --pretty",
"postbuild": "yarn run copy-files",
"copy-files": "copyfiles -u 1 ./src/**/*.js ./lib",
"prepublish": "yarn build"

@@ -54,2 +54,4 @@ },

"@types/prettier": "^2.1.5",
"copyfiles": "^2.4.0",
"rimraf": "^3.0.2",
"typescript": "^4.1.2",

@@ -56,0 +58,0 @@ "vue-router": "^3.4.9"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc