1.98.0 • Published 9 days ago

codemaker v1.98.0

Weekly downloads
16,997
License
Apache-2.0
Repository
github
Last release
9 days ago

codemaker

Makes code. Well.. just a simple text writer with support for:

  1. Blocks (indentation/open/close)
  2. Supports multiple files (with subdirectories)
  3. Exclusion of files
import { CodeMaker } from 'codemaker'

let maker = new CodeMaker();
maker.openFile('myfile.js');
maker.line('first line');
maker.openBlock('open');
maker.line('second line');
maker.closeBlock();
maker.indent('generic open [');
maker.line('boom');
maker.line('bam');
maker.unindent(']');
maker.closeFile('myfile.js');

let yourfileRelativePath = './relative/subdirs/are/also/supported/yourfile.js';
maker.openFile(yourfileRelativePath);
maker.line('this is your file speaking');

// change indentation and block formatting
maker.indentation = 10;
maker.openBlockFormatter = s => `(--- ${s} ---`;
maker.closeBlockFormatter = s => `--- ${s} ---)`;

maker.openBlock('block1');
maker.line('block1.line1');
maker.line('block1.line2');
maker.openBlock('block2');
maker.line('block2.line1');
maker.closeBlock('block2 (close)');
maker.line('block1.line3');
maker.closeBlock('block1 (close)');

// closeFile will ensure that you are closing the same file.
maker.closeFile(yourfileRelativePath);

// files can also be excluded by adding their path to exclude()
maker.openFile('rel/excluded.txt');
maker.line('this file will not be emitted in save()');
maker.closeFile('rel/excluded.txt');

// later in the day
maker.exclude('rel/excluded.txt');

// this is javascript - you can customize openBlock to whatever
maker.openBlock = function(s) {
  this.line(s);
  this.open('{');
};

maker.openFile('custom-blocks.cpp');
maker.openBlock('Block1()');
maker.line('L1');
maker.openBlock('Block2()');
maker.line('L2');
maker.closeBlock();
maker.closeBlock();
maker.closeFile('custom-blocks.cpp');

// returns a sorted list of output files
let files = await maker.save('/tmp/source-files');
  • /tmp/source-files/myfile.js:
first line
open {
    second line
}
generic open [
    boom
    bam
]
  • /tmp/source-files/relative/subdirs/are/also/supported/yourfile.js:
this is your file speaking
(--- block1 ---
          block1.line1
          block1.line2
          (--- block2 ---
                    block2.line1
          --- block2 (close) ---)
          block1.line3
--- block1 (close) ---)
  • /tmp/source-files/custom-blocks.cpp:
Block1()
{
    L1
    Block2()
    {
        L2
    }
}

Neat.

Also bundles a couple of case utils from sindresorhus:

maker.toCamelCase(s, ...)
maker.toPascalCase(s, ...)
maker.toSnakCase(s, sep = '_')
1.98.0

9 days ago

1.97.0

1 month ago

1.96.0

2 months ago

1.95.0

2 months ago

1.94.0

4 months ago

1.93.0

5 months ago

1.90.0

7 months ago

1.86.0

9 months ago

1.86.1

9 months ago

1.87.0

9 months ago

1.92.0

6 months ago

1.89.0

8 months ago

1.88.0

9 months ago

1.91.0

7 months ago

1.85.0

10 months ago

1.84.0

11 months ago

1.82.0

12 months ago

1.83.0

11 months ago

1.81.0

1 year ago

1.80.0

1 year ago

1.79.0

1 year ago

1.78.0

1 year ago

1.78.1

1 year ago

1.77.0

1 year ago

1.76.0

1 year ago

1.74.0

1 year ago

1.75.0

1 year ago

1.72.0

1 year ago

1.73.0

1 year ago

1.70.0

2 years ago

1.71.0

1 year ago

1.68.0

2 years ago

1.69.0

2 years ago

1.63.0

2 years ago

1.63.1

2 years ago

1.63.2

2 years ago

1.67.0

2 years ago

1.64.0

2 years ago

1.61.0

2 years ago

1.65.0

2 years ago

1.65.1

2 years ago

1.62.0

2 years ago

1.66.0

2 years ago

1.60.0

2 years ago

1.60.1

2 years ago

1.58.0

2 years ago

1.59.0

2 years ago

1.57.0

2 years ago

1.56.0

2 years ago

1.55.0

2 years ago

1.55.1

2 years ago

1.48.0

2 years ago

1.51.0

2 years ago

1.49.0

2 years ago

1.52.1

2 years ago

1.52.0

2 years ago

1.53.0

2 years ago

1.47.0

2 years ago

1.50.0

2 years ago

1.54.0

2 years ago

1.44.0

2 years ago

1.44.2

2 years ago

1.44.1

2 years ago

1.45.0

2 years ago

1.42.0

3 years ago

1.46.0

2 years ago

1.43.0

3 years ago

1.41.0

3 years ago

1.40.0

3 years ago

1.39.0

3 years ago

1.37.0

3 years ago

1.38.0

3 years ago

1.36.0

3 years ago

1.35.0

3 years ago

1.34.0

3 years ago

1.33.0

3 years ago

1.32.0

3 years ago

1.31.0

3 years ago

1.30.0

3 years ago

1.29.0

3 years ago

1.27.1

3 years ago

1.28.0

3 years ago

1.27.0

3 years ago

1.26.0

3 years ago

1.25.0

3 years ago

1.24.0

3 years ago

1.23.0

3 years ago

1.22.0

3 years ago

1.21.0

3 years ago

1.20.1

3 years ago

1.20.0

3 years ago

1.19.0

3 years ago

1.18.0

3 years ago

1.17.1

3 years ago

1.17.0

3 years ago

1.16.0

3 years ago

1.15.0

3 years ago

1.14.1

4 years ago

1.14.0

4 years ago

1.13.0

4 years ago

1.12.0

4 years ago

1.11.0

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.1.1

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago

0.22.0

4 years ago

0.21.2

4 years ago

0.21.1

4 years ago

0.21.0

4 years ago

0.20.11

4 years ago

0.20.10

4 years ago

0.20.9

4 years ago

0.20.8

4 years ago

0.20.7

4 years ago

0.20.6

4 years ago

0.20.5

4 years ago

0.20.4

4 years ago

0.20.3

4 years ago

0.20.2

5 years ago

0.20.1

5 years ago

0.20.0

5 years ago

0.19.0

5 years ago

0.18.0

5 years ago

0.17.1

5 years ago

0.17.0

5 years ago

0.16.0

5 years ago

0.15.2

5 years ago

0.15.1

5 years ago

0.15.0

5 years ago

0.14.3

5 years ago

0.14.2

5 years ago

0.14.1

5 years ago

0.14.0

5 years ago

0.13.4

5 years ago

0.13.3

5 years ago

0.13.2

5 years ago

0.13.1

5 years ago

0.13.0

5 years ago

0.12.1

5 years ago

0.12.0

5 years ago

0.11.3

5 years ago

0.11.2

5 years ago

0.11.1

5 years ago

0.11.0

5 years ago

0.10.5

5 years ago

0.10.4

5 years ago

0.10.3

5 years ago

0.10.2

5 years ago

0.10.1

5 years ago

0.10.0

5 years ago

0.9.0

5 years ago

0.8.2

5 years ago

0.8.1

5 years ago

0.8.0

5 years ago

0.7.15

5 years ago

0.7.14

5 years ago

0.7.13

5 years ago

0.7.12

5 years ago

0.7.11

5 years ago

0.7.10

5 years ago

0.7.9

5 years ago

0.7.8

6 years ago

0.7.7

6 years ago

0.7.6

6 years ago

0.7.5

6 years ago

0.7.4

6 years ago

0.7.3

6 years ago

0.7.2

6 years ago

0.7.1

6 years ago

0.7.0

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago