UNPKG

vue-router-webcache

Version:

Enable vue-router routing for google webcache(and same caches)

61 lines 2.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; exports.__esModule = true; var path_1 = require("path"); var fs_1 = require("fs"); var defu_1 = __importDefault(require("defu")); var lodash_template_1 = __importDefault(require("lodash.template")); var config_1 = require("../config"); var config_2 = require("./config"); var logger = require('consola').withScope('vue-router-webcache'); var defaultOptions = { cacheList: config_1.defaultCacheUrls, replacePush: true, urlGetter: function () { if (!window.__NUXT__) return '/'; var _a = (window.__NUXT__.state.route || {}).fullPath, fullPath = _a === void 0 ? '/' : _a; return fullPath; }, forceVuexRouterSync: false }; var nuxtModule = function (moduleOptions) { var options = (0, defu_1["default"])(this.options.webcache, moduleOptions, defaultOptions); var isAllCachesHasGetters = options.cacheList .every(function (_a) { var getRealUrl = _a.getRealUrl; return getRealUrl; }); var isDefaultUrlGetter = options.urlGetter === defaultOptions.urlGetter; if (!isAllCachesHasGetters && isDefaultUrlGetter) { logger.warn('Not all caches have a "getRealUrl" function, adding "nuxt-vuex-router-sync"'); options.forceVuexRouterSync = true; } if (options.forceVuexRouterSync) { options.urlGetter = defaultOptions.urlGetter; this.requireModule('nuxt-vuex-router-sync'); } var routerFilePath = (0, path_1.resolve)(this.options.srcDir, './router.js'); var needWriteFile = true; if ((0, fs_1.existsSync)(routerFilePath)) { var currentRouterFile = (0, fs_1.readFileSync)(routerFilePath, { encoding: 'utf-8' }); var isGenerated = currentRouterFile.startsWith(config_2.AUTO_UPDATE_FLAG); if (isGenerated) logger.info('Update auto-generated "router.js" file'); else logger.info('Cannot change manually updated "router.js" file'); needWriteFile = isGenerated; } if (needWriteFile) { logger.info("Creating new router configuration in \"" + this.options.srcDir + "\""); var template = (0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, './router.js'), { encoding: 'utf-8' }); var compiler = (0, lodash_template_1["default"])(template); var compiled = compiler({ options: options }); (0, fs_1.writeFileSync)(routerFilePath, config_2.AUTO_UPDATE_FLAG + compiled); } }; exports["default"] = nuxtModule; module.exports.meta = require('../../package.json'); //# sourceMappingURL=index.js.map