Skip to content

Commit

Permalink
Updates on PWA
Browse files Browse the repository at this point in the history
* Dev build working, must check prod
  • Loading branch information
GuilhermeF03 committed Jul 2, 2024
1 parent b62ab5f commit e91ec58
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 12 deletions.
1 change: 1 addition & 0 deletions code/client/dev-dist/registerSW.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

92 changes: 92 additions & 0 deletions code/client/dev-dist/sw.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/**
* Copyright 2018 Google Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

// If the loader is already loaded, just stop.
if (!self.define) {
let registry = {};

// Used for `eval` and `importScripts` where we can't get script URL by other means.
// In both cases, it's safe to use a global var because those functions are synchronous.
let nextDefineUri;

const singleRequire = (uri, parentUri) => {
uri = new URL(uri + ".js", parentUri).href;
return registry[uri] || (

new Promise(resolve => {
if ("document" in self) {
const script = document.createElement("script");
script.src = uri;
script.onload = resolve;
document.head.appendChild(script);
} else {
nextDefineUri = uri;
importScripts(uri);
resolve();
}
})

.then(() => {
let promise = registry[uri];
if (!promise) {
throw new Error(`Module ${uri} didn’t register its module`);
}
return promise;
})
);
};

self.define = (depsNames, factory) => {
const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
if (registry[uri]) {
// Module is already loading or loaded.
return;
}
let exports = {};
const require = depUri => singleRequire(depUri, uri);
const specialDeps = {
module: { uri },
exports,
require
};
registry[uri] = Promise.all(depsNames.map(
depName => specialDeps[depName] || require(depName)
)).then(deps => {
factory(...deps);
return exports;
});
};
}
define(['./workbox-b5f7729d'], (function (workbox) { 'use strict';

self.skipWaiting();
workbox.clientsClaim();

/**
* The precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest.
* See https://goo.gl/S9QRab
*/
workbox.precacheAndRoute([{
"url": "registerSW.js",
"revision": "3ca0b8505b4bec776b69afdba2768812"
}, {
"url": "index.html",
"revision": "0.mhatuu3dq7g"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
allowlist: [/^\/$/]
}));

}));
28 changes: 21 additions & 7 deletions code/client/src/pwa/manifest-config.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
import { ManifestOptions } from 'vite-plugin-pwa';

const manifestConfig: Partial<ManifestOptions> = {
export const manifestConfig: Partial<ManifestOptions> = {
name: 'NoteSpace',
short_name: 'NoteSpace',
description: 'A multiplatform note management and sharing app',
description: 'A multi-platform real-time note-taking app',
start_url: '/',
scope: '.',
display: 'standalone',
background_color: '#ffffff',
theme_color: '#ffffff',
orientation: 'portrait-primary',
icons: [
{
src: '/assets/icon.png',
src: 'pwa-64x64.png',
sizes: '64x64',
type: 'image/png',
},
{
src: 'pwa-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: '/assets/icon.png',
src: 'pwa-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'maskable-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
purpose: 'maskable',
},
],
};

export default manifestConfig;
};
9 changes: 9 additions & 0 deletions code/client/src/pwa/pwa-assets.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { defineConfig, minimal2023Preset as preset } from '@vite-pwa/assets-generator/config';

export default defineConfig({
headLinkOptions: {
preset: '2023',
},
preset,
images: ['public/notespace.png'],
});
10 changes: 5 additions & 5 deletions code/client/src/pwa/pwa-config.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { VitePWAOptions } from 'vite-plugin-pwa';
//import manifestConfig from "./manifest-config";
import {manifestConfig} from "./manifest-config";

const pwaConfig: Partial<VitePWAOptions> = {
registerType: 'autoUpdate',
//manifest: manifestConfig,
//devOptions: {
// enabled: true,
//}
manifest: manifestConfig,
devOptions: {
enabled: true,
}
};
export default pwaConfig;

0 comments on commit e91ec58

Please sign in to comment.