1.109.0 • Published 4 months ago

codemaker v1.109.0

Weekly downloads
16,997
License
Apache-2.0
Repository
github
Last release
4 months 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.109.0

4 months ago

1.108.0

4 months ago

1.107.0

4 months ago

1.106.0

7 months ago

1.105.0

8 months ago

1.103.1

10 months ago

1.103.0

10 months ago

1.104.0

9 months ago

1.102.0

11 months ago

1.101.0

1 year ago

1.100.0

1 year ago

1.99.0

1 year ago

1.98.0

1 year ago

1.97.0

1 year ago

1.96.0

1 year ago

1.95.0

1 year ago

1.94.0

1 year ago

1.93.0

2 years ago

1.90.0

2 years ago

1.86.0

2 years ago

1.86.1

2 years ago

1.87.0

2 years ago

1.92.0

2 years ago

1.89.0

2 years ago

1.88.0

2 years ago

1.91.0

2 years ago

1.85.0

2 years ago

1.84.0

2 years ago

1.82.0

2 years ago

1.83.0

2 years ago

1.81.0

2 years ago

1.80.0

2 years ago

1.79.0

2 years ago

1.78.0

2 years ago

1.78.1

2 years ago

1.77.0

2 years ago

1.76.0

2 years ago

1.74.0

2 years ago

1.75.0

2 years ago

1.72.0

3 years ago

1.73.0

2 years ago

1.70.0

3 years ago

1.71.0

3 years ago

1.68.0

3 years ago

1.69.0

3 years ago

1.63.0

3 years ago

1.63.1

3 years ago

1.63.2

3 years ago

1.67.0

3 years ago

1.64.0

3 years ago

1.61.0

3 years ago

1.65.0

3 years ago

1.65.1

3 years ago

1.62.0

3 years ago

1.66.0

3 years ago

1.60.0

3 years ago

1.60.1

3 years ago

1.58.0

3 years ago

1.59.0

3 years ago

1.57.0

3 years ago

1.56.0

3 years ago

1.55.0

3 years ago

1.55.1

3 years ago

1.48.0

4 years ago

1.51.0

3 years ago

1.49.0

4 years ago

1.52.1

3 years ago

1.52.0

3 years ago

1.53.0

3 years ago

1.47.0

4 years ago

1.50.0

4 years ago

1.54.0

3 years ago

1.44.0

4 years ago

1.44.2

4 years ago

1.44.1

4 years ago

1.45.0

4 years ago

1.42.0

4 years ago

1.46.0

4 years ago

1.43.0

4 years ago

1.41.0

4 years ago

1.40.0

4 years ago

1.39.0

4 years ago

1.37.0

4 years ago

1.38.0

4 years ago

1.36.0

4 years ago

1.35.0

4 years ago

1.34.0

4 years ago

1.33.0

4 years ago

1.32.0

4 years ago

1.31.0

4 years ago

1.30.0

4 years ago

1.29.0

4 years ago

1.27.1

4 years ago

1.28.0

4 years ago

1.27.0

4 years ago

1.26.0

4 years ago

1.25.0

4 years ago

1.24.0

4 years ago

1.23.0

4 years ago

1.22.0

4 years ago

1.21.0

4 years ago

1.20.1

4 years ago

1.20.0

4 years ago

1.19.0

4 years ago

1.18.0

4 years ago

1.17.1

4 years ago

1.17.0

4 years ago

1.16.0

5 years ago

1.15.0

5 years ago

1.14.1

5 years ago

1.14.0

5 years ago

1.13.0

5 years ago

1.12.0

5 years ago

1.11.0

5 years ago

1.10.0

5 years ago

1.9.0

5 years ago

1.8.0

5 years ago

1.7.0

5 years ago

1.6.0

5 years ago

1.5.0

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.1.1

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago

0.22.0

5 years ago

0.21.2

5 years ago

0.21.1

6 years ago

0.21.0

6 years ago

0.20.11

6 years ago

0.20.10

6 years ago

0.20.9

6 years ago

0.20.8

6 years ago

0.20.7

6 years ago

0.20.6

6 years ago

0.20.5

6 years ago

0.20.4

6 years ago

0.20.3

6 years ago

0.20.2

6 years ago

0.20.1

6 years ago

0.20.0

6 years ago

0.19.0

6 years ago

0.18.0

6 years ago

0.17.1

6 years ago

0.17.0

6 years ago

0.16.0

6 years ago

0.15.2

6 years ago

0.15.1

6 years ago

0.15.0

6 years ago

0.14.3

6 years ago

0.14.2

6 years ago

0.14.1

6 years ago

0.14.0

6 years ago

0.13.4

6 years ago

0.13.3

6 years ago

0.13.2

6 years ago

0.13.1

6 years ago

0.13.0

6 years ago

0.12.1

6 years ago

0.12.0

6 years ago

0.11.3

6 years ago

0.11.2

6 years ago

0.11.1

6 years ago

0.11.0

6 years ago

0.10.5

6 years ago

0.10.4

6 years ago

0.10.3

6 years ago

0.10.2

6 years ago

0.10.1

6 years ago

0.10.0

6 years ago

0.9.0

6 years ago

0.8.2

6 years ago

0.8.1

6 years ago

0.8.0

6 years ago

0.7.15

6 years ago

0.7.14

6 years ago

0.7.13

7 years ago

0.7.12

7 years ago

0.7.11

7 years ago

0.7.10

7 years ago

0.7.9

7 years ago

0.7.8

7 years ago

0.7.7

7 years ago

0.7.6

7 years ago

0.7.5

7 years ago

0.7.4

7 years ago

0.7.3

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.6.4

7 years ago

0.6.3

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago