Skip to content

Commit d8a3fbe

Browse files
committed
Release v0.1.1
1 parent addd4db commit d8a3fbe

File tree

8 files changed

+23
-18
lines changed

8 files changed

+23
-18
lines changed

dist/files-replace.d.ts

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

33
export declare type Settings = {
44
cd: string;
55
concat: string | null;
66
extensions: string[];
77
filename: string | null;
88
find: string | null;
9+
regex: RegExp | null;
910
replacement: string | null;
1011
pkg: false;
1112
};

dist/files-replace.js

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

33
import { isBinary } from 'istextorbinary';
44
import { Liquid } from 'liquidjs';
@@ -24,6 +24,7 @@ const filesReplace = {
2424
concat: null,
2525
extensions: [],
2626
find: null,
27+
regex: null,
2728
replacement: null,
2829
pkg: false,
2930
};
@@ -33,7 +34,7 @@ const filesReplace = {
3334
const source = util.normalizeFolder(startFolder + sourceFolder);
3435
const target = util.normalizeFolder(startFolder + targetFolder);
3536
const concatFile = settings.concat ? path.join(target, settings.concat) : null;
36-
const missingFind = !settings.find && !!settings.replacement;
37+
const missingFind = !settings.find && !settings.regex && !!settings.replacement;
3738
if (targetFolder)
3839
fs.mkdirSync(target, { recursive: true });
3940
const errorMessage = !sourceFolder ? 'Must specify the source folder path.' :
@@ -42,7 +43,7 @@ const filesReplace = {
4243
!fs.existsSync(target) ? 'Target folder cannot be created: ' + target :
4344
!fs.statSync(source).isDirectory() ? 'Source is not a folder: ' + source :
4445
!fs.statSync(target).isDirectory() ? 'Target is not a folder: ' + target :
45-
missingFind ? 'Must specify search text with --find' :
46+
missingFind ? 'Must specify search text with --find or --regex' :
4647
null;
4748
if (errorMessage)
4849
throw Error('[files-replace] ' + errorMessage);
@@ -61,10 +62,11 @@ const filesReplace = {
6162
engine.registerFilter('version-major', versionFormatter(1));
6263
const pkg = settings.pkg ? util.readPackageJson() : null;
6364
const processFile = (file, index) => {
65+
const content = fs.readFileSync(file.origin, 'utf-8');
6466
const newStr = settings.replacement ?? '';
65-
const text = fs.readFileSync(file.origin, 'utf-8');
66-
const updated = settings.find ? text.replaceAll(settings.find, newStr) : text;
67-
const final = settings.pkg ? engine.parseAndRenderSync(updated, { pkg }) : updated;
67+
const out1 = settings.find ? content.replaceAll(settings.find, newStr) : content;
68+
const out2 = settings.regex ? out1.replace(settings.regex, newStr) : out1;
69+
const final = settings.pkg ? engine.parseAndRenderSync(out2, { pkg }) : out2;
6870
fs.mkdirSync(path.dirname(file.dest), { recursive: true });
6971
if (settings.concat && index > 0)
7072
fs.appendFileSync(file.dest, final);

dist/files-replace.umd.cjs

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! files-replace v0.1.0 ~~ https://github.com/center-key/files-replace ~~ MIT License
1+
//! files-replace v0.1.1 ~~ 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 };
@@ -39,6 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3939
concat: null,
4040
extensions: [],
4141
find: null,
42+
regex: null,
4243
replacement: null,
4344
pkg: false,
4445
};
@@ -48,7 +49,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4849
const source = util.normalizeFolder(startFolder + sourceFolder);
4950
const target = util.normalizeFolder(startFolder + targetFolder);
5051
const concatFile = settings.concat ? path_1.default.join(target, settings.concat) : null;
51-
const missingFind = !settings.find && !!settings.replacement;
52+
const missingFind = !settings.find && !settings.regex && !!settings.replacement;
5253
if (targetFolder)
5354
fs_1.default.mkdirSync(target, { recursive: true });
5455
const errorMessage = !sourceFolder ? 'Must specify the source folder path.' :
@@ -57,7 +58,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5758
!fs_1.default.existsSync(target) ? 'Target folder cannot be created: ' + target :
5859
!fs_1.default.statSync(source).isDirectory() ? 'Source is not a folder: ' + source :
5960
!fs_1.default.statSync(target).isDirectory() ? 'Target is not a folder: ' + target :
60-
missingFind ? 'Must specify search text with --find' :
61+
missingFind ? 'Must specify search text with --find or --regex' :
6162
null;
6263
if (errorMessage)
6364
throw Error('[files-replace] ' + errorMessage);
@@ -76,10 +77,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7677
engine.registerFilter('version-major', versionFormatter(1));
7778
const pkg = settings.pkg ? util.readPackageJson() : null;
7879
const processFile = (file, index) => {
80+
const content = fs_1.default.readFileSync(file.origin, 'utf-8');
7981
const newStr = settings.replacement ?? '';
80-
const text = fs_1.default.readFileSync(file.origin, 'utf-8');
81-
const updated = settings.find ? text.replaceAll(settings.find, newStr) : text;
82-
const final = settings.pkg ? engine.parseAndRenderSync(updated, { pkg }) : updated;
82+
const out1 = settings.find ? content.replaceAll(settings.find, newStr) : content;
83+
const out2 = settings.regex ? out1.replace(settings.regex, newStr) : out1;
84+
const final = settings.pkg ? engine.parseAndRenderSync(out2, { pkg }) : out2;
8385
fs_1.default.mkdirSync(path_1.default.dirname(file.dest), { recursive: true });
8486
if (settings.concat && index > 0)
8587
fs_1.default.appendFileSync(file.dest, final);

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "files-replace",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
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",

spec/fixtures/target/mock1.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ <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.1.0</li>
15+
<li>Release: v0.1.1</li>
1616
<li>Minor: v0.1</li>
1717
<li>Major: v0</li>
1818
</ul>

spec/fixtures/target/mock1.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ let π = 3.14;
55
let τ = 2 * π;
66

77
const info = {
8-
banner: '🔍🔍🔍 files-replace v0.1.0 🔍🔍🔍',
8+
banner: '🔍🔍🔍 files-replace v0.1.1 🔍🔍🔍',
99
description: 'Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)',
1010
list1: 'A.I., A.I., A.I.',
1111
list2: 'A.I., iNsEcT, INSECT, A.I.',

spec/fixtures/target/subfolder/mock2.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ <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.1.0</li>
15+
<li>Release: v0.1.1</li>
1616
<li>Minor: v0.1</li>
1717
<li>Major: v0</li>
1818
</ul>

spec/fixtures/target/subfolder/mock2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ let π = 3.14;
55
let τ = 2 * π;
66

77
const info = {
8-
banner: '🔍🔍🔍 files-replace v0.1.0 🔍🔍🔍',
8+
banner: '🔍🔍🔍 files-replace v0.1.1 🔍🔍🔍',
99
description: 'Find and replace strings or template outputs in text files (CLI tool designed for use in npm scripts)',
1010
list1: 'A.I., A.I., A.I.',
1111
list2: 'A.I., iNsEcT, INSECT, A.I.',

0 commit comments

Comments
 (0)