Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
b01b7d23df | |||
45c4472c53 | |||
337bee3272 | |||
709a67fe82 | |||
37082bd8f4 | |||
2c8623ab58 | |||
126fb5449b | |||
8a0095f90a | |||
704a3d1948 | |||
0538ed44af | |||
3fa8b0ca3b | |||
10af586f28 | |||
230e217368 | |||
f5d6ec81ff |
141
.gitlab-ci.yml
141
.gitlab-ci.yml
@ -1,141 +0,0 @@
|
|||||||
# gitzone ci_default
|
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
|
||||||
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- .npmci_cache/
|
|
||||||
key: '$CI_BUILD_STAGE'
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- security
|
|
||||||
- test
|
|
||||||
- release
|
|
||||||
- metadata
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- npm install -g @shipzone/npmci
|
|
||||||
|
|
||||||
# ====================
|
|
||||||
# security stage
|
|
||||||
# ====================
|
|
||||||
mirror:
|
|
||||||
stage: security
|
|
||||||
script:
|
|
||||||
- npmci git mirror
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
auditProductionDependencies:
|
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
|
||||||
stage: security
|
|
||||||
script:
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci command npm install --production --ignore-scripts
|
|
||||||
- npmci command npm config set registry https://registry.npmjs.org
|
|
||||||
- npmci command npm audit --audit-level=high --only=prod --production
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
auditDevDependencies:
|
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
|
||||||
stage: security
|
|
||||||
script:
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci command npm install --ignore-scripts
|
|
||||||
- npmci command npm config set registry https://registry.npmjs.org
|
|
||||||
- npmci command npm audit --audit-level=high --only=dev
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
# ====================
|
|
||||||
# test stage
|
|
||||||
# ====================
|
|
||||||
|
|
||||||
testStable:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci node install stable
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
testBuild:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci node install stable
|
|
||||||
- npmci npm install
|
|
||||||
- npmci command npm run build
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
release:
|
|
||||||
stage: release
|
|
||||||
script:
|
|
||||||
- npmci node install stable
|
|
||||||
- npmci npm publish
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
# ====================
|
|
||||||
# metadata stage
|
|
||||||
# ====================
|
|
||||||
codequality:
|
|
||||||
stage: metadata
|
|
||||||
allow_failure: true
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
script:
|
|
||||||
- npmci command npm install -g tslint typescript
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci npm install
|
|
||||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- priv
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
stage: metadata
|
|
||||||
script:
|
|
||||||
- npmci trigger
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
pages:
|
|
||||||
stage: metadata
|
|
||||||
script:
|
|
||||||
- npmci node install lts
|
|
||||||
- npmci command npm install -g @git.zone/tsdoc
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci npm install
|
|
||||||
- npmci command tsdoc
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
artifacts:
|
|
||||||
expire_in: 1 week
|
|
||||||
paths:
|
|
||||||
- public
|
|
||||||
allow_failure: true
|
|
40
changelog.md
40
changelog.md
@ -1,5 +1,45 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.5 - fix(mod_assets)
|
||||||
|
Fix async handling in asset processing
|
||||||
|
|
||||||
|
- Ensured that the empty directory operation is awaited in the asset processing workflow.
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.4 - fix(mod_assets)
|
||||||
|
Fix logging message in ensureAssetsDir to correctly state when directory is created
|
||||||
|
|
||||||
|
- Corrected logging output in ensureAssetsDir method to indicate directory creation.
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.3 - fix(mod_assets)
|
||||||
|
Fix issue with asset directory copy
|
||||||
|
|
||||||
|
- Updated dependency '@push.rocks/smartfile' to version '^11.2.0'
|
||||||
|
- Ensure target directory is properly replaced when copying assets
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.2 - fix(dependencies)
|
||||||
|
Update smartfile dependency and fix spacing issue in assets module
|
||||||
|
|
||||||
|
- Updated @push.rocks/smartfile from ^11.1.6 to ^11.1.8
|
||||||
|
- Fixed a spacing issue in the processAssets function within the assets module
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.1 - fix(index)
|
||||||
|
Export mod_assets for programmatic use
|
||||||
|
|
||||||
|
- Added export for mod_assets/index in ts/index.ts to make it usable programmatically.
|
||||||
|
|
||||||
|
## 2025-01-29 - 2.2.0 - feat(AssetsHandler)
|
||||||
|
Add asset handling to the CLI workflow
|
||||||
|
|
||||||
|
- Introduced AssetsHandler class for managing asset directories and files.
|
||||||
|
- Updated tsbundle.cli.ts to include asset processing in the 'website' command.
|
||||||
|
|
||||||
|
## 2025-01-28 - 2.1.1 - fix(core)
|
||||||
|
Update dependencies and remove GitLab CI configuration.
|
||||||
|
|
||||||
|
- Updated several devDependencies to newer versions for improved stability and performance.
|
||||||
|
- Updated core dependencies including esbuild and TypeScript.
|
||||||
|
- Removed the .gitlab-ci.yml file, which could suggest a change in continuous integration setup.
|
||||||
|
|
||||||
## 2024-10-27 - 2.1.0 - feat(mod_esbuild)
|
## 2024-10-27 - 2.1.0 - feat(mod_esbuild)
|
||||||
Add alias support to esbuild bundling process
|
Add alias support to esbuild bundling process
|
||||||
|
|
||||||
|
20
package.json
20
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@git.zone/tsbundle",
|
"name": "@git.zone/tsbundle",
|
||||||
"version": "2.1.0",
|
"version": "2.2.5",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "a bundler using rollup for painless bundling of web projects",
|
"description": "a bundler using rollup for painless bundling of web projects",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@ -16,26 +16,26 @@
|
|||||||
"tsbundle": "cli.js"
|
"tsbundle": "cli.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@git.zone/tsbuild": "^2.1.85",
|
"@git.zone/tsbuild": "^2.2.1",
|
||||||
"@git.zone/tsrun": "^1.2.49",
|
"@git.zone/tsrun": "^1.3.3",
|
||||||
"@git.zone/tstest": "^1.0.90",
|
"@git.zone/tstest": "^1.0.96",
|
||||||
"@push.rocks/tapbundle": "^5.3.0",
|
"@push.rocks/tapbundle": "^5.5.6",
|
||||||
"@types/node": "^22.8.1"
|
"@types/node": "^22.12.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@push.rocks/early": "^4.0.4",
|
"@push.rocks/early": "^4.0.4",
|
||||||
"@push.rocks/smartcli": "^4.0.11",
|
"@push.rocks/smartcli": "^4.0.11",
|
||||||
"@push.rocks/smartdelay": "^3.0.5",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
"@push.rocks/smartfile": "^11.0.21",
|
"@push.rocks/smartfile": "^11.2.0",
|
||||||
"@push.rocks/smartlog": "^3.0.7",
|
"@push.rocks/smartlog": "^3.0.7",
|
||||||
"@push.rocks/smartlog-destination-local": "^9.0.2",
|
"@push.rocks/smartlog-destination-local": "^9.0.2",
|
||||||
"@push.rocks/smartpath": "^5.0.18",
|
"@push.rocks/smartpath": "^5.0.18",
|
||||||
"@push.rocks/smartpromise": "^4.0.4",
|
"@push.rocks/smartpromise": "^4.2.2",
|
||||||
"@push.rocks/smartspawn": "^3.0.3",
|
"@push.rocks/smartspawn": "^3.0.3",
|
||||||
"@types/html-minifier": "^4.0.5",
|
"@types/html-minifier": "^4.0.5",
|
||||||
"esbuild": "^0.24.0",
|
"esbuild": "^0.24.2",
|
||||||
"html-minifier": "^4.0.0",
|
"html-minifier": "^4.0.0",
|
||||||
"typescript": "5.6.3"
|
"typescript": "5.7.3"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"ts/**/*",
|
"ts/**/*",
|
||||||
|
10638
pnpm-lock.yaml
generated
10638
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tsbundle',
|
name: '@git.zone/tsbundle',
|
||||||
version: '2.1.0',
|
version: '2.2.5',
|
||||||
description: 'a bundler using rollup for painless bundling of web projects'
|
description: 'a bundler using rollup for painless bundling of web projects'
|
||||||
}
|
}
|
||||||
|
@ -9,5 +9,6 @@ early.stop();
|
|||||||
|
|
||||||
// lets make this usable programmatically
|
// lets make this usable programmatically
|
||||||
export * from './tsbundle.class.tsbundle.js';
|
export * from './tsbundle.class.tsbundle.js';
|
||||||
|
export * from './mod_assets/index.js';
|
||||||
export * from './mod_html/index.js';
|
export * from './mod_html/index.js';
|
||||||
export { runCli };
|
export { runCli };
|
||||||
|
40
ts/mod_assets/index.ts
Normal file
40
ts/mod_assets/index.ts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import * as plugins from './plugins.js';
|
||||||
|
import * as paths from '../paths.js';
|
||||||
|
|
||||||
|
export class AssetsHandler {
|
||||||
|
public defaultFromDirPath: string = plugins.path.join(paths.cwd, './assets');
|
||||||
|
public defaultToDirPath: string = plugins.path.join(paths.cwd, './dist_serve/assets');
|
||||||
|
|
||||||
|
public async ensureAssetsDir() {
|
||||||
|
const assetsDirExists = await plugins.smartfile.fs.isDirectory(this.defaultFromDirPath);
|
||||||
|
if (!assetsDirExists) {
|
||||||
|
await plugins.smartfile.fs.ensureDir(this.defaultFromDirPath);
|
||||||
|
console.log(`created assets directory at ${this.defaultFromDirPath}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// copies the html
|
||||||
|
public async processAssets(optionsArg?: {
|
||||||
|
from?: string;
|
||||||
|
to?: string;
|
||||||
|
}) {
|
||||||
|
// lets assemble the options
|
||||||
|
optionsArg = {
|
||||||
|
... {
|
||||||
|
from: this.defaultFromDirPath,
|
||||||
|
to: this.defaultToDirPath,
|
||||||
|
},
|
||||||
|
...(optionsArg || {})
|
||||||
|
}
|
||||||
|
await this.ensureAssetsDir()
|
||||||
|
optionsArg.from = plugins.smartpath.transform.toAbsolute(optionsArg.from, paths.cwd) as string;
|
||||||
|
optionsArg.to = plugins.smartpath.transform.toAbsolute(optionsArg.to, paths.cwd) as string;
|
||||||
|
|
||||||
|
// lets clean theh target directory
|
||||||
|
await plugins.smartfile.fs.ensureEmptyDir(optionsArg.to);
|
||||||
|
|
||||||
|
plugins.smartfile.fs.copySync(optionsArg.from, optionsArg.to, {
|
||||||
|
replaceTargetDir: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
1
ts/mod_assets/plugins.ts
Normal file
1
ts/mod_assets/plugins.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from '../plugins.js';
|
@ -2,6 +2,7 @@ import * as plugins from './plugins.js';
|
|||||||
import { TsBundle } from './tsbundle.class.tsbundle.js';
|
import { TsBundle } from './tsbundle.class.tsbundle.js';
|
||||||
import { HtmlHandler } from './mod_html/index.js';
|
import { HtmlHandler } from './mod_html/index.js';
|
||||||
import { logger } from './tsbundle.logging.js';
|
import { logger } from './tsbundle.logging.js';
|
||||||
|
import { AssetsHandler } from './mod_assets/index.js';
|
||||||
|
|
||||||
export const runCli = async () => {
|
export const runCli = async () => {
|
||||||
const tsBundleCli = new plugins.smartcli.Smartcli();
|
const tsBundleCli = new plugins.smartcli.Smartcli();
|
||||||
@ -34,6 +35,8 @@ export const runCli = async () => {
|
|||||||
|
|
||||||
tsBundleCli.addCommand('website').subscribe(async (argvArg) => {
|
tsBundleCli.addCommand('website').subscribe(async (argvArg) => {
|
||||||
const tsbundle = new TsBundle();
|
const tsbundle = new TsBundle();
|
||||||
|
|
||||||
|
// lets deal with the html
|
||||||
const htmlHandler = new HtmlHandler();
|
const htmlHandler = new HtmlHandler();
|
||||||
await tsbundle.build(
|
await tsbundle.build(
|
||||||
process.cwd(),
|
process.cwd(),
|
||||||
@ -49,6 +52,10 @@ export const runCli = async () => {
|
|||||||
minify: true,
|
minify: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// lets deal with the assets
|
||||||
|
const assetsHandler = new AssetsHandler();
|
||||||
|
await assetsHandler.processAssets();
|
||||||
});
|
});
|
||||||
|
|
||||||
tsBundleCli.startParse();
|
tsBundleCli.startParse();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user