12 Commits

Author SHA1 Message Date
84281590a9 1.0.11 2022-03-10 15:13:50 +01:00
33e73e9959 fix(core): update 2022-03-10 15:13:49 +01:00
a265493eba 1.0.10 2022-03-10 14:20:20 +01:00
05a0552fe3 fix(core): update 2022-03-10 14:20:19 +01:00
292c99e9d9 1.0.9 2021-03-07 23:38:58 +00:00
4dc71ce246 fix(core): update 2021-03-07 23:38:58 +00:00
7e2961bc84 1.0.8 2021-03-07 23:31:32 +00:00
ac34c908a4 fix(core): update 2021-03-07 23:31:32 +00:00
92604a87a0 1.0.7 2021-03-07 23:27:01 +00:00
1b35948d70 fix(core): update 2021-03-07 23:27:01 +00:00
264a21ab4b 1.0.6 2021-03-07 23:26:00 +00:00
d472e18ff0 fix(core): update 2021-03-07 23:25:59 +00:00
8 changed files with 22570 additions and 3809 deletions

View File

@@ -19,23 +19,36 @@ mirror:
stage: security stage: security
script: script:
- npmci git mirror - npmci git mirror
only:
- tags
tags: tags:
- lossless - lossless
- docker - docker
- notpriv - notpriv
audit: 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 image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci npm prepare - npmci npm prepare
- npmci command npm install --ignore-scripts - npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org - npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high - npmci command npm audit --audit-level=high --only=dev
tags: tags:
- lossless
- docker - docker
- notpriv allow_failure: true
# ==================== # ====================
# test stage # test stage
@@ -50,9 +63,7 @@ testStable:
- npmci npm test - npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- priv
testBuild: testBuild:
stage: test stage: test
@@ -63,9 +74,7 @@ testBuild:
- npmci command npm run build - npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- notpriv
release: release:
stage: release stage: release
@@ -85,6 +94,8 @@ release:
codequality: codequality:
stage: metadata stage: metadata
allow_failure: true allow_failure: true
only:
- tags
script: script:
- npmci command npm install -g tslint typescript - npmci command npm install -g tslint typescript
- npmci npm prepare - npmci npm prepare

View File

@@ -15,7 +15,7 @@
"properties": { "properties": {
"projectType": { "projectType": {
"type": "string", "type": "string",
"enum": ["website", "element", "service", "npm"] "enum": ["website", "element", "service", "npm", "wcc"]
} }
} }
} }

26214
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartparcel", "name": "@pushrocks/smartparcel",
"version": "1.0.5", "version": "1.0.11",
"private": false, "private": false,
"description": "a wrapper for parcel", "description": "a wrapper for parcel",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@@ -12,17 +12,16 @@
"build": "(tsbuild --web)" "build": "(tsbuild --web)"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.0.22", "@gitzone/tsbuild": "^2.1.29",
"@gitzone/tstest": "^1.0.15", "@gitzone/tstest": "^1.0.64",
"@pushrocks/tapbundle": "^3.0.7", "@pushrocks/tapbundle": "^4.0.8",
"@types/node": "^10.11.7", "@types/node": "^17.0.21",
"tslint": "^5.11.0", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.15.0" "tslint-config-prettier": "^1.15.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/smartpath": "^4.0.3", "@pushrocks/smartpath": "^4.0.3",
"parcel-bundler": "^1.12.4", "@parcel/core": "^2.3.2"
"@types/parcel-bundler": "^1.12.1"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",
@@ -35,5 +34,8 @@
"cli.js", "cli.js",
"npmextra.json", "npmextra.json",
"readme.md" "readme.md"
],
"browserslist": [
"last 1 chrome versions"
] ]
} }

View File

@@ -1,4 +1,4 @@
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, expectAsync, tap } from '@pushrocks/tapbundle';
import * as smartparcel from '../ts/index'; import * as smartparcel from '../ts/index';
tap.test('first test', async () => { tap.test('first test', async () => {

View File

@@ -1 +1 @@
export * from './parcel.classes.parcel'; export * from './parcel.classes.parcel';

View File

@@ -1,65 +1,91 @@
import * as plugins from './smartparcel.plugins'; import * as plugins from './smartparcel.plugins';
export class Parcel { export class Parcel {
private defaultOptions: plugins.parcel.ParcelOptions = { private options: {
outDir: plugins.path.join(process.cwd(), './dist_watch'), // The out directory to put the build files in, defaults to dist from: string | string[],
outFile: 'index.html', // The name of the outputFile outputDir: string,
publicUrl: '/', // The url to serve on, defaults to '/' outputFile: string
watch: true, // Whether to watch the files and rebuild them on change, defaults to process.env.NODE_ENV !== 'production' } = {
cache: true, // Enabled or disables caching, defaults to true from: null,
cacheDir: '.nogit/.parcelcache', // The directory cache gets put in, defaults to .cache outputDir: null,
contentHash: false, // Disable content hash from being included on the filename outputFile: null,
global: 'moduleName', // Expose modules as UMD under this name, disabled by default }
minify: false, // Minify files, enabled if process.env.NODE_ENV === 'production' private defaultOptions: ConstructorParameters<typeof plugins.parcel.Parcel>[ 0 ] = {
scopeHoist: false, // Turn on experimental scope hoisting/tree shaking flag, for smaller production bundles defaultConfig: '@parcel/config-default',
target: 'browser', // Browser/node/electron, defaults to browser cacheDir: './.nogit/.parcelcache',
bundleNodeModules: true, // By default, package.json dependencies are not included when using 'node' or 'electron' with 'target' option above. Set to true to adds them to the bundle, false by default defaultTargetOptions: {
https: null, distDir: plugins.path.join(process.cwd(), './dist_watch'),
logLevel: 3, // 5 = save everything to a file, 4 = like 3, but with timestamps and additionally log http requests to dev server, 3 = log info, warnings & errors, 2 = log warnings & errors, 1 = log errors, 0 = log nothing publicUrl: '/',
hmr: true, // Enable or disable HMR while watching engines: {
hmrPort: 3003, // The port the HMR socket runs on, defaults to a random free port (0 in node.js resolves to a random free port) browsers: [ 'last 1 Chrome version' ]
sourceMaps: true, // Enable or disable sourcemaps, defaults to enabled (minified builds currently always create sourcemaps) }
hmrHostname: '', // A hostname for hot module reload, default to '' },
detailedReport: false, // Prints a detailed report of the bundles, assets, filesizes and times, defaults to false, reports are only printed if watch is disabled entries: './html/index.html',
hmrOptions: {
port: 3003
},
serveOptions: {
port: 3002
}
}; };
public options: plugins.parcel.ParcelOptions;
public entryFiles: string | string[] = plugins.path.join(process.cwd(), './html/index.html'); public entryFiles: string | string[] = plugins.path.join(process.cwd(), './html/index.html');
public async createOptions() {
const returnOptions: ConstructorParameters<typeof plugins.parcel.Parcel>[ 0 ] = {
...this.defaultOptions,
entries: this.options.from,
defaultTargetOptions: {
...this.defaultOptions.defaultTargetOptions,
distDir: this.options.outputDir
}
}
return returnOptions;
}
/** /**
* builds and serves * builds and serves
*/ */
public async start() { public async watchAndServe () {
const bundler = new plugins.parcel(this.entryFiles, this.options); const bundler = new plugins.parcel.Parcel(await this.createOptions());
// Run the bundler, this returns the main bundle let subscription = await bundler.watch((err, event) => {
// Use the events if you're using watch mode as this promise will only trigger once and not for every rebuild if (err) {
const bundle = await bundler.serve(3002); // fatal error
console.log(err);
throw err;
}
if (event.type === 'buildSuccess') {
let bundles = event.bundleGraph.getBundles();
console.log(`✨ Built ${bundles.length} bundles in ${event.buildTime}ms!`);
} else if (event.type === 'buildFailure') {
console.log(event.diagnostics);
}
});
} }
/** /**
* just builds * just builds
*/ */
public async build() { public async build () {
const bundler = new plugins.parcel(this.entryFiles, { let bundler = new plugins.parcel.Parcel(await this.createOptions());
...this.options,
watch: false
});
// Run the bundler, this returns the main bundle
// Use the events if you're using watch mode as this promise will only trigger once and not for every rebuild
const bundle = await bundler.bundle().catch(e => {
console.error(e);
throw e;
});
try {
let {bundleGraph, buildTime} = await bundler.run();
let bundles = bundleGraph.getBundles();
console.log(`✨ Built ${bundles.length} bundles in ${buildTime}ms!`);
} catch (err: any) {
console.log(err.diagnostics);
}
} }
constructor(fromArg: string | string[], outputDirArg: string, outputFileArg: string) { constructor(fromArg: string | string[], outputDirArg: string, outputFileArg: string) {
this.entryFiles = fromArg; this.entryFiles = fromArg;
this.options = { this.options = {
...this.defaultOptions, from: fromArg,
outDir: outputDirArg, outputDir: outputDirArg,
outFile: outputFileArg, outputFile: outputFileArg
}; };
} }
} }

View File

@@ -6,11 +6,9 @@ export { path };
// @pushrocks scope // @pushrocks scope
import * as smartpath from '@pushrocks/smartpath'; import * as smartpath from '@pushrocks/smartpath';
export { export { smartpath };
smartpath
};
// third party scope // third party scope
import parcel from 'parcel-bundler'; import * as parcel from '@parcel/core';
export { parcel }; export { parcel };