Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,9 @@ fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Jetbrains IDEs
.idea/

# MacOS Finder
.DS_Store
20 changes: 20 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// swift-tools-version: 5.5

import PackageDescription

let package = Package(
name: "NanoID",
platforms: [
.macOS( .v10_13 )
],
products: [
.library(
name: "NanoID",
targets: ["NanoID"] ),
],
targets: [
.target(
name: "NanoID"
)
]
)
14 changes: 7 additions & 7 deletions NanoID.swift → Sources/NanoID/NanoID.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ import Foundation
/// let idFirst = nanoID.new()
/// let idSecond = nanoID.new()

class NanoID {
public class NanoID {

// Shared Parameters
private var size: Int
private var alphabet: String

/// Inits an instance with Shared Parameters
init(alphabet: NanoIDAlphabet..., size: Int) {
public init(alphabet: NanoIDAlphabet..., size: Int) {
self.size = size
self.alphabet = NanoIDHelper.parse(alphabet)
}

/// Generates a Nano ID using Shared Parameters
func new() -> String {
public func new() -> String {
return NanoIDHelper.generate(from: alphabet, of: size)
}

Expand All @@ -45,18 +45,18 @@ class NanoID {
private static let defaultAphabet = NanoIDAlphabet.urlSafe.toString()

/// Generates a Nano ID using Default Parameters
static func new() -> String {
public static func new() -> String {
return NanoIDHelper.generate(from: defaultAphabet, of: defaultSize)
}

/// Generates a Nano ID using given occasional parameters
static func new(alphabet: NanoIDAlphabet..., size: Int) -> String {
public static func new(alphabet: NanoIDAlphabet..., size: Int) -> String {
let charactersString = NanoIDHelper.parse(alphabet)
return NanoIDHelper.generate(from: charactersString, of: size)
}

/// Generates a Nano ID using Default Alphabet and given size
static func new(_ size: Int) -> String {
public static func new(_ size: Int) -> String {
return NanoIDHelper.generate(from: NanoID.defaultAphabet, of: size)
}
}
Expand Down Expand Up @@ -95,7 +95,7 @@ fileprivate class NanoIDHelper {
}
}

enum NanoIDAlphabet {
public enum NanoIDAlphabet {
case urlSafe
case uppercasedLatinLetters
case lowercasedLatinLetters
Expand Down