Skip to content

Commit 3fc6de9

Browse files
committed
Release v0.1.0
1 parent 3d47b5c commit 3fc6de9

File tree

8 files changed

+34
-17
lines changed

8 files changed

+34
-17
lines changed

dist/files-replace.d.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
//! files-replace v0.0.3 ~~ https://github.com/center-key/files-replace ~~ MIT License
1+
//! files-replace v0.1.0 ~~ https://github.com/center-key/files-replace ~~ MIT License
22

33
export declare type Settings = {
44
cd: string;
5+
concat: string | null;
56
extensions: string[];
67
filename: string | null;
78
find: string | null;

dist/files-replace.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! files-replace v0.0.3 ~~ https://github.com/center-key/files-replace ~~ MIT License
1+
//! files-replace v0.1.0 ~~ https://github.com/center-key/files-replace ~~ MIT License
22

33
import { isBinary } from 'istextorbinary';
44
import { Liquid } from 'liquidjs';
@@ -21,6 +21,7 @@ const filesReplace = {
2121
transform(sourceFolder, targetFolder, options) {
2222
const defaults = {
2323
cd: null,
24+
concat: null,
2425
extensions: [],
2526
find: null,
2627
replacement: null,
@@ -31,6 +32,7 @@ const filesReplace = {
3132
const startFolder = settings.cd ? util.normalizeFolder(settings.cd) + '/' : '';
3233
const source = util.normalizeFolder(startFolder + sourceFolder);
3334
const target = util.normalizeFolder(startFolder + targetFolder);
35+
const concatFile = settings.concat ? path.join(target, settings.concat) : null;
3436
const missingFind = !settings.find && !!settings.replacement;
3537
if (targetFolder)
3638
fs.mkdirSync(target, { recursive: true });
@@ -44,7 +46,10 @@ const filesReplace = {
4446
null;
4547
if (errorMessage)
4648
throw Error('[files-replace] ' + errorMessage);
47-
const resultsFile = (file) => ({ origin: file, dest: target + '/' + file.substring(source.length + 1) });
49+
const resultsFile = (file) => ({
50+
origin: file,
51+
dest: concatFile ?? target + '/' + file.substring(source.length + 1),
52+
});
4853
const exts = settings.extensions.length ? settings.extensions : [''];
4954
const globFiles = () => exts.map(ext => glob.sync(source + '/**/*' + ext)).flat().sort();
5055
const filesRaw = settings.filename ? [source + '/' + settings.filename] : globFiles();
@@ -55,13 +60,16 @@ const filesReplace = {
5560
engine.registerFilter('version-minor', versionFormatter(2));
5661
engine.registerFilter('version-major', versionFormatter(1));
5762
const pkg = settings.pkg ? util.readPackageJson() : null;
58-
const processFile = (file) => {
63+
const processFile = (file, index) => {
5964
const newStr = settings.replacement ?? '';
6065
const text = fs.readFileSync(file.origin, 'utf-8');
6166
const updated = settings.find ? text.replaceAll(settings.find, newStr) : text;
6267
const final = settings.pkg ? engine.parseAndRenderSync(updated, { pkg }) : updated;
6368
fs.mkdirSync(path.dirname(file.dest), { recursive: true });
64-
fs.writeFileSync(file.dest, final);
69+
if (settings.concat && index > 0)
70+
fs.appendFileSync(file.dest, final);
71+
else
72+
fs.writeFileSync(file.dest, final);
6573
};
6674
files.map(processFile);
6775
const relativePaths = (file) => ({

dist/files-replace.umd.cjs

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! files-replace v0.0.3 ~~ https://github.com/center-key/files-replace ~~ MIT License
1+
//! files-replace v0.1.0 ~~ https://github.com/center-key/files-replace ~~ MIT License
22

33
var __importDefault = (this && this.__importDefault) || function (mod) {
44
return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3636
transform(sourceFolder, targetFolder, options) {
3737
const defaults = {
3838
cd: null,
39+
concat: null,
3940
extensions: [],
4041
find: null,
4142
replacement: null,
@@ -46,6 +47,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4647
const startFolder = settings.cd ? util.normalizeFolder(settings.cd) + '/' : '';
4748
const source = util.normalizeFolder(startFolder + sourceFolder);
4849
const target = util.normalizeFolder(startFolder + targetFolder);
50+
const concatFile = settings.concat ? path_1.default.join(target, settings.concat) : null;
4951
const missingFind = !settings.find && !!settings.replacement;
5052
if (targetFolder)
5153
fs_1.default.mkdirSync(target, { recursive: true });
@@ -59,7 +61,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5961
null;
6062
if (errorMessage)
6163
throw Error('[files-replace] ' + errorMessage);
62-
const resultsFile = (file) => ({ origin: file, dest: target + '/' + file.substring(source.length + 1) });
64+
const resultsFile = (file) => ({
65+
origin: file,
66+
dest: concatFile ?? target + '/' + file.substring(source.length + 1),
67+
});
6368
const exts = settings.extensions.length ? settings.extensions : [''];
6469
const globFiles = () => exts.map(ext => glob_1.default.sync(source + '/**/*' + ext)).flat().sort();
6570
const filesRaw = settings.filename ? [source + '/' + settings.filename] : globFiles();
@@ -70,13 +75,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7075
engine.registerFilter('version-minor', versionFormatter(2));
7176
engine.registerFilter('version-major', versionFormatter(1));
7277
const pkg = settings.pkg ? util.readPackageJson() : null;
73-
const processFile = (file) => {
78+
const processFile = (file, index) => {
7479
const newStr = settings.replacement ?? '';
7580
const text = fs_1.default.readFileSync(file.origin, 'utf-8');
7681
const updated = settings.find ? text.replaceAll(settings.find, newStr) : text;
7782
const final = settings.pkg ? engine.parseAndRenderSync(updated, { pkg }) : updated;
7883
fs_1.default.mkdirSync(path_1.default.dirname(file.dest), { recursive: true });
79-
fs_1.default.writeFileSync(file.dest, final);
84+
if (settings.concat && index > 0)
85+
fs_1.default.appendFileSync(file.dest, final);
86+
else
87+
fs_1.default.writeFileSync(file.dest, final);
8088
};
8189
files.map(processFile);
8290
const relativePaths = (file) => ({

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "files-replace",
3-
"version": "0.0.3",
3+
"version": "0.1.0",
44
"description": "Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)",
55
"license": "MIT",
66
"type": "module",
@@ -92,7 +92,7 @@
9292
"add-dist-header": "~0.3",
9393
"assert-deep-strict-equal": "~1.0",
9494
"copy-file-util": "~0.1",
95-
"eslint": "~8.24",
95+
"eslint": "~8.25",
9696
"fetch-json": "~2.6",
9797
"jshint": "~2.13",
9898
"mocha": "~10.0",

spec/fixtures/target/mock1.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ <h1>🔍🔍🔍 files-replace 🔍🔍🔍</h1>
1212
<h2>Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)</h2>
1313
<p>I, for one, welcome our new A.I. overlords.</p>
1414
<ul>
15-
<li>Release: v0.0.3</li>
16-
<li>Minor: v0.0</li>
15+
<li>Release: v0.1.0</li>
16+
<li>Minor: v0.1</li>
1717
<li>Major: v0</li>
1818
</ul>
1919
</body>

spec/fixtures/target/mock1.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// File: mock1.js
33

44
const info = {
5-
banner: '🔍🔍🔍 files-replace v0.0.3 🔍🔍🔍',
5+
banner: '🔍🔍🔍 files-replace v0.1.0 🔍🔍🔍',
66
description: 'Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)',
77
list: 'A.I., A.I., A.I.',
88
};

spec/fixtures/target/subfolder/mock2.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ <h1>🔍🔍🔍 files-replace 🔍🔍🔍</h1>
1212
<h2>Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)</h2>
1313
<p>I, for one, welcome our new A.I. overlords.</p>
1414
<ul>
15-
<li>Release: v0.0.3</li>
16-
<li>Minor: v0.0</li>
15+
<li>Release: v0.1.0</li>
16+
<li>Minor: v0.1</li>
1717
<li>Major: v0</li>
1818
</ul>
1919
</body>

spec/fixtures/target/subfolder/mock2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// File: mock2.js
33

44
const info = {
5-
banner: '🔍🔍🔍 files-replace v0.0.3 🔍🔍🔍',
5+
banner: '🔍🔍🔍 files-replace v0.1.0 🔍🔍🔍',
66
description: 'Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)',
77
list: 'A.I., A.I., A.I.',
88
};

0 commit comments

Comments
 (0)