@git.zone/tsbundle 2.1.1 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tsbundle',
6
- version: '2.1.1',
6
+ version: '2.2.1',
7
7
  description: 'a bundler using rollup for painless bundling of web projects'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDhEQUE4RDtDQUM1RSxDQUFBIn0=
@@ -1,5 +1,6 @@
1
1
  import './plugins.js';
2
2
  import { runCli } from './tsbundle.cli.js';
3
3
  export * from './tsbundle.class.tsbundle.js';
4
+ export * from './mod_assets/index.js';
4
5
  export * from './mod_html/index.js';
5
6
  export { runCli };
package/dist_ts/index.js CHANGED
@@ -7,6 +7,7 @@ import { runCli } from './tsbundle.cli.js';
7
7
  early.stop();
8
8
  // lets make this usable programmatically
9
9
  export * from './tsbundle.class.tsbundle.js';
10
+ export * from './mod_assets/index.js';
10
11
  export * from './mod_html/index.js';
11
12
  export { runCli };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEIscUNBQXFDO0FBQ3JDLE9BQU8sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWIseUNBQXlDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMifQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDeEIscUNBQXFDO0FBQ3JDLE9BQU8sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWIseUNBQXlDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9
@@ -0,0 +1,9 @@
1
+ export declare class AssetsHandler {
2
+ defaultFromDirPath: string;
3
+ defaultToDirPath: string;
4
+ ensureAssetsDir(): Promise<void>;
5
+ processAssets(optionsArg?: {
6
+ from?: string;
7
+ to?: string;
8
+ }): Promise<void>;
9
+ }
@@ -0,0 +1,33 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from '../paths.js';
3
+ export class AssetsHandler {
4
+ constructor() {
5
+ this.defaultFromDirPath = plugins.path.join(paths.cwd, './assets');
6
+ this.defaultToDirPath = plugins.path.join(paths.cwd, './dist_serve/assets');
7
+ }
8
+ async ensureAssetsDir() {
9
+ const assetsDirExists = await plugins.smartfile.fs.isDirectory(this.defaultFromDirPath);
10
+ if (!assetsDirExists) {
11
+ console.log(`creating assets directory at ${this.defaultFromDirPath}`);
12
+ await plugins.smartfile.fs.ensureDir(this.defaultFromDirPath);
13
+ }
14
+ }
15
+ // copies the html
16
+ async processAssets(optionsArg) {
17
+ // lets assemble the options
18
+ optionsArg = {
19
+ ...{
20
+ from: this.defaultFromDirPath,
21
+ to: this.defaultToDirPath,
22
+ },
23
+ ...(optionsArg || {})
24
+ };
25
+ await this.ensureAssetsDir();
26
+ optionsArg.from = plugins.smartpath.transform.toAbsolute(optionsArg.from, paths.cwd);
27
+ optionsArg.to = plugins.smartpath.transform.toAbsolute(optionsArg.to, paths.cwd);
28
+ // lets clean theh target directory
29
+ plugins.smartfile.fs.ensureEmptyDir(optionsArg.to);
30
+ plugins.smartfile.fs.copySync(optionsArg.from, optionsArg.to);
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfYXNzZXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ1MsdUJBQWtCLEdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RSxxQkFBZ0IsR0FBVyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFnQ3hGLENBQUM7SUE5QlEsS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDdkUsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDWCxLQUFLLENBQUMsYUFBYSxDQUFDLFVBRzFCO1FBQ0MsNEJBQTRCO1FBQzVCLFVBQVUsR0FBRztZQUNYLEdBQUk7Z0JBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzdCLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQzFCO1lBQ0QsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7U0FDdEIsQ0FBQTtRQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQzVCLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBVyxDQUFDO1FBQy9GLFVBQVUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBVyxDQUFDO1FBRTNGLG1DQUFtQztRQUNuQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ export * from '../plugins.js';
@@ -0,0 +1,2 @@
1
+ export * from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9hc3NldHMvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQyJ9
@@ -2,6 +2,7 @@ import * as plugins from './plugins.js';
2
2
  import { TsBundle } from './tsbundle.class.tsbundle.js';
3
3
  import { HtmlHandler } from './mod_html/index.js';
4
4
  import { logger } from './tsbundle.logging.js';
5
+ import { AssetsHandler } from './mod_assets/index.js';
5
6
  export const runCli = async () => {
6
7
  const tsBundleCli = new plugins.smartcli.Smartcli();
7
8
  tsBundleCli.standardCommand().subscribe(async (argvArg) => {
@@ -20,6 +21,7 @@ export const runCli = async () => {
20
21
  });
21
22
  tsBundleCli.addCommand('website').subscribe(async (argvArg) => {
22
23
  const tsbundle = new TsBundle();
24
+ // lets deal with the html
23
25
  const htmlHandler = new HtmlHandler();
24
26
  await tsbundle.build(process.cwd(), './ts_web/index.ts', './dist_serve/bundle.js', argvArg);
25
27
  const htmlFiles = await plugins.smartfile.fs.listFiles('./html', /\.html/);
@@ -30,7 +32,10 @@ export const runCli = async () => {
30
32
  minify: true,
31
33
  });
32
34
  }
35
+ // lets deal with the assets
36
+ const assetsHandler = new AssetsHandler();
37
+ await assetsHandler.processAssets();
33
38
  });
34
39
  tsBundleCli.startParse();
35
40
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNidW5kbGUuY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHNidW5kbGUuY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxLQUFLLElBQUksRUFBRTtJQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxPQUFPO0lBQ1QsQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQ2xCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDYixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FDbEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUNiLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM1RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ2IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixPQUFPLENBQ1IsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRSxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDNUIsSUFBSSxFQUFFLFVBQVUsUUFBUSxFQUFFO2dCQUMxQixFQUFFLEVBQUUsZ0JBQWdCLFFBQVEsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDIn0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNidW5kbGUuY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHNidW5kbGUuY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsT0FBTztJQUNULENBQUMsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ2IsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQ2xCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDYixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUVoQywwQkFBMEI7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQ2xCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDYixtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLE9BQU8sQ0FDUixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNFLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDO2dCQUM1QixJQUFJLEVBQUUsVUFBVSxRQUFRLEVBQUU7Z0JBQzFCLEVBQUUsRUFBRSxnQkFBZ0IsUUFBUSxFQUFFO2dCQUM5QixNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@git.zone/tsbundle",
3
- "version": "2.1.1",
3
+ "version": "2.2.1",
4
4
  "private": false,
5
5
  "description": "a bundler using rollup for painless bundling of web projects",
6
6
  "main": "dist_ts/index.js",
@@ -22,7 +22,7 @@
22
22
  "@push.rocks/early": "^4.0.4",
23
23
  "@push.rocks/smartcli": "^4.0.11",
24
24
  "@push.rocks/smartdelay": "^3.0.5",
25
- "@push.rocks/smartfile": "^11.1.5",
25
+ "@push.rocks/smartfile": "^11.1.6",
26
26
  "@push.rocks/smartlog": "^3.0.7",
27
27
  "@push.rocks/smartlog-destination-local": "^9.0.2",
28
28
  "@push.rocks/smartpath": "^5.0.18",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tsbundle',
6
- version: '2.1.1',
6
+ version: '2.2.1',
7
7
  description: 'a bundler using rollup for painless bundling of web projects'
8
8
  }
package/ts/index.ts CHANGED
@@ -9,5 +9,6 @@ early.stop();
9
9
 
10
10
  // lets make this usable programmatically
11
11
  export * from './tsbundle.class.tsbundle.js';
12
+ export * from './mod_assets/index.js';
12
13
  export * from './mod_html/index.js';
13
14
  export { runCli };
@@ -0,0 +1,38 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from '../paths.js';
3
+
4
+ export class AssetsHandler {
5
+ public defaultFromDirPath: string = plugins.path.join(paths.cwd, './assets');
6
+ public defaultToDirPath: string = plugins.path.join(paths.cwd, './dist_serve/assets');
7
+
8
+ public async ensureAssetsDir() {
9
+ const assetsDirExists = await plugins.smartfile.fs.isDirectory(this.defaultFromDirPath);
10
+ if (!assetsDirExists) {
11
+ console.log(`creating assets directory at ${this.defaultFromDirPath}`);
12
+ await plugins.smartfile.fs.ensureDir(this.defaultFromDirPath);
13
+ }
14
+ }
15
+
16
+ // copies the html
17
+ public async processAssets(optionsArg?: {
18
+ from?: string;
19
+ to?: string;
20
+ }) {
21
+ // lets assemble the options
22
+ optionsArg = {
23
+ ... {
24
+ from: this.defaultFromDirPath,
25
+ to: this.defaultToDirPath,
26
+ },
27
+ ...(optionsArg || {})
28
+ }
29
+ await this.ensureAssetsDir()
30
+ optionsArg.from = plugins.smartpath.transform.toAbsolute(optionsArg.from, paths.cwd) as string;
31
+ optionsArg.to = plugins.smartpath.transform.toAbsolute(optionsArg.to, paths.cwd) as string;
32
+
33
+ // lets clean theh target directory
34
+ plugins.smartfile.fs.ensureEmptyDir(optionsArg.to);
35
+
36
+ plugins.smartfile.fs.copySync(optionsArg.from, optionsArg.to);
37
+ }
38
+ }
@@ -0,0 +1 @@
1
+ export * from '../plugins.js';
@@ -2,6 +2,7 @@ import * as plugins from './plugins.js';
2
2
  import { TsBundle } from './tsbundle.class.tsbundle.js';
3
3
  import { HtmlHandler } from './mod_html/index.js';
4
4
  import { logger } from './tsbundle.logging.js';
5
+ import { AssetsHandler } from './mod_assets/index.js';
5
6
 
6
7
  export const runCli = async () => {
7
8
  const tsBundleCli = new plugins.smartcli.Smartcli();
@@ -34,6 +35,8 @@ export const runCli = async () => {
34
35
 
35
36
  tsBundleCli.addCommand('website').subscribe(async (argvArg) => {
36
37
  const tsbundle = new TsBundle();
38
+
39
+ // lets deal with the html
37
40
  const htmlHandler = new HtmlHandler();
38
41
  await tsbundle.build(
39
42
  process.cwd(),
@@ -49,6 +52,10 @@ export const runCli = async () => {
49
52
  minify: true,
50
53
  });
51
54
  }
55
+
56
+ // lets deal with the assets
57
+ const assetsHandler = new AssetsHandler();
58
+ await assetsHandler.processAssets();
52
59
  });
53
60
 
54
61
  tsBundleCli.startParse();