Wpis z mikrobloga

Witaj, chciałbym przedstawić wam mój nowy pakiet npm SimHok :)

Może przydać się do początkujących i dla zaawansowanych programistów JavaScript.
Pakiet zawiera zbiór funkcji które są zainspirowane z Pythona, gdzie np. w prosty sposób możesz zmienić w stringu pierwszą literę na dużą czy pobrać ostatnie 4 litery z stringu.

Aby przetestować mój pakiet wystarczy w prosty sposób zainstalować z npm.

$ npm install simhok
// lub
$ yarn add simhok


Aby dodać do projektu wystarczy po zainstalowaniu zaimportować pakiet:

const SimHok = require("simhok");
const sim = new SimHok();

Tutaj wszystkie dostępne funkcje na dzień dzisiejszy:

const user = "sebastian";
const users = ["sebastian", "klaudia"];
.
sim.len(user); // number: 9
sim.len(users); // number: 2
sim.capitalize(user); // string: Sebastian
sim.upper(user); // string: SEBASTIAN
sim.lower(user); // string: sebastian
.
sim.startswith(user, "s"); // boolean: true
sim.startswith(user, "S"); // boolean: false
sim.endswith(user, "n"); // boolean: true
.
sim.split(user, [0]); // string: s
sim.split(user, [0, 2]); // string: se
sim.split(user, [3, 0]); // string: astian
sim.split(user, [0, -3]); // string: ian
.
let james_bond = 7;
sim.zfill(james_bond, 2); // string: 007
.
sim.log("test"); // "test")

Zachęcam was do sprawdzenia i napisania opinii co sądzicie lub co dodać, poprawić.

#programowanie #npm #javascript
  • 21
@aptitude: Moim zdaniem nieco bezużyteczne
1. tworzenie instancji klasy by wywołać kilka prostych metod jest bez sensu
2. Większość tych metod to zwykłe użycie bardzo bazowych funkcji js tylko niepotrzebnie opakowanych w klasę np. .length .toUpperCase console.log, toLowerCase etc.
3. Nie weryfikowałem wszystkich metod, ale w kodzie widzę błędy np.
startswith(data: string, start: string | number): boolean {
return data.charAt(0) === start;
}

start w tym wypadku nie może być liczbą
@aptitude:
1. tworzenie bezsensownej instancji zamiast eksportów zwykłych czystych funkcji
2. brak code-splittingu (wiąże się to z punktem 1)
3. bezsensowna funkcja log która robi to samo co console.log
4. brak camel/snake case w nazwach
5. gardzę tsem, ale to typowanie cośtam: any to nawet mi wygląda na upośledzone

Obczaj libkę Ramda, to zobaczysz jak to powinno wyglądać (czyste null safety funkcje z curryingiem)
2. Większość tych metod to zwykłe użycie bardzo bazowych funkcji js tylko niepotrzebnie opakowanych w klasę np. .length .toUpperCase console.log, toLowerCase etc.

Idea tego pakietu jest, aby szybciej i wygodniej pracować z JS, np. zamiast length wywołać len, sam nie raz miałem błąd w aplikacjach gdy zamiast length wpisałem lenght
3. Nie weryfikowałem wszystkich metod, ale w kodzie widzę błędy np.

startswith(data: string, start: string | number): boolean {

return data.charAt(0)
via Wykop Mobilny (Android)
  • 1
@aptitude: split ma nadal skopane typy. Range nie może być any, bo go wrzucasz do len, które już any nie jest. Dziwne, że kompilator nie rzuca tu błędem.
Zfill też paskudny, bo w zwrotce masz "string lub numer". Ale zwrotka typu zależy od inputowego typu, więc możesz przekazać T.

Codesplitting nadal nie jest poprawny, bo nie da się importowac pojedynczych funkcji.

Sram na TSa, bo widzę jaki kod w nim piszecie
sam nie raz miałem błąd w aplikacjach gdy zamiast length wpisałem lenght


@aptitude: to polecam używanie jakiegoś sensownego IDE, bo w sumie w teorii na tej samej zasadzie możesz napisać lne zamiast len ze swojej biblioteki. Podtrzymuję swoje zdanie o niewielkiej przydatności tej libki
Codesplitting nadal nie jest poprawny, bo nie da się importowac pojedynczych funkcji.


Przecież da się..

const { len, log } = require("./dist/index");
const user = "sebastian";
log(len(user));

split ma nadal skopane typy.

Poprawię, bo masz rację, tak samo jako zfill. Dzięki za pomoc!

@LepiejWcaleNizPozno:
@LepiejWcaleNizPozno: Właśnie teraz tak możesz importować funkcje w moim dodatku.

import { len } from „simhok”

I wywołać len(„cos”)

Lub wszystko
import * as Sim from „simhok”

I użyć w ten sposób: Sim.len(„cos”)

Pisze z telefonu w pociągu, wiec wybacz za dziwne cudzysłowia