swc/crates/swc_bundler/tests/.cache/untrusted/34b6300d71f6bd0ccbe2ac6a53ac39c647054cfa.ts
2021-11-09 20:42:49 +09:00

52 lines
1.4 KiB
TypeScript

// Loaded from https://raw.githubusercontent.com/nats-io/nats.deno/v1.0.0-11/nats-base-client/encoders.ts
/*
* Copyright 2020 The NATS Authors
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Empty } from "./types.ts";
export const TE = new TextEncoder();
export const TD = new TextDecoder();
export function fastEncoder(...a: string[]): Uint8Array {
let len = 0;
for (let i = 0; i < a.length; i++) {
len += a[i] ? a[i].length : 0;
}
if (len === 0) {
return Empty;
}
const buf = new Uint8Array(len);
let c = 0;
for (let i = 0; i < a.length; i++) {
const s = a[i];
if (s) {
for (let j = 0; j < s.length; j++) {
buf[c] = s.charCodeAt(j);
c++;
}
}
}
return buf;
}
export function fastDecoder(a: Uint8Array): string {
if (!a || a.length === 0) {
return "";
}
return String.fromCharCode(...a);
}