chore: organize pnpm workspaces

This commit is contained in:
ayo 2026-04-03 14:13:11 +02:00
parent 45507df720
commit dab366496e
10 changed files with 141 additions and 23 deletions

View file

@ -9,7 +9,8 @@
<title>Play Minesweeper online for FREE!</title>
<link rel="shortcut icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="./main.css" >
<link rel="stylesheet" href="./main.css" />
<link rel="stylesheet" href="../utils/loading/loading.css" />
</head>
<body>
<div id="body-wrapper">

View file

@ -1,5 +1,7 @@
import mnswpr from '../lib/mnswpr.js'
import * as pkg from '../package.json'
import mnswpr from '@ayo-run/mnswpr/mnswpr.js'
import '@ayo-run/mnswpr/mnswpr.css'
import * as pkg from '@ayo-run/mnswpr/package.json'
import { LoadingService } from '../utils/'
const version = import.meta.env.MODE === 'development'
? 'dev'
@ -9,4 +11,13 @@ const game = new mnswpr('app', version, {
levelChanged: () => console.log('[hook]: level reset'),
gameDone: (game) => console.log('[hook]: game done', game)
})
game.initialize()
game.initialize()
const loadingService = new LoadingService()
const loadingWrapper = document.createElement('div')
loadingWrapper.id = 'loading-wrapper'
loadingService.addLoading(loadingWrapper)
const appElement = document.getElementById('app')
appElement.append(loadingWrapper)

11
app/package.json Normal file
View file

@ -0,0 +1,11 @@
{
"name": "app",
"version": "0.0.1",
"description": "the mnswpr.com web app",
"private": true,
"main": "main.js",
"devDependencies": {
"@ayo-run/mnswpr": "workspace:*"
},
"author": "Ayo Ayco"
}

28
lib/package.json Normal file
View file

@ -0,0 +1,28 @@
{
"name": "@ayo-run/mnswpr",
"version": "0.4.26",
"description": "Classic Minesweeper browser game",
"author": "Ayo",
"type": "module",
"repository": {
"type": "git",
"url": "https://github.com/ayo-run/mnswpr"
},
"main": "mnswpr.js",
"exports": {
".": {
"default": "./dist/mnswpr.js"
},
"./dist/*": {
"default": "./dist/*"
},
"./*": {
"default": "./*"
}
},
"files": [
"./*",
"./dist"
],
"license": "BSD-2-Clause"
}

View file

@ -1,14 +1,14 @@
{
"name": "@ayo-run/mnswpr",
"version": "0.4.26",
"name": "monorepo",
"version": "0.0.1",
"private": true,
"description": "Classic Minesweeper browser game",
"author": "Ayo",
"author": "Ayo Ayco",
"type": "module",
"repository": {
"type": "git",
"url": "https://github.com/ayo-run/mnswpr"
},
"main": "dist/mnswpr.js",
"scripts": {
"test": "echo \"Warn: no test specified\"",
"dev": "vite app",
@ -23,20 +23,6 @@
"lint": "eslint .",
"lint:fix": "eslint . --fix"
},
"exports": {
".": {
"default": "./lib/dist/mnswpr.js"
},
"./*": {
"default":"./lib/dist/*"
}
},
"files": [
"lib/dist",
"README.md",
"LICENSE"
],
"license": "BSD-2-Clause",
"devDependencies": {
"@eslint/css": "^1.1.0",
"@eslint/js": "^10.0.1",
@ -47,5 +33,6 @@
"husky": "^9.1.7",
"simple-git": "^3.33.0",
"vite": "^8.0.3"
}
},
"packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319"
}

View file

@ -36,6 +36,14 @@ importers:
specifier: ^8.0.3
version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(jiti@2.6.1)(yaml@2.8.3)
app:
devDependencies:
'@ayo-run/mnswpr':
specifier: workspace:*
version: link:../lib
lib: {}
packages:
'@emnapi/core@1.9.2':

3
pnpm-workspace.yaml Normal file
View file

@ -0,0 +1,3 @@
packages:
- "lib"
- "app"

View file

@ -1,4 +1,5 @@
export * from './logger/logger.js'
export * from './storage/storage.js'
export * from './timer/timer.js'
export * from './loading/loading.js'

55
utils/loading/loading.css Normal file
View file

@ -0,0 +1,55 @@
.lds-ellipsis {
display: inline-block;
position: relative;
width: 80px;
height: 80px;
}
.lds-ellipsis div {
position: absolute;
top: 33px;
width: 13px;
height: 13px;
border-radius: 50%;
background: #fff;
animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div:nth-child(1) {
left: 8px;
animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
left: 8px;
animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
left: 32px;
animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
left: 56px;
animation: lds-ellipsis3 0.6s infinite;
}
@keyframes lds-ellipsis1 {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}
@keyframes lds-ellipsis3 {
0% {
transform: scale(1);
}
100% {
transform: scale(0);
}
}
@keyframes lds-ellipsis2 {
0% {
transform: translate(0, 0);
}
100% {
transform: translate(24px, 0);
}
}

13
utils/loading/loading.js Normal file
View file

@ -0,0 +1,13 @@
/**
* import styles for vite bundling
*/
import './loading.css'
export class LoadingService {
addLoading(element) {
element.innerHTML = '<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>'
}
removeLoading(element) {
element.innerHTML = ''
}
}