muggle-string
Advanced tools
Comparing version 0.2.2 to 0.3.0
@@ -1,16 +0,6 @@ | ||
declare const NO_DATA_SYMBOL: unique symbol; | ||
export type Segment<T = typeof NO_DATA_SYMBOL> = WithString<T extends typeof NO_DATA_SYMBOL ? [ | ||
string, | ||
string | undefined, | ||
number | [number, number] | ||
] : [ | ||
string, | ||
string | undefined, | ||
number | [number, number], | ||
T | ||
]>; | ||
type WithString<T> = T | string; | ||
import { Segment } from "./types"; | ||
export * from './types'; | ||
export * from './track'; | ||
export declare function getLength(segments: Segment<any>[]): number; | ||
export declare function toString<T extends Segment<any>>(segments: T[]): string; | ||
export declare function create(source: string): Segment[]; | ||
export declare function replace<T extends Segment<any>>(segments: T[], pattern: string | RegExp, ...replacers: (T | ((match: string) => T))[]): void; | ||
@@ -20,2 +10,1 @@ export declare function replaceAll<T extends Segment<any>>(segments: T[], pattern: RegExp, ...replacers: (T | ((match: string) => T))[]): void; | ||
export declare function replaceRange<T extends Segment<any>>(segments: T[], startOffset: number, endOffset: number, ...newSegments: T[]): void; | ||
export {}; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.replaceRange = exports.replaceSourceRange = exports.replaceAll = exports.replace = exports.create = exports.toString = exports.getLength = void 0; | ||
exports.replaceRange = exports.replaceSourceRange = exports.replaceAll = exports.replace = exports.toString = exports.getLength = void 0; | ||
const binarySearch_1 = require("./binarySearch"); | ||
const NO_DATA_SYMBOL = Symbol(); | ||
const track_1 = require("./track"); | ||
__exportStar(require("./types"), exports); | ||
__exportStar(require("./track"), exports); | ||
function getLength(segments) { | ||
@@ -18,6 +34,2 @@ let length = 0; | ||
exports.toString = toString; | ||
function create(source) { | ||
return [[source, undefined, 0]]; | ||
} | ||
exports.create = create; | ||
function replace(segments, pattern, ...replacers) { | ||
@@ -29,3 +41,5 @@ const str = toString(segments); | ||
const endOffset = startOffset + match[0].length; | ||
(0, track_1.offsetStack)(); | ||
replaceRange(segments, startOffset, endOffset, ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer)); | ||
(0, track_1.resetOffsetStack)(); | ||
} | ||
@@ -43,3 +57,5 @@ } | ||
const endOffset = startOffset + match[0].length; | ||
(0, track_1.offsetStack)(); | ||
replaceRange(segments, startOffset, endOffset, ...replacers.map(replacer => typeof replacer === 'function' ? replacer(match[0]) : replacer)); | ||
(0, track_1.resetOffsetStack)(); | ||
const newLength = getLength(segments); | ||
@@ -72,3 +88,5 @@ lengthDiff += newLength - length; | ||
combineStrings(inserts); | ||
(0, track_1.offsetStack)(); | ||
segments.splice(segments.indexOf(segment), 1, ...inserts); | ||
(0, track_1.resetOffsetStack)(); | ||
return true; | ||
@@ -101,3 +119,5 @@ } | ||
combineStrings(inserts); | ||
(0, track_1.offsetStack)(); | ||
segments.splice(startIndex, endIndex - startIndex + 1, ...inserts); | ||
(0, track_1.resetOffsetStack)(); | ||
} | ||
@@ -109,3 +129,5 @@ exports.replaceRange = replaceRange; | ||
segments[i - 1] = segments[i - 1] + segments[i]; | ||
(0, track_1.offsetStack)(); | ||
segments.splice(i, 1); | ||
(0, track_1.resetOffsetStack)(); | ||
} | ||
@@ -112,0 +134,0 @@ } |
{ | ||
"name": "muggle-string", | ||
"version": "0.2.2", | ||
"version": "0.3.0", | ||
"main": "out/index.js", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
16806
11
353