refactor: use camelCase for JavaScript APIs

BREAKING CHANGE: Options and method names in JavaScript API are now renamed to cammelCase, for a complete list see #109
This commit is contained in:
Jun Yang
2019-03-10 19:21:09 +08:00
parent 4a8088d4e4
commit 64e0c876e9
12 changed files with 16 additions and 68 deletions
-8
View File
@@ -1,4 +1,3 @@
import { deprecate } from './util/deprecate'
import * as _ from './util/underscore'
export interface LiquidOptions {
@@ -77,13 +76,6 @@ export function normalize (options?: LiquidOptions): NormalizedOptions {
if (options.hasOwnProperty('root')) {
options.root = normalizeStringArray(options.root)
}
for (const key of Object.keys(options)) {
if (key.indexOf('_') > -1) {
const newKey = key.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase())
deprecate(`${key} is deprecated, use ${newKey} instead.`, 109)
options[newKey] = options[key]
}
}
return options as NormalizedOptions
}
+2 -4
View File
@@ -2,9 +2,7 @@ import { Drop } from '../drop/drop'
type PlainObject = {
[key: string]: any
liquid_method_missing?: (key: string) => any // eslint-disable-line
to_liquid?: () => any // eslint-disable-line
toLiquid?: () => any // eslint-disable-line
toLiquid?: () => any
}
export type Context = PlainObject | Drop
export type Context = PlainObject | Drop
+1 -1
View File
@@ -22,7 +22,7 @@ export default class Scope {
async get (path: string) {
const paths = await this.propertyAccessSeq(path)
let ctx = this.findContextFor(paths[0]) || _.last(this.contexts)
for (let path of paths) {
for (const path of paths) {
ctx = this.readProperty(ctx, path)
if (_.isNil(ctx) && this.opts.strictVariables) {
throw new TypeError(`undefined variable: ${path}`)
+1 -1
View File
@@ -21,7 +21,7 @@ export class Filter {
}
async render (value: any, scope: Scope) {
const argv: any[] = []
for(let arg of this.args) {
for (const arg of this.args) {
if (isArray(arg)) argv.push([arg[0], await evalValue(arg[1], scope)])
else argv.push(await evalValue(arg, scope))
}
+1 -1
View File
@@ -49,7 +49,7 @@ export default class Value {
}
async value (scope: Scope) {
let val = await evalExp(this.initial, scope)
for (let filter of this.filters) {
for (const filter of this.filters) {
val = await filter.render(val, scope)
}
return val
-7
View File
@@ -1,7 +0,0 @@
const reported:{[key: string]: boolean} = {}
export function deprecate (msg: string, issue: number) {
if (reported[msg]) return
console.warn(msg + ` See: https://github.com/harttle/liquidjs/issues/${issue}`)
reported[msg] = true
}
-9
View File
@@ -1,4 +1,3 @@
import { deprecate } from './deprecate'
const toStr = Object.prototype.toString
/*
@@ -29,18 +28,10 @@ export function promisify (fn: any) {
export function stringify (value: any): string {
if (isNil(value)) return ''
value = toLiquid(value)
if (isFunction(value.to_s)) {
deprecate('to_s is deprecated, use toString instead.', 109)
return value.to_s()
}
return String(value)
}
export function toLiquid (value: any): any {
if (isFunction(value.to_liquid)) {
deprecate('to_liquid is deprecated, use toLiquid instead.', 109)
return toLiquid(value.to_liquid())
}
if (isFunction(value.toLiquid)) return toLiquid(value.toLiquid())
return value
}